
아키텍처
올리브영 앱 - 아키텍처 도입 1탄
두줄요약
올리브영 앱은 강한 결합과 유지 보수 부담을 줄이기 위해 클린 아키텍처를 도입했습니다. Presentation, Domain, Data 3층 구조로 역할을 나누고 Android와 iOS에 같은 기준을 적용했습니다.
문제 상황
- Android, iOS 앱 전반의 강한 결합과 God Class, God Object 누적
- 관심사 분리 부재로 분석 난이도 상승과 사이드 이펙트 우려 확대
- 기능 추가 위주의 개발로 구조 부채와 유지 보수 부담 증가
원인 분석
- 화면, 업무 로직, 데이터 접근이 한 코드에 섞인 구조
- 플랫폼별 설계와 패턴이 일관되지 않아 협업 기준 부재
- 유지 보수와 테스트 가능성을 뒷받침할 계층 구조 미흡
해결 방법
- 클린 아키텍처를 모바일 앱의 프로젝트 아키텍처로 도입
- Presentation, Domain, Data의 3-layer 구조로 역할 분리
- Android, iOS에 동일한 비즈니스 구조를 적용해 공통 고민 체계화
적용해볼 점
- 도메인, 데이터, 프레젠테이션의 책임 경계 명확화
- 테스트 코드 도입과 리팩토링을 염두에 둔 구조 설계
- 간단한 기능보다 장기 유지 보수를 기준으로 아키텍처 검토
