개발/안드로이드

[Android] 패키지 구조

도넛의용기 2023. 8. 9. 00:25

이번 글에서는 프로젝트의 패키지 구조에 대해서 생각해보는 시간을 가져보겠습니다.

 

우리는 안드로이드 개발을 할 때 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