📜 TIL
[Android] MVVM패턴에 대해 간단히 알아보자
둥굴둥굴둥굴레차
2022. 10. 12. 16:02
🎈 MVVM 패턴이란?
✨ 구성요소
Model, View, ViewModel로 이루어져있다.
View
사용자에게 보여지는 레이아웃
사용자와의 상호작용으로 받은 입력을 ViewModel에 전달한다.
View는 UI업데이트를 위해 ViewModel과 Binding하게 된다.
즉, View가 ViewModel을 구독하여 ViewModel의 상태가 변경되면 그 이벤트를 받아 UI를 갱신한다
Model
데이터와 관련된 비즈니스 로직을 처리하는 곳이다.
DB나 네트워크 등 다양한 데이터 소스로 부터 필요한 데이터를 준비한다.
ViewModel
Model에서 가져온 데이터를 View에 뿌려줄 수 있는 형태로 가공한다.
View는 ViewModel의 reference를 가지지만 ViewModel은 View에 대한 정보가 전혀 없어야한다.
MVC패턴의 Controller와 다른점은 View가 ViewModel을 관찰하는 형태로 binding되어 있다. 따라서 LiveData라이브러리를 통해 데이터 업데이트를 View가 자동으로 받을 수 있는 형태이다.
기타
각 컴포넌트(View, ViewMode, Model)는 서로 Reference를 가지지 않고 View -> ViewModel -> Model 형태의 단방향 Dependency를 가진다.
REFERENCE