
아키텍처
iOS Modular Architecture 도입기
두줄요약
무신사는 iOS 앱에 모듈러 아키텍처를 도입해 코드베이스 복잡도와 유지보수 부담을 줄였습니다. 또한 빌드 속도를 크게 개선하고 Firebase 중복 링크 문제도 해결했습니다.
문제 상황
- 단일 프로젝트·단일 앱 타깃 구조에서 코드베이스 복잡도 증가
- 유지보수 난이도 상승과 빌드 속도 저하로 인한 생산성 저하
- Firebase 정적 라이브러리 모듈화 과정에서 duplicated symbols 에러 발생
해결 방법
- XcodeGen에서 Tuist로 전환하고, CocoaPods 의존성을 SPM으로 단계적 이관
- App Core, Third Party, Shared로 레이어를 나눠 의존 방향과 참조 범위 정의
- Firebase는 인터페이스 모듈과 구현부 모듈로 분리해 정적 라이브러리 중복 복사 방지
성능/운영 포인트
- 0개 모듈에서 19개 모듈로 분리
- 클린 빌드 172.3초에서 120.3초로 단축
- 증분 빌드 57.3초에서 30.4초로 단축