Feature에는 MicroFeature 아키텍처를 적용하였습니다.
이를 통해 각 Feature가 독립적으로 동작하면서도, 유연하게 수평 확장될 수 있도록 구성하였습니다.
✅ Demo → Feature를 단독으로 실행할 수 있는 데모 앱 모듈
✅ Test → Feature를 검증하는 테스트 코드
✅ Feature → 실제 Feature의 구현체
✅ Testing → Mock 데이터 및 테스트 지원 유틸리티
✅ Interface → Feature 간의 의존성을 줄이기 위한 Interface 정의 (Feature간의 통신은 Interface를 통해서 상위 모듈에서 주입 받습니다.)
├── AppModule
│ └── Sample
│── CoreKit
│ ├── Core
│ └── DesignKit
│── Data
│── Domains
│ ├── Domain
│ └── SampleDomain
│── Features
│ ├── MainFeature
│ ├── RootFeature
│ └── SampleFeature
│── Modules
│ ├── Networker
│ ├── Shared
└── Umbrella
-
Data
- 실제 데이터를 가져오고 저장하는 역할을 담당.
- Remote 데이터 소스(서버 통신)와 Local 데이터 소스(DB, 캐싱)를 관리.
- Repository 구현체를 통해 Domain 모듈에서 정의한 인터페이스를 구현하여 실제 데이터를 제공.
-
Feature
- 각 화면 단위를 기준으로 기능(Feature)을 담당하는 모듈.
- UI와 상태 관리를 포함하며, Domain 모듈을 통해 비즈니스 로직을 호출
-
Core
- Feature 간에 재사용 가능한 비즈니스 로직, 공통 인터페이스, 유틸리티를 제공.
-
DesignKit
- 앱 전반적으로 사용하는 디자인 리소스(폰트, 색상, 이미지) 및 UI 컴포넌트(버튼, 카드 뷰 등)를 제공.
-
Domain
- 앱의 핵심 비즈니스 로직을 담당.
- UseCase를 통해 비즈니스 로직을 정의하고, Entity를 통해 도메인 모델을 정의함.
- Repository 인터페이스를 정의하여 Data 모듈에 구현을 위임
-
Shared
- 앱 전반적으로 공통적으로 사용될 수 있는 로직을 제공.
- 앱 설정 관리, 공통 상수, 앱 전역적으로 사용하는 헬퍼 함수.
-
ThirdPartyLibrary
- 앱에서 공통으로 사용하는 외부 라이브러리 관리.
Project 폴더 위치에서 make moule
module을 만들 Service를 선택합니다. (현재는 SampleService 1개)
만들 모듈의 종류 선택 (Feature, Domain)
모듈 이름 입력 후 자동 생성




