언제 탭을 쓰나
- 홈/검색/보관함처럼 동등한 1단계 목적지가 있을 때
- 사용자가 탭을 바꿔도 이전 탭 상태를 유지해야 할 때
- 기능이 "병렬" 구조일 때
세 전환은 "화면 이동 방식"이 아니라 "정보 구조와 사용자 흐름 모델"이 다르다. 잘못 고르면 구현은 되지만 UX 일관성과 상태 관리가 빠르게 무너진다.
기록 없음
| 전환 방식 | 핵심 목적 | 상태 모델 | 대표 컴포넌트 |
|---|---|---|---|
| 탭(Tab) | 상위 카테고리 간 병렬 이동 | 탭별 독립 히스토리/문맥 유지 | `UITabBarController` |
| 네비게이션(Push/Pop) | 깊이 있는 계층 탐색 | 스택 기반 히스토리 | `UINavigationController` |
| 모달(Present/Dismiss) | 현재 흐름 위에 임시 과업 수행 | 기존 흐름 위에 오버레이 | `present(_:animated:)` |
// 탭마다 독립 navigation stack 유지 (개념 예시)
let homeNav = UINavigationController(rootViewController: HomeVC())
let searchNav = UINavigationController(rootViewController: SearchVC())
let profileNav = UINavigationController(rootViewController: ProfileVC())
let tab = UITabBarController()
tab.viewControllers = [homeNav, searchNav, profileNav]
// 모달은 흐름 위에 임시 과업으로
present(FilterViewController(), animated: true)이 섹션은 위에서 나온 질문뿐 아니라, 새로운 개발적 지식과 시니어라면 알아야 할 내용까지 추가한다.