관심사의 분리와 UI 도출
- UI, DB, Framework 등의 결합도↓
- 유지보수, 단위 테스트 용이
3개의 계층으로 나눠짐
Presentation
- UI와 관련된 부분
- MVP, MVVM 등 디자인패턴 구현
Domain
- 비즈니스 로직
- 순수한 Java 또는 Kotlin 모듈 → 독립적 계층
- UseCase
- Entity(Model), Repository 포함
Data
- DB, API 등의 데이터 처리
- Repository는 Remote 또는 Local 데이터를 가져오는 역할
- Mapper를 통해 Domain에 맞게 데이터 변환
계층 간 의존성