AAC 안드로이드 아키텍쳐 컴포넌트 (Android Architecture Components)
안드로이드 아키텍쳐 컴포넌트는 앱 구조를 더 튼튼하고, 테스트에 용이하고, 유지 보수성이 뛰어나게 만들어 주는 라이브러리 모음.
아키텍쳐 컴포턴트에서는 조금 더 모듈화된 코딩을 돕기 위해 Databinding, LiveData, ViewModel 등의 유용한 라이브러리를 제공하며, 이러한 라이브러리의 모음은 MVVM 패턴의 구조의 설계에 최적화되어 있다.
안드로이드 아키텍쳐 (AAC) 를 사용하면 좋은점
1. 일관적인 코드작성으로 유지보수와 협업의 편리함
2. 생산성 향상
3. 테스트의 용이성
4. 어플리케이션 개발 방향의 유리함
안드로이드 아키텍쳐 (AAC) 종류
1. MVC : Model + View + Controller
2. MVP : Model + View(ViewController) + presenter
3. MVVM : Model + View(VIewController) + ViewModel
4. MVVM + DataBinding
1. MVC
Controller 는 액티비티가 컨트롤러의 역할을 하며, View 와 연결되어 유저와 상호작용도 하고, Model 과 연결되어 data 작업도 처리.
즉 View 와 Model 사이에서 중재자 역할.
2. MVP
View 는 일반적인 Activity, Fragment 로 비지니스 로직을 직접적으로 Presenter 를 통해 호출.
Presenter 는 매개체가 되며, Model 에 직접적으로 접근하여 가공 후 콜백으로 결과를 리턴.
3. MVVM
View 는 직접적인 비즈니스 로직을 ViewModel 을 통해 호출.
매개체인 ViewModel 은 라이프사이클에 맞게 LiveData 라는 data 변경을 관찰 할 수 있는 DataHolder 클래스를 기반으로 모델에 접근하여 data를 가공해서 가져온다.
모델은 데이터 변경이 되었을 시 holder 클래스에 담아서 Succ/Err 형태로 ViewModel 에 던져주고
View 는 ViewModel을 관찰(Observe)하며 data 변경을 감지한다.
뷰에서 뷰모델로, 뷰모델에서 모델로 작업을 처리하며, 뷰에서 모델을 직접 참조하지 않는다.
4. MVVM - Databinding
'📱 안드로이드 Android ~ Kotlin' 카테고리의 다른 글
[안드로이드/Android] 클린아키텍처 Clean Architecture (0) | 2021.09.09 |
---|---|
[Android/Firebase] Firebase 프로젝트 생성 및 앱 추가 (0) | 2021.09.05 |
[Android/Kotiln] 데이터 바인딩 dataBinding 사용하기 (0) | 2021.09.02 |
[Android/Kotiln] MVVM 적용한 날씨 앱 만들기 (viewBinding, retrofit 사용) (0) | 2021.08.30 |
[Android/Kotiln] MVVM 적용한 ToDo 앱 만들기 (LiveData) (0) | 2021.08.13 |