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

김보현·2026년 1월 27일

android

목록 보기
3/6
post-thumbnail

안드로이드 클린아키텍쳐 멀티모듈 프레임워크

한동안 여러가지 핑계로 실무에서 주먹구구로 도입해서 사용하던 기술을 다시 재정비하며,
기본 프레임워크로 구축해두기 위해 포스팅과 함께 달려보자. (이렇게 채찍질해야 끝까지 하지...)

일단 큰 틀에서 목표를 설정해보자.

  1. android 개발을 위한 기본 프레임워크를 구축한다.
  2. 사용하는 가장 큰 뼈대는 Clean architecture 구현을 위한 Multi Module 형태와 MVVM 패턴을 적용한다.
  3. 참고에 쓰인 자료는 아래 두가지를 가장 많이 참고(라 쓰고 카피라 )했다.
    a. nowinandroid
    b. pokedex compose
  4. 프레임워크를 기본으로 생성하고, 프레임워크를 활용한 데모앱을 구현해본다.
    a. 과거 특정 업체에 지원 과정 중 제출했던 과제를 고도화 하며 리팩토링하는 과정도 포함한다.

새 프레임워크에서 사용할 핵심 기능

  1. MVVM 패턴 ( 가능하다면 MVI 패턴 도입 고려 )
  2. Compose
  3. Hilt
  4. Coroutine & Flow
  5. Room
  6. Test Code ( Junit, Kotest, Espresso )

데모앱에서 구현하기 위해 사용할 기능

  1. CameraX
  2. Google ml-kit FaceDetection

1일차.

기존에 여기저기 파편화되고 주먹구구식으로 진행했던 작업들 현황을 파악했다.
급하게 따라하다 보니, 결과적으로는 구현은 되긴 했지만, 클린아키텍처라는 원래의 의도와
실무 환경에서 확장되는 상황에 적합하게 구현되진 않았다.
애초에 클린 아키텍처를 위해 멀티모듈을 구축한 원래 의도와, 구현된 코드 내용도 제대로 이해하고 쓰고 있는것도 아니었다.
하나하나 이해하고 쓰기 위한 복습에 들어간다.

1. 클린 아키텍처는 무엇인가? 그리고 안드로이드에서 이를 구현하기 위한 방법을 어떻게 가이드하고 있는가?

제미나이에게 위 질문 그대로 물어보았다.

**클린 아키텍처(Clean Architecture)**는 소프트웨어를 설계할 때 '관심사의 분리(Separation of Concerns)'를 극대화하여, 특정 프레임워크나 데이터베이스, UI 등의 외부 요소에 의존하지 않는 비즈니스 로직을 만드는 설계 원칙입니다.

쉽게 말해, **"껍데기(UI, DB)는 바뀌어도 알맹이(비즈니스 로직)는 변하지 않게 하겠다"**는 의지의 산물이죠.

1. 클린 아키텍처의 핵심 개념
로버트 C. 마틴(Uncle Bob)이 제안한 이 구조의 핵심은 **의존성 규칙(Dependency Rule)**입니다. 모든 의존성은 안쪽(비즈니스 로직)으로만 향해야 하며, 안쪽 원은 바깥쪽 원에서 무슨 일이 일어나는지 전혀 몰라야 합니다.

라고 한다. 그동안 모호하게 이해하던 내용이 다시 머리속에서 잘 정리되는 느낌이다. 중요한 것은 의존성이 유연해야 하며, 각 모듈들은 다른 모듈의 변화에도 안전해야 한다는 점이다.
현업에서 클린 아키텍처로서 개발이 진행될 때 각 파트의 개발자들이 자신이 맡은 영역을 수정했을 때, 다른 개발자의 코드가 이에 영향을 받아 오류가 발생하지 않도록 하는 것을 목적으로 한다.

그렇다면 안드로이드에서는 어떻게 클린 아키텍처를 구현하고자 하는가
.
.
.
는 2일차에 진행하도록 한다.(???!!?)
하루에 겨우 이만큼 진행하는게 맞나 싶지만,
시작이 반이라고 합니다.

진짜임.

profile
Android Developer

0개의 댓글