클린아키텍쳐
UI Layer (Activity/Fragment/Compose, ViewModel)
↓
Domain Layer (UseCase, Business logic) ← (필수)
↑
Data Layer (Repository, Local/Remote Source)
클린아키텍쳐의 장점
- 비즈니스 로직변경이 간편함.
- 초기부터 로직을 캡슐화 할 수 있다.
- UI 또는 데이터 계층에 비즈니스 로직이 없음.
- 엄격한 클린아키텍쳐는 안드로이드 의존성이 없기 때문에 크로스플랫폼에 유용함.
클린아키텍쳐의 규칙
- Domain 레이어의 비즈니스 규칙은 repository 에서 사용하는 라이브러리 정보나 호출하는 서버와 같은 구체적인 세부사항에 의존하면 안됨. → 추상적이어야 한다.
- 클린아키텍쳐 구성

구글권장 아키텍쳐
UI Layer (Activity/Fragment/Compose, ViewModel)
↓
Domain Layer (UseCase, Business logic, UiModel) ← (선택적)
↓
Data Layer (Repository, Local/Remote Source)
- Domain 레이어가 없다면 UI용 모델은 어디에서?

구글권장 아키텍쳐를 사용한 NIA 모듈