💡 mvvm 패턴 ?
- view/viewmodel/model 을 이용해 각각의 역할을 분리하여 가독성과 재사용성을 높인 디자인 패턴.
- 장점
- livedata = observable패턴을 이요하기 때문에 데이터 베이스를 관찰하고 자동으로 ui 갱신
- 뷰모델이 데이터를 홀드하고 있기 때문에 생명주기로부터 안전하여 불필요한 메모리 사용을 줄임
- ui, 비즈니스 로직, 데이터베이스가 기능별로 모듈화 되어있어 유닛 테스트가 용이 해짐.
💡 ACC ?
- android architecture components = 안드로이드 아키텍쳐 컴포넌트는 앱 구조를 더 튼튼하고, 테스트에 용이하고, 유지보수성이 뛰어나게 만들어 주는 라이브러리 모음이다.
- databing, livedata, viewmodel등의 유용한 라이브러리를 제공한다.
- viewmodel
- ui를 위한 데이터를 가지고 있으며 구성(화면회전, 언어변경)이 되어도 살아남는다.
- view
- ui를 담당하는 액티비티나 프래그먼트. 사용자와 상호작용하며 데이터 변화를 감지하기 위한 옵저버가 있다.
- repository
- 뷰모델과 상호작용하기 위해 잘 정리된 데이터 api를 들고 있는 클래스이다
- 내장 데이터베이스나 외부 웹 서버 등에서 데이터를 가져온다
- 뷰모델은 서버에 직접 접근하지 않고 repository에 접근하여 데이터를 관리한다
- room
- sqlite 데이터베이스를 편하게 사용하게 해주는 라이브러리이다
'안드로이드' 카테고리의 다른 글
[안드로이드] Hilt @Qualifier란 ? (0) | 2022.10.31 |
---|---|
[안드로이드] StateFlow 알아보기 (0) | 2022.10.19 |
[안드로이드] Hilt - 2 (@Binds vs @Provides) (0) | 2022.10.14 |
[안드로이드] Hilt - 1 (0) | 2022.10.13 |
[안드로이드] 코루틴 - Scope, Dispacher (0) | 2022.10.12 |