🍀 Google 권장 아키텍처 기반 멀티 모듈 설계


핵심 개념


프로젝트 구조 (ver 0.1.0)

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 모듈 예시 구조 (data:user)

data:user/
├─ datasource/          // 데이터 소스 인터페이스
├─ datasourceimpl/      // 데이터 소스 구현체
├─ repository/          // 레포지토리 인터페이스
├─ repositoryimpl/      // 레포지토리 구현체
├─ di/                  // DI 관련 모듈 제공
├─ dto/                 // 서버 응답 DTO 정의
├─ service/             // API 서비스 정의 (Retrofit 등)
└─ model/               // 중간 데이터 모델 (UI에 전달할 데이터 구조) DTO의 껍데기

presentation 모듈 예시 구조 (presentation:home)