
모듈 구조를 개선해 더 나은 뱅크샐러드 iOS 앱 개발하기
두줄요약
비대해진 Shared 모듈을 기능별로 분리해 iOS 프로젝트의 불필요한 의존성을 줄였습니다. DataInterface를 도입해 Domain과 Data가 추상화에 의존하도록 구조를 개선했습니다.
문제 상황
- 기능과 참여 엔지니어 증가에 따른 iOS 코드베이스 확장
- 역할이 모호한 Shared 공용 모듈의 비대화와 불필요한 의존성
- 향후 통신 방식·데이터 출처 분리에 대비하기 어려운 Data 레이어 명세 위치
해결 방법
- 미사용 코드 제거와 전용 코드 원래 모듈 이동 후 Shared의 공용 기능 분리
- Constant, SwiftExtension, DIContainer 모듈 분리를 통한 경량 공용 기능 제공
- Data 구현체 직접 의존 제거와 의존성 주입 방식 전환
- DataInterface 모듈로 명세를 이동하고 Domain·Data가 공통 추상화에 의존하도록 재구성
선택 이유
- Live Activity의 SwiftUI·SwiftConcurrency 기반 개발에 필요한 최소 공용 의존성 확보
- REST, gRPC, 클라이언트 캐시 등 향후 Data 모듈 분리 시 불필요한 모듈 간 의존 방지
- 클린 아키텍처와 의존성 역전 원칙에 따른 낮은 결합도와 확장성 확보
성능/운영 포인트
- 작은 단위 모듈을 통한 독립적인 기능 개발 환경 지향
- 다른 엔지니어 작업과의 충돌 및 릴리즈 후 사용자 문제 없이 구조 개선 진행
- 공용 모듈 추가 세분화와 모듈 생성 도구 도입 계획



