[kotlin] 안드로이드 아키텍처 컴포넌트의 프로젝트 구조
안드로이드 아키텍처 컴포넌트는 안드로이드 앱을 설계하고 구축하기 위한 일련의 도구와 라이브러리 집합입니다. 안드로이드 앱의 아키텍처를 관리하고 구성하는 데 매우 유용합니다. 아키텍처 컴포넌트에는 Room, ViewModel, LiveData, Data Binding, WorkManager 등이 포함됩니다. 각 컴포넌트는 앱의 로직, 데이터 및 사용자 인터페이스를 관리하고, 관련 코드를 구조화하여 유지 관리를 용이하게 합니다.
이번 포스트에서는 안드로이드 아키텍처 컴포넌트를 사용하여 구성된 프로젝트의 구조에 대해 살펴보겠습니다. 구조의 이해는 앱의 규모가 커지고 유지보수가 필요한 경우에 매우 중요합니다.
프로젝트 구조 개요
안드로이드 아키텍처 컴포넌트를 사용하는 안드로이드 프로젝트는 전형적으로 아래와 같은 구조를 가집니다.
|-- app
| |-- src
| |-- main
| |-- java
| |-- com.example.myapp
| |-- di
| |-- model
| |-- repository
| |-- ui
| |-- util
| |-- res
|-- build.gradle
|-- settings.gradle
위 구조는 안드로이드 스튜디오에서 생성되는 기본 프로젝트 구조로, 다음과 같은 주요 요소들로 구성됩니다.
- app: 앱 모듈을 나타내며, 앱의 자원 및 코드가 여기에 포함됩니다.
- src/main/java/com.example.myapp: 앱의 자바 소스코드가 여기에 위치하며, 아키텍처 컴포넌트 및 관련 클래스들이 여기에 구현됩니다.
- di: Dependency Injection을 위한 클래스들을 포함합니다.
- model: 데이터 모델 클래스들을 포함합니다.
- repository: 데이터 및 비즈니스 로직을 관리하는 클래스들을 포함합니다.
- ui: 앱의 화면과 관련된 클래스들을 포함합니다. 여기에는 Activity, Fragment 및 ViewModel 등이 포함됩니다.
- util: 유틸리티 클래스들을 포함합니다.
- src/main/res: 리소스 파일들이 여기에 위치하며, 레이아웃, 문자열, 이미지 등이 포함됩니다.
- src/main/java/com.example.myapp: 앱의 자바 소스코드가 여기에 위치하며, 아키텍처 컴포넌트 및 관련 클래스들이 여기에 구현됩니다.
- build.gradle: 프로젝트의 전체적인 빌드 설정을 포함합니다.
- settings.gradle: 모든 모듈의 구성 및 설정을 관리하는 파일입니다.
아키텍처 컴포넌트 구조
아키텍처 컴포넌트를 사용하여 프로젝트를 구성하는 경우, 주요 코드는 다음 위치에 구현됩니다.
- ViewModel:
ui
패키지 내부에 위치하며, ViewModel 클래스들은 UI 관련 데이터를 관리하고 유지합니다. - Repository:
repository
패키지 내부에 위치하며, 앱의 데이터 작업을 추상화하고 관리합니다. - Data Model:
model
패키지 내부에 위치하며, 앱에서 사용되는 데이터 클래스들이 여기에 구현됩니다.
안드로이드 아키텍처 컴포넌트를 사용하는 경우, 의존성 주입, 싱글톤 패턴, 데이터 관찰, 비동기 작업 등을 효율적으로 구현할 수 있습니다.
프로젝트를 구성하는데 있어서 아키텍처 컴포넌트의 적절한 사용은 앱의 개발 및 유지보수를 보다 효율적으로 만들어줍니다.
이상으로 안드로이드 아키텍처 컴포넌트를 사용하는 프로젝트의 구조에 대해 알아보았습니다. 감사합니다.