MVVM 기초

Design Pattern

어떤 목적을 달성하기 위한 효율적인 패턴. 유지보수하기 쉽게 해준다. 코드 구조에 대한 전략

디자인 패턴의 목적 :

  • 기술 부채 최소화
  • 재사용 및 지속 가능한 코드 만들기

클린 아키텍처, 디자인 패턴 이라는 용어로 통용 된다.

MVVM

Model -View - ViewModel

과거에는 MVC(Model - View - Controller) 패턴이 많이 사용되었다.

MVC

  • Model : 데이터 (Struct)
  • View : UI 요소 (UIView)
  • Controller : 중계자 (UIViewController) Model 과 View 사이에 중계자 역할

중계자인 UVIewConroller 가 비대해지기 시작했다. 결합도가 커지기 시작함.

MVVM

  • Model : 데이터 (Struct)
  • View : UI 요소 UIView, UIViewConroller
  • ViewModel : 중계자

ViewConroller 가 Model 에 직접 접근하지 못한다. ViewModel 이라는 클래스로 Model에 접근할 수 있게 함.

결국 MVVM 에서 하려는 것은 UIViewConroller 에 비중을 축소 시켜서 책임을 ViewModel 에 위임하고, 결과적으로 결합도를 낮추려는 것이다. → 명확한 책임을 갖게 된다.