-
[Android Kotlin] MVVM 패턴 이해하기Framework/Android 2022. 4. 13. 23:16반응형
MVVM패턴이란?
- View
- 사용자의 내용을 입력 받고, UI관련 내용을 처리하는 곳
- 즉, UI에 관련 된이벤트나 데이터 변경 건에 대한 내용을 ViewModel에 알려줌 ViewModel에 상태가 변경되면 바로 UI에 반영이 됨
- ViewModel
- View와 Model의 중간다리 역할을 함
- ViewModel은 LiveData의 등록시켜 View(Activity, Fragment)의 Lifecycle을 따르게 하여 View가 사라지면 ViewModel도 없어지도록 설정 할 수 있음
- View의 내용과 Model의 내용을 같이 가지고 있음
- Model
- ViewModel에서 데이터를 가져갈 수 있게 준비하며 실질 적인 데이터베이스에 접근처리 하는 역할을 함
- 데이터베이스에 접근 처리 한 내용은 ViewModel에 알려주어 바로 UI에 반영될 수 있도록 해줌
AAC(Android Architecture Component)란?
- 구글에서 제공하는 안드로이드 아키텍쳐(디자인 패턴)임 이것이 MVVM으로 되어있음
- android가 google에서 제공하는 공식 앱 프레임워크로 등록 되었고 jetbrain에서 만든 kotlin이 google공식 언어가 되었음, 그래서 AAC(MVVM)에 대해 알아야 함
- Android Libraries - Architecture Components (라이브러리 집합)
- Android에서 사용하라고 제공해주는 Library 집합 - Jetpack이라고도 함 (공홈에 있음)
- Architecture Components란?
- 아키텍쳐에 대한 가이드를 Lifecycle관리 및 Data Persistence와 같은 일반적인 작업을 위한 라이브러리와 함께 제공하는 것 Architecture Component는 Jetpack에 속해있다.
- Architecture Component 구성 요소
- LifeCycle을 Handling 할 수 있는 방법
- Live Data
- ViewModel
- Room Persistence Library(Persistence 지속성)
LiveData
- Jetpack에 속해 있는 라이브러리로 ViewModel을 구현 할 수 있게 해줌
- ViewModel을 LiveData에 등록하여 사용 등록 할때 해당 Activity나 Fragment를 Owner로 설정함
- 등록된 Owner인 Activity, Fragment의 LifeCycle을 따르고 있어서 Owner가 사라지면 해당 LiveData도 사라지게 되어 메모리 누수가 없게 해줌
- 항상 캡슐화 해서 사용해야함(private)
Repository
- 직접적으로 데이터 가지고 있는 클래스
- 데이터를 가져오기 위해 API처리를 해주는 기능이 들어가게됨
Room
- Sqlite를 편하게 사용하게 도와 주는 라이브러리
- Sqlite는 데이터베이스 이기 때문에 데이터를 저장하거나 삭제하는 것이 가능하여 데이터 처리가 가능해짐
- 보통 큰 데이터를 조회하거나 처리하는 경우 백단이 개발되어 API로 처리하게 되고 간단하게 앱에서 처리 가능 한것은 Room을 이용하여 처리하게 됨
반응형'Framework > Android' 카테고리의 다른 글
[Android Kotlin] Permission에 대해서 정리해보기 (0) 2022.04.17 [Android Kotlin] 프로젝트 생성 시 기본 폴더 구조 및 내용 요약 (0) 2022.04.12 - View