[Android] AAC 파헤치기 - 2) 최신(권장) 앱 아키텍처

문승연·2023년 8월 3일
0

Android-AAC

목록 보기
2/7

최신(권장) 앱 아키텍처

이전 포스트의 일반 앱 아키텍처에서 더 나아가 최신 앱 아키텍처는 다음 기법을 사용하도록 권장한다.

  • 반응형 및 계층형 아키텍처
  • 앱의 모든 레이어에서의 단방향 데이터 흐름(UDF)
  • 상태 홀더가 있는 UI 레이어로 UI의 복잡성 관리
  • 코루틴 및 흐름
  • 종속 항목 삽입 권장사항

UI 레이어

UI 레이어의 역할은 화면에 애플리케이션 데이터 표시이다. 상호작용이나 외부 입력으로 인해 데이터가 변할 때마다 변경사항이 UI에 업데이트 되어야 한다.

UI 레이어는 아래 2가지로 구성된다.

  • 데이터를 렌더링하는 UI 요소 (TextView, ImageView...)
  • 데이터를 보유하고 이를 UI에 노출하며 로직을 처리하는 State Holder (ViewModel)

데이터 레이어

데이터 레이어는 비즈니스 로직을 포함한다. 비즈니스 로직이란 앱의 데이터 생성, 저장, 변경 방식을 결정하는 규칙으로 구성된다.

데이터 레이어는 0개부터 여러개의 데이터 소스와 이를 각각 포함할 수 있는 저장소(Repository)들로 구성된다. 데이터 유형별로 각각 해당하는 Repository 클래스를 필요로한다.

Repository 클래스는 아래와 같은 작업을 담당한다.

  • 데이터 노출
  • 데이터 변경사항을 한 곳에 집중
  • 여러 데이터 소스 간 충돌 해결
  • 앱의 나머지 부분에서 데이터 소스 추상화
  • 비즈니스 로직 포함

각 Repository 클래스는 하나의 데이터 소스만 사용해야 한다. Repository 클래스는 데이터 작업을 위해 앱과 시스템 간 다리 역할을 한다.

도메인 레이어

도메인 레이어는 복잡한 비즈니스 로직이나 여러 ViewModel에서 재사용되는 간단한 로직의 캡슐화를 담당한다. 이 레이어는 선택사항이며 복잡성 처리 및 재사용성이 필요한 경우에만 사용한다.
(Ex. 여러 ViewModel에서 시간대를 사용하여 메세지를 표현할 경우 GetTimeZoneUseCase 클래스가 있을 수 있다.)

레퍼런스)
앱 아키텍처 가이드

profile
"비몽(Bemong)"이라는 앱을 개발 및 운영 중인 안드로이드 개발자입니다.

0개의 댓글