이전 포스트의 일반 앱 아키텍처에서 더 나아가 최신 앱 아키텍처는 다음 기법을 사용하도록 권장한다.
UI 레이어의 역할은 화면에 애플리케이션 데이터 표시이다. 상호작용이나 외부 입력으로 인해 데이터가 변할 때마다 변경사항이 UI에 업데이트 되어야 한다.
UI 레이어는 아래 2가지로 구성된다.
데이터 레이어는 비즈니스 로직을 포함한다. 비즈니스 로직이란 앱의 데이터 생성, 저장, 변경 방식을 결정하는 규칙으로 구성된다.
데이터 레이어는 0개부터 여러개의 데이터 소스와 이를 각각 포함할 수 있는 저장소(Repository)들로 구성된다. 데이터 유형별로 각각 해당하는 Repository 클래스를 필요로한다.
Repository 클래스는 아래와 같은 작업을 담당한다.
각 Repository 클래스는 하나의 데이터 소스만 사용해야 한다. Repository 클래스는 데이터 작업을 위해 앱과 시스템 간 다리 역할을 한다.
도메인 레이어는 복잡한 비즈니스 로직이나 여러 ViewModel에서 재사용되는 간단한 로직의 캡슐화를 담당한다. 이 레이어는 선택사항이며 복잡성 처리 및 재사용성이 필요한 경우에만 사용한다.
(Ex. 여러 ViewModel에서 시간대를 사용하여 메세지를 표현할 경우 GetTimeZoneUseCase
클래스가 있을 수 있다.)
레퍼런스)
앱 아키텍처 가이드