
아키텍처
UIKit에서 SwiftUI로의 도약: 여기어때 iOS 아키텍처 변천사
두줄요약
여기어때 iOS 팀의 MVC, MVVM, ReactorKit 변천사와 SwiftUI 전환 검토 과정을 정리했습니다. SwiftUI에 맞는 MVI, 커스텀 MVI, TCA의 적용 방향도 함께 살펴봤습니다.
구조와 흐름
- 여기어때 iOS 앱의 아키텍처 변천사와 SwiftUI 도입에 맞춘 설계 재검토
- MVC에서 MVVM+RxSwift, ReactorKit으로 이어진 전환 과정과 각 단계의 한계 정리
- SwiftUI 환경에서의 MVI 적용 방식으로 ReactorView, 커스텀 MVI, TCA 비교
선택 이유
- MVC는 초기 빠른 개발에 적합했지만 ViewController 비대화 문제가 발생
- MVVM+RxSwift는 상태 분리에는 유리했지만 구현 스타일 불일치와 디버깅 복잡성 존재
- ReactorKit은 단방향 흐름과 코드 스타일 통일에 유리했으나 SwiftUI·Combine과의 호환성 한계 존재
적용해볼 점
- SwiftUI 전환은 신규 기능부터 점진적으로 적용하며 기존 코드와 병행 관리
- 팀 합의가 필요한 아키텍처는 토이 프로젝트와 기술 공유로 표준화
- Combine과 async/await 기반의 커스텀 MVI 또는 TCA로 단방향 상태 관리를 검토
