본문 바로가기

Design Pattern

MVVM(Model View ViewModel) 패턴

MVVM(Model View ViewModel) 패턴

MVVM은 테스트와 모듈화가 쉽고 뷰와 모델을 연결하기 위해 사용해야 하는 연결 코드를 줄일 수 있다는 장점이 있다.

Model : 비지니스 로직

View : 뷰는 뷰모델에 의해 보여지는 옵저버블 변수와 액션에 유연하게 바인딩된다.  View는 VIewModel을 호출하되 결과는 

callback/observable로 받는다.

ViewModel : Model을 래핑하고 View에 필요한 옵저버블 데이터를 준비합니다. 또한 View가 Model에 이벤트를 전달할 수 있도록 

훅(hook)을 준비한다. 그러면서도 뷰모델이 뷰에 종속되지는 않는다.

장점 

1. 뷰에 대한 의존성이 전혀 없으므로 유닛 테스트가 더 쉬워진다. 
2. 앱이 구조적으로 약한 결합 컴포넌트로 나눠진다. 

MVP와 MVVM의 장점
1. 개발속도가 빨라진다. 
2. 코드변경에 대한 두려움이 없다. 
3. 급격한 사양변경을 해도 가능하다.