TIL #122 클린 아키텍쳐

loci·2024년 12월 19일
0

TIL

목록 보기
113/114

클린 아키텍쳐란?

안드로이드 Clean Architecture에 대하여
앱 아키텍처 가이드  |  Android Developers

관심사 분리를 통해 UI, Domain, Data 레이어가 각각의 책임을 가지고 있다.
각 모듈은 단방향으로 참조하고 있다. UI -> Domain -> Data

단방향 데이터 흐름

데이터가 한방향으로만 흐르는 것
이벤트 발생: UI -> Domain -> Data 로 상위레이어로 전달한다.
데이터 전달: Remote or Loca Server로 부터 받은 데이터를 Data -> Domain -> UI 로 하위 레이어로 전달한다.

UI Layer

  • Activity/Fragment + xml
  • Compose UI
  • ViewModel (UI에 바인딩해준 데이터를 상태 홀더 클래스를 통해 보유한다.)

LiveData와 StateFlow 는 android 에서 권장하는 상태 관리 홀더 클래스

StateFlow 및 SharedFlow 권장 사례

Domain Layer

UseCase

  • Viewmodel의 중복코드를 정의
  • ViewModel의 책임 이외에 필요한 비즈니스 로직이 정의되는 책임

Data Layer

Repository

  • 앱내 필요 데이터를 DataSource에 요청하는 책임
  • DataSource로부터 받아온 데이터를 가공에 하위 레이어에 전달해주는 책임
  • 가공한데이터를 Repository모듈에 캐싱하는 책임

DataSource

  • Repository 가 필요한 데이터를 Remote or/and Local Server에 요청한다.
  • Repository에 데이터를 제공한다.
profile
편리한 개발자

0개의 댓글

관련 채용 정보