본문 바로가기
프로그래밍/Clean Architecture

Android에 Clean Architecture 도입하기

by startSW 2023. 8. 29.

[도입 순서]

  1. 패지지 정리
    • 프로젝트의 소스가 패키지별로 잘 정리되어 있지 않다면 가장 먼저 기능별로 패키지로 모으는 패키지 정리작업을 가장 먼저해야 합니다.
    • 패키지는 일반적으로 MVVM 패턴에 따라 정리하면 됩니다.
    • Clean Arcitecture에서 강조하는 Domain 계층은 처음에는 필요하지 않습니다. UI(View, ViewModel), Data(Repository, DataSource) 계층으로만 나누어도 충분합니다. 그 이후에 Domain 계층을 추가한 다음 Usecase를 도출하면 됩니다.
  2. 패키지를 모듈로 전환
    • 패키지 정리가 완료 되었으면, 그 패키지들을 각각의 모듈로 하나씩 전환합니다.
    • 모듈로 전환할 때 Util 패키지와 같이 모든 패키지들이 참조하는 패키지부터 모듈로 분리하는 것이 좋습니다.
    • Data 패키지를 모듈로 분리할 때에는 data-interface 모듈을 추가해서 data 모듈과 UI 모듈을 연결해야 합니다. 이 때 gradle에 “runtimeOnly project(path: ':data')” 와 같이 빌드 설정을 해야 합니다.

[필요 기술]

  1. Hilt : 안드로이드에서 클린아키텍처를 적용하려면 필수적으로 Hilt 를 사용해야 한다고 생각합니다. 모듈간 의존관계를 설정해야 하는데 Hilt 외에는 답이 없는 것 같습니다.

[관련 소스]

추후 업뎃 예정입니다.

 

[Tool]

  1. Copliot 을 사용하면 클린아키텍처를 도입하면서 생기는 보일러플레이트 코드의 많은 부분을 자동으로 생성해 주기 때문에 심리적이고 실질적인 부담을 많이 줄일 수 있습니다.