패스잇
모바일 개발 · 심화

대규모 iOS 프로젝트에서 모듈화(Modularization)를 적용하여 빌드 시간을 단축하고 팀 협업 효율성을 높이고자 할 때, 모듈 간의 의존성 관리 전략과 모듈 분리 기준, 그리고 Xcode 빌드 시스템 관점에서 고려해야 할 최적화 방안은 무엇입니까?

힌트 · 단방향 의존성, 순환 의존성 방지, SPM 또는 CocoaPods를 통한 의존성 관리, 정적/동적 프레임워크 선택, precompiled binaries 활용을 고려합니다.

SPM (Swift Package Manager)TuistBazelFramework vs Static LibraryModular Architecture

모범답안

네, 대규모 iOS 프로젝트 모듈화는 빌드 시간 단축과 협업 효율성 향상에 매우 중요합니다.

먼저, 모듈 간 의존성 관리는 단방향 의존성을 지향하고 순환 의존성을 방지하는 것이 핵심입니다. 이를 위해 아키텍처 설계 단계에서 모듈 간의 역할을 명확히 정의하고, 의존성 역전 원칙(DIP)을 적용할 수 있습니다. SPM이나 CocoaPods를 사용하여 의존성을 관리하고, 인터페이스 기반으로 모듈 간 통신을 구현합니다.

모듈 분리 기준은 기능별, 레이어별, 또는 팀별로 나눌 수 있습니다. 응집도는 높이고 결합도는 낮추는 방향으로 설계해야 합니다.

Xcode 빌드 시스템 관점에서는 정적 라이브러리보다 동적 프레임워크를 사용하는 것이 빌드 시간을 단축하는 데 유리할 수 있습니다. 다만, 앱 실행 시 로딩 시간이 증가할 수 있으므로 적절한 균형을 찾아야 합니다. Precompiled binaries를 활용하여 자주 변경되지 않는 모듈의 빌드 시간을 줄일 수도 있습니다. Tuist나 Bazel과 같은 빌드 도구를 사용하여 빌드 과정을 자동화하고 최적화하는 것도 좋은 방법입니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 iOS / Swift 면접 질문

← iOS / Swift 면접 질문 전체 보기