MVVM 패턴

Ji·2021년 11월 14일

MVVM 패턴

  • MVVM 패턴 = Model + View + View Model
  • ViewModel 각각의 기능에 따라 분리하여 코드를 작성하는 것
  • 뷰에서 뷰모델로, 뷰모델에서 모델로 작업을 처리


(이미지 출처 : https://blog.yena.io/studynote/2019/03/16/Android-MVVM-AAC-1.html)

MVVM의 컴포넌트

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 가 자동으로 받을 수 있게 돼있음.

MVVM의 특징

  • 소프트웨어를 최대한 기능적으로 작은 단위로 나눔.
  • View 가 가져갈 수 있도록 해당 데이터 변경에 대한 "notify" 를 보냄
  • ViewModel과 View는 Many to One 관계 (MVP와 다른 점) -> 여러개의 Fragment 가 하나의 ViewModel 을 가질 수 있음.

참고
https://blog.yena.io/studynote/2019/03/16/Android-MVVM-AAC-1.html
https://salix97.tistory.com/266

profile
공부방

0개의 댓글