Android clean architecture Multi Module framework 제작기 (2)

김보현·2026년 1월 28일

android

목록 보기
4/6
post-thumbnail

이전 포스팅에 이어 진행해보자.

그렇다면 안드로이드에서는 어떻게 클린 아키텍처를 구현하고자 하는가!!

구글은 공식 문서를 통해 안드로이드 앱에 클린 아키텍처 철학을 녹여낸 'Modern Android Architecture (MAA)'를 권장하고 있다.

아래와 같이 크게 세가지로 분류한다.

  • UI 레이어 (Presentation Layer)
  • 도메인 레이어 (Domain Layer - 선택 사항이지만 권장)
  • 데이터 레이어 (Data Layer)

크게 세가지로 나뉘는 각 레이어들이 어떤 역할을 가지고 있는지 정리를 해보자면,

UI 레이어 (Presentation Layer)

화면에 데이터를 표시하고 사용자의 이벤트를 처리합니다.

구성: Activity, Fragment, ViewModel, UI State.

특징: ViewModel은 Domain 계층의 데이터를 가져와 UI가 먹기 좋게 가공합니다.

도메인 레이어 (Domain Layer - 선택 사항이지만 권장)

앱의 가장 복잡한 비즈니스 로직이 위치합니다. 다른 계층에 의존하지 않는 순수한 Kotlin/Java 코드로 작성하는 것이 이상적입니다.

구성: UseCase, Entity.

특징: 여러 Repository에서 데이터를 조합하거나 복잡한 계산을 수행합니다.

데이터 레이어 (Data Layer)

비즈니스 데이터를 어디서 가져올지 결정합니다.

구성: Repository, Data Source (Retrofit, Room, Firebase 등).

특징: 외부 API나 로컬 DB에서 데이터를 가져와 Domain 계층의 모델로 변환하여 전달합니다.

처음 이 세가지 레이어로 구분하는 멀티 모듈을 도입하는 것이 크게 어려울것이라 생각하지 않았다. 이해하기에 어렵지 않았고 바로 따라해 볼 수 있을 것이라 생각했다. 하지만 내가 맞닥뜨린 실제의 안드로이드 클린 아키텍처의 실상은 달랐다.
이전 포스팅에서 내가 참고하고자 하는 두가지 오픈 소스 프로젝트를 보면, nowinandroid와 pokedex-compose 같은 프로젝트들은 세가지 레이어들을 더욱 잘게 쪼개서 사용하고 있었다.
그 뿐만 아니라, gradle 전략도 기존과 많이 달랐다. 프로젝트의 기본을 구성하는 gradle을 제대로 파악하지 못하니, 어설프게 따라 하는 수준밖에 되지 않았다.
무작정 좋은 예제를 찾아서 제대로 이해하지 않고 어설프게 따라했던 부적절한 개발을 지금이라도 수습해보려한다.
큰 고민 없이 선택했지만 참고하고자 하는 두 프로젝트는 훌륭한 가이드이므로 제대로 분석하고 습득해서 최대한 내것으로 만들어 보자.

  • 왜 이런 구조를 제시하는지
  • 이런 구조가 가지는 장점은 무엇이고 단점은 무엇인지
  • 이와 같은 구조의 프로젝트는 어떤 상황에서 사용해야 하는지
  • 세부적인 기능들이 어떻게 동작하고, 활용해야 하는지

등등에 대해 좀 더 깊은 고찰과 학습을 진행해보자.


과거에 멀티모듈을 학습하기 위해 무작정 따라 했던 nowinandroid 에 대해 분석을 시도해본다.
일단 nowinandroid 가 제시하는 build-logic 모듈에 대해서 알아보자.

물론 다음 포스팅에서 진행한다.

profile
Android Developer

0개의 댓글