이번 글에서는 프로젝트의 패키지 구조에 대해서 생각해보는 시간을 가져보겠습니다.
우리는 안드로이드 개발을 할 때 MVVM 아키텍처를 뼈대로 개발해 나갑니다. 그래서 패키지 구조도 그러한 내용을 고려해야합니다.
그래서 첫번쨰로 생각한 구조는 다음과 같습니다.
View
- Activity
- Fragment
- Adapter
View Model
- View Model
Model
- Database
- Utils
하지만 이렇게 작성을 한다면, 기능별로 구분되어있지 않아서 불편함을 겪게됩니다.
실제로 이런식으로 작성된 코드를 넘겨받아 작업을 진행한 경험이 있었는데요
어떤 코드가 어떤 파일에 작성되어있는지 알 수 없기 때문에 보기 불편할 수 있습니다.
처음 코드를 받아보고, 코드 수정을 하는 입장에서 연관된 코드를 쉽게 찾아보기 힘들어집니다.
이러한 부분을 해결하고자, 기능을 중심으로 구조를 만드는 방법도 있습니다.
Feature
- Login
- - LoginActivity
- - LoginRecyclerAdapter
- - LoginViewModel
- Chatting
- - ChattingActivity
- - ChattingRecyclerAdapter
- - ChattingViewModel
Repository
- Db
- - Room
- Network
- - Retrofit
Util
- KeyboardType
- Sort
Global
- Const
- Application
위의 방식처럼, 뷰와 뷰 모델을 한곳에 묶어서 하나의 기능 패키지에 묶어버리고,
레포지터리 부분과 유틸리티 부분은 따로 빼버려서 기능 중심으로 패키지 구조를 작성하는 방법도 있습니다.
기능이 늘어나고 앱의 크기가 커질수록 패키지가 굉장히 많이 늘어날 수 있지만
코드를 작성하고 오랜 시간이 지나더라도 코드를 파악하기 쉬울 수 있을 것 같습니다.
정답은 없다고 하지만, 다른 앱들의 코드를 보거나 다른 사람들이 작성한 코드를 보며 일정한 약속이나 구조를 파악하는 것도 도움이 많이 될 것 같습니다.
'개발 > 안드로이드' 카테고리의 다른 글
[Android] 모듈 갖고 오기 (0) | 2023.09.05 |
---|---|
[Android] 모듈: 코드의 재사용 (1) | 2023.08.09 |
[Android] Coroutine(기초) (2) | 2023.05.30 |
[Android] Utility (0) | 2023.05.30 |
[Android] Android Weekly (0) | 2023.05.28 |