Model, View, ViewModel을 구성하고 있는 패턴
View
Activity나 Fragment가 View 역할을 함
사용자의 액션을 받음 (텍스트 입력, 버튼 터치 등)
ViewModel의 데이터를 관찰하여 UI를 갱신
ViewModel
사용자 입력에 맞는 데이터를 가공하는 비즈니스 로직을 처리하는 부분
View가 요청한 데이터를 Model로 요청
Model로부터 요청한 데이털르 받음
Model
실질적인 Data를 다루는 부분
DB나 API를 이용한 데이터 획득 등 데이터를 호출
MVVM 패턴을 간편하게 적용할 수 있도록 구글에서는 ACC를 제공한다.
ViewModel
화면 변화시에도 사라지지 않는 데이터를 가지고 있다.
Live Data
View가 ViewModel을 관찰할 때, 그 관찰 대상이 되는 데이터 홀더 클래스이다. Live Data는 Activity 및 Fragment의 생명주기를 인식하지 못하므로 화면이 활성화되어 있을 때만 동작하여 메모리 릭을 줄여준다.
Repository
ViewModel과 데이터를 주고받기 위해 데이터 API를 포함하는 클래스이다. 사용자 동작에 따라 필요한 데이터나 외부 백엔드 서버 등에서 데이터를 가져오게 된다. Repository 덕분에 ViewModel이 데이터를 관리할 필요가 없게 된다.
RoomDatabase