마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

패키지가 많아도 상관 없나요?

0 추천

제 앱이 바텀 네비개이션을 사용하고 있는데요, 바텀 내비게이션하면

메뉴가 여러개 있잖아요?

현재 제 앱은 패키지를 메뉴별로 나누고 있지는 않아요, 

사진처럼 그냥 Fragment는 fragment패키지, adapter는 adapter패키지, data 클래스는 model패키지

viewmodel은 viewmodel 패키지 이렇게 그냥 다 넣고 있거든요?

그런데 이렇게하면 전부 모여있기때문에 A라는 메뉴의 어떤 Adapter 파일을 보고싶다고할때,

adapter 패키지에 들어가서 A 메뉴와 관련된 Adapter 파일을 또 찾아야겠죠,

아 물론 각 파일들은 직관적으로 작명되어 있다는 가정이긴 합니다.

파일네이밍이 직관적으로 되어있기때문에 찾기 수월 할수도 있습니다.

 

그런데 만약에. 패키지가 먼저 A, B, C 메뉴 별로 크게 나뉘고

그 안에서 또 사진과 같이 패키지를 만들어 놓는다면

A라는 메뉴의 Adapter 파일을 찾으려고할떄 A 패키지 -> Adapter 패키지 -> 파일

이렇게 바로 가면 되겟죠.

 

더 편하지 않을까 해서 여쭈어보는데.. 좋은 방식일까요?

기존에는 사진과 같은 패키지가 딱 하나만 잇으니 파일이 다 모여있으나

만약에 메뉴별로 패키지를 만들고 또다시 그안에 사진과 같은 패키지를 생성한다면?

패키지가 너무 많아지지 않을까해서 쓸데 없는 걱정일까요?

 

패키지안에 패키지를 만들면 혹시 깊이관련해서 성능에 문제가 생기거나 하나요?

이건 너무 미미해서 신경쓰지 않아도 될부분인가요?

 

 

 

+++추가질문) 저는 파일을 나눌떄 사진처럼 fragment나 viewmodel , adapter 등 이렇게 각각 같은 역할끼리 묶는 패키지를 만들었는데..

이렇게 나누는게 올바른 방식인가요? fragment 또는 액티비티면 UI일텐데

Fragment라는 패키지보다 UI라는 패키지같은것으로 나누는게 더 직관적일까요?

codeslave (3,940 포인트) 님이 2021년 9월 23일 질문
codeslave님이 2021년 9월 23일 수정

1개의 답변

0 추천

프로젝트가 작은 사이즈라면 현재 하신 방식 처럼 레이어에 따라 패키지를 구분해도 상관없습니다. 하지만, 앱사이즈가 클 경우에는 이 방법으로는 좀 어려움이 있습니다. 실제 업무에서는 레이어 + Feature에 따라서 패키지를 구분하는 혼합방식을 많이 사용합니다.

예를 들면, 최상이 레벨은 (모듈을 별도로 두기도 합니다).

  • data - 보통 API 호출 관련
  • psersistence - database 관련
  • domain - 비지니스 로직
  • persentation - 뷰레이어 (Activity, Fragment, ViewModel)
  • platform
  • common
  • utils
등과 같이 레이어별로 분리를 하고, 각 패키지 내에서는 업무별로 분리를 합니다. 에를 들면,
  • data
    • account
    • payment
    • member
    • trade

Presentation layer 의 경우는 화면에 따라 분리를 해주셔도 될 것 같구요.

Github에 참고할 만한 샘플들이 많이 있어요. 구글 샘플 앱들도 살펴보세요.

그럼, 도움이 되시길.

spark (224,800 포인트) 님이 2021년 9월 23일 답변
감사합니다 참고하겠습니다
...