
아키텍처
사입앱 클린 아키텍쳐 적용기
두줄요약
사입앱에 클린 아키텍처를 적용한 경험을 정리했습니다. ViewModel 부담을 줄이고 의존성과 모듈 역할을 분리한 과정과 장단점을 공유했습니다.
문제 상황
- 사입 업무가 수작업과 지류 중심이라 인력 소모와 처리 시간이 큰 구조
- MVVM 도입 후 비즈니스 로직이 ViewModel에 집중되며 코드가 길어지는 문제
- 공통 로직 중복은 줄었지만 역할 분리와 구조 개선에는 한계
구조와 흐름
- 클린 아키텍처의 핵심을 계층 분리와 단방향 의존성으로 정의
- Android에서는 PresentationLayer, DomainLayer, DataLayer로 분리
- ViewModel은 Presenter 역할, UseCase는 애플리케이션 비즈니스 규칙 담당
선택 이유
- Domain을 독립 모듈로 두기 위해 Entity를 Domain Layer의 Model로 재정의
- Data를 바깥 계층으로 보내어 Retrofit, Database 선택을 중심부에서 분리
- UseCase에서 문자열 리소스 접근과 다중 네트워크 호출 구조를 개선
장단점
- 장점: 의존성 분리, ViewModel 책임 감소, 모듈 역할 명확화, 재사용성 증가
- 장점: Nullable DTO와 매핑 분리로 안전성 향상, 모듈 분리로 빌드 속도 개선
- 단점: 높은 러닝 커브, 멀티 모듈 이해 필요, 클래스 수 증가