MVVM 이란

E_H·2021년 3월 28일
0

Architecture

목록 보기
3/3

MVVM

image.png

Model

앱이 가지는 데이터들을 뜻한다.

View

User Interface Visual 요소들이며 iOS에서 ViewController는
View와 분리 할 수 없다.

ViewModel

View의 입력을 받아 Model을 업데이트 하고 (Input)
Model의 Output으로부터 View를 업데이트 한다.

MVVM은 MVC에 비해 다음과 같은 이점을 제공해준다.

  • 복잡성 감소
    MVVM은 많은 비즈니스 로직을 제거함으로서 ViewController를 단순하게 만든다.
  • 표현식
    ViewModel은 View의 비즈니스 로직을 더 잘 표현한다.
  • 테스트
    ViewModel은 View Controller보다 테스트하기가 훨씬 쉽다.
    View 구현에 대해 걱정할 필요 없이 비즈니스 로직을 테스트하게 된다.

Model, View, ViewModel의 구성요소이며 앱이 커지는 만큼
Controller도 비대해지는 MVC에서 비즈니스 로직을 분리함으로서
유지보수를 쉽게 하기 위해 만들어졌다.
MVVM에서는 Data Binding이 주요 개념이다.

MVVM에서는 ViewModel Output을 View에 바인딩할 수 있는 방법이 필요한데
네 가지 방법이 있다고 한다.

  • Key-Value Observing or KVO
  • Functional Reactive Programming or FRP
  • Delegation
  • Property observers

출처
https://www.raywenderlich.com/6733535-ios-mvvm-tutorial-refactoring-from-mvc#toc-anchor-005
https://wnstkdyu.github.io/2018/04/20/mvvmdesignpattern/

0개의 댓글