반응형

이 글은 답이라기보다는 제 생각을 적은 글입니다.

 

안드로이드 아키텍처처럼 정해진 답은 없다.

대략 두 가지 정도로 나뉘는 것 같은데, 기능(feature)별로 나누는 것과 아키텍처 구조로 나누는 것이 있다. 

 

기능 단위로 나누기.

예를 들어 TODO 앱을 개발하는데, TODO 글 작성할 때의 기능이 많이 추가되었다고 생각해보자. 그렇다면 이 기능이 앱에서 차지하는 비율이 커져버렸기 때문에 모듈 하나로 빼는 것이다. 흔히 사용하는 Glide 라이브러리처럼, 글 작성과 같은 기능이 첨부된 모듈을 하나 외부로 빼주는 것이다. 

 처음부터 빼줄 필요는 없고 개발을 하다가 특정 기능이 커지면 리팩토링으로 외부로 빼주면 된다.

 

클린 아키텍처 구조로 나누기.

 사실 아키텍처 구조로 나누는 것은 앱이 커지면 힘들다고 한다. 왜냐하면 하위 모듈에서 상위 모듈을 참조해야 하는 경우가 생기기도 하고, 클린 아키텍처에 딱 맞게 나눠서 개발하기 힘들다는 이유가 좀 크다. 하지만 프로젝트를 처음 시작하거나 앱이 크지 않은 경우에는 도전해볼만 하다. 대표적인 예제로는 드로이드 나이츠 앱이 있다.

 

* 드로이드 나이츠 앱 Github 링크

https://github.com/droidknights/DroidKnights2021_App

반응형

+ Recent posts