사내 공통 아키텍처를 도입하다 되돌린 판단
햇배달 · 2025 · MVVMC → Screen + ViewModel + Subview
새로 합류한 팀원이 MVVMC를 제안했고 전사 프로젝트에 적용하는 방향이 잡혔습니다. MVVM에 Coordinator를 두어 상태 통제와 인터랙션 수용을 전담시키는 사내 고유 구조로, 신규 앱이던 햇배달이 첫 적용 대상이 됐습니다. 도입에 착수했으나 초기 단계에서 방향을 바꿨습니다.
- Coordinator가 상태 통제와 인터랙션 수용을 모두 떠안는 구조라, 화면이 복잡해질수록 함께 비대해졌습니다
- 화면이 필요로 하는 것이 전부 Coordinator를 경유하면서 의존성이 한 곳으로 몰렸습니다
- SwiftUI는 뷰가 상태를 소유하는 것이 전제입니다.
NavigationStack의path자체가 이미 상태인데 Coordinator가 이를 다시 감싸면서 이중 상태 관리가 됐습니다
대신 최상위 화면을 Screen으로 명명하고 하위 뷰가 각자 자신의 ViewModel을 소유하도록 해서,
한 객체가 화면 전체의 상태를 떠안지 않게 했습니다.