[ARchive] 구글 권장 아키텍처와 클린 아키텍처

love&peace·2024년 12월 30일

ARchive

목록 보기
2/2

Google 권장 아키텍처는 Android 앱 개발에서 안정성과 확장성을 높이기 위해 권장되는 구조입니다. 이 아키텍처는 앱의 UI(Presentation), 비즈니스 로직(Domain), 그리고 데이터(Data) 처리를 분리하는 것을 핵심으로 합니다. 이를 통해 코드를 더 관리하기 쉽고 테스트 가능하게 만듭니다.
Android | 구글 권장 아키텍처

🌟화살표는 데이터 흐름입니다

주요 특징

관심사의 분리 : 각 레이어는 고유한 역확과 책임을 가짐, 서로의 세부 구현에 의존 X (가독성, 유지보수성⬆️)
단방향 데이터 흐름 : 데이터는 한 방향 (UI -> Domain -> Data)으로만 흐름 (상태 관리 편함, 디버깅 쉬움)

UI layer (view, viewModel) 역활

  • 데이터 표시 & 업데이트 (데이터 랜더링 & 상태관리)
  • 사용자 입력 처리

compose로 인해 상태 관리의 중요성이 증가하는 중 [나o만]MVI 패턴 적용하기

Domain layer (usecase) 역활 - 선택적 사용

  • 복잡한 비즈니스 로직이나 재사용되는 비즈니스 로직 캡슐화하여 관리
  • 하나의 책임만 가질 수 있도록 책임 분리
  • 테스트 용이

Data layer (repository) 역활

  • 저장소 : 각기 다른 데이터 소스를 포함
  • 로컬 DB (room), remote (retrofit) 등
  • 서버,로컬 데이터 변경 사항 관리
  • 비즈니스 로직

음.. 그러면 클린 아키텍처와 차이는 뭐지..?

  1. 의존성 방향 - 클린 : Data → Domain ← UI
  2. Domain layer의 중요성 - 클린 : 필수 계층, 비즈니스 로직과 규칙
  3. 간소 (구글) vs 엄격 (클린)

그러면 공통점은 ? 관심사 분리, 단방향 데이터 흐름, 테스트 용이, 등등 많은 부분

저의 느낀 점은 구글 권장 아키텍처는 클린 아키텍처를 간결하고 실용성있게 만든 아키텍처인 느낌이 듭니다!

마무리


저는 보통 Domain에 reporitory interface도 넣어 클린 아키텍처 방식을 자주 사용하고 있습니다 😊

0개의 댓글