Data → Presentation
방향 흐름 유지Hi-lingual
├── app/ // 앱 진입점
├── build-logic/ // 빌드 로직
├── core/ // 공통 레이어
│ ├── common/
│ ├── designsystem/
│ ├── localstorage/
│ ├── navigation/
│ └── network/
├── data/ // 데이터 레이어
│ ├── auth/ // 인증
│ ├── calendar/ // 캘린더
│ ├── diary/ // 일기
│ ├── user/ // 사용자
│ └── voca/ // 단어장
└── presentation/ // UI 레이어
├── auth/ // 인증 UI
├── diaryfeedback/ // 일기 피드백 UI
├── diarywrite/ // 일기 작성 UI
├── home/ // 홈 UI
├── main/ // 메인 UI
└── voca/ // 단어장 UI
모듈 | 역할 | 모듈화 기준 |
---|---|---|
Core | 전역에서 사용하는 공통 코드 | 레이어 기반 |
Data | 서버 통신 및 데이터 가공 | 기능 단위 (feature) 기반 |
Presentation | UI 관련 코드 (View, ViewModel 등) | 뷰 단위 (screen) 기반 |
하이브리드 방식: Core는 레이어 기반, Data와 Presentation 기능 기반 모듈화
data:user
)data:user/
├─ datasource/ // 데이터 소스 인터페이스
├─ datasourceimpl/ // 데이터 소스 구현체
├─ repository/ // 레포지토리 인터페이스
├─ repositoryimpl/ // 레포지토리 구현체
├─ di/ // DI 관련 모듈 제공
├─ dto/ // 서버 응답 DTO 정의
├─ service/ // API 서비스 정의 (Retrofit 등)
└─ model/ // 중간 데이터 모델 (UI에 전달할 데이터 구조) DTO의 껍데기
presentation:home
)