
(이미지 출처 : https://blog.yena.io/studynote/2019/03/16/Android-MVVM-AAC-1.html)
Model : 디자인 패턴에서는 데이터와 데이터에 관련된 행위를 모두 합쳐 Model 이라 부름. ViewModel 에서 데이터를 가져갈 수 있게 데이터를 준비하고, 그에 대한 이벤트를 보냄.
View : 사용자에게 화면으로 보여지는 모든 구조, 레이아웃을 View라고 함. View 는 data binding 을 통해 이러한 입력을 View Model 에게 전달. ( Activity, Fragment, CustomView, Dialog, Toast, Snackbar, Menu 등)
ViewModel : ViewModel 은 View 의 추상화된 형태. View 에 보여져야하는 데이터와 명령들을 가지고 있음. ViewModel 이 MVC 패턴의 Controller 나 MVP 패턴의 Presenter 와 다른 점은, View 가 ViewModle 을 observe(관찰) 하는 형태로 binding 되어 있기 때문에, data 의 갱신을 View 가 자동으로 받을 수 있게 돼있음.
참고
https://blog.yena.io/studynote/2019/03/16/Android-MVVM-AAC-1.html
https://salix97.tistory.com/266