나만의 안드로이드 앱 만들기/초급자

나만의 안드로이드 앱 만들기(초보자 편) - 의존성 추가 및 패키지 구분하기 (6-2)

Victorywskim 2023. 11. 1. 01:43
반응형

우선 큰 틀은 다음과 같습니다.

변경 후

 

변경 전

 

각각의 구조에 대해 설명해보면 다음과 같습니다.

이름 용도
common 공통적으로 사용되는 디자인 패턴이나 Compose 등을 관리합니다.
core 비즈니스 로직 및 유틸 클래스 등을 관리합니다.
di 의존성 들을 관리합니다.
ui 유저와 상호작용이 가능한 UI 파일들을 관리합니다.
MainActivity 앱의 유일한 액티비티입니다.
SdApplication 앱의 어플리케이션 클래스입니다.

 

현재는 UI 와 비즈니스 로직이 같은 모듈에 있는 구조이지만, 차후 중급자 강좌에서 클린 아키텍쳐 및 멀티모듈을 통해 보기 좋게 분리해보도록 하겠습니다.

 

각각에 대한 상세 설명은 다음과 같습니다.

 

common

현재 common은 base 와 compose 로만 구분시켜 두었습니다.

base 는 디자인 패턴에서 기본 전제가 될 수 있는 소스코드를 개발 및 관리하는 디렉터리가 될 예정입니다.

compose 는 공통 디자인에 대한 소스코드를 개발 및 관리하는 디렉터리가 될 예정입니다.

 

이 둘은 로직에 영향을 미칠 것이냐? 디자인에 영향을 미칠 것이냐? 라는 관점으로 분류시켜보았으며, 개발을 진행하면서 수정 보완 될수도 있을 것 같습니다.


core

core 에서는 앱에서 사용할 실질적인 비즈니스 로직과 유틸들을 관리할 예정입니다.

여기서 핵심은 useCase <- repository <- dataSource 로 이어지는 의존 관계입니다.

 

앱의 모든 비즈니스 로직을 정의하고 안드로이드 의존성을 철저하게 배제하여 이 디렉터리를 기반으로 테스트 코드도 작성해볼 예정입니다.

 

지금은 구조에 대해서만 소개를 드리고 있어서 상세한 내용은 강좌를 진행하는 동안 지속적으로 설명드리도록 하겠습니다.

 

참고로 bl은 비즈니스 로직을 의미합니다.


di

지금은 core 의 bl에서 참조가 필요한 의존성을 정의하고 있습니다.

지금은 유즈 케이스가 참조할 레파지토리와 레파지토리가 참조할 데이터소스, 데이터소스가 참조할 로컬 스토리지만 구성을 해본 상태입니다.

 


ui

사람으로 따졌을때 core 가 사람의 뇌라면 ui 는 몸이라고 생각하시면 될 것 같습니다.

사용자들과 실질적으로 상호작용이 가능한 부분인 UI에 대한 부분을 담당합니다.

 

앱의 모든 화면을 구성하고 다른 페이지로 이동하는 등 여러 작업들을 진행해볼 예정입니다.

 


MainActivity & SdApplication

화면을 구성하는 유일한 액티비티와 이 어플을 정의하는 어플리케이션 클래스입니다.

 

현재는 거의 기본에 가깝게 사용하고 있고, 추후 개발이 진행되면서도 크게 손대지는 않았던 것 같습니다.

 


정리

전반적인 구조에 대해 설명해드렸고, 다음 편에서는 이 구조를 어떻게 구현해야되는지에 대해 소개해드리겠습니다.

 

나만의 안드로이드 앱 만들기(초보자 편) - common (6-3)

이번 편에서는 지난 편에서 설명드린 구조 중 common 부분에 대해 설명드리겠습니다. 지난 편을 못보신 분들은 아래 링크를 참고 부탁드립니다. 나만의 안드로이드 앱 만들기(초보자 편) - 의존성

victorywskim.tistory.com

 

감사합니다!

반응형