MVVM

Jeom·2024년 7월 31일

MVVM이란?

모델 뷰 뷰모델로 기존의 MVC패턴의 문제(일부 ViewController의 비대화)를 해결하기 위한 디자인 패턴이다. View와 Model이 포함된 측면으로 ViewModel이 추가 된다. MVVM은 특히 RxSwiftCombine을 사용하는 데이터 압축이 필요한 iOS 제작에 적합합니다.

구성 요소

Model

MVC의 Model과 동일하게, 데이터와 비즈니스 구조를 정의하는 부분이다
데이터의 구조 등을 관리 한다.

View

사용자 인터페이스를 담당하는 부분입니다. 사용자 결합 조합을 표현하고, ViewModel을 통해 데이터를 표시합니다.
ViewModel의 데이터를 구독하고, UI를 업데이트하며 사용자 입력을 전달합니다.

ViewModel:

View와 모델 사이에서 데이터를 처리하여 View에 제공하고, View의 이벤트를 가져오는 모델에 참여하는 역할을 합니다.
View에 표시할 데이터와 상태를 관리하며, View가 직접 모델에 접근하지 못하도록 막습니다.

데이터의 흐름

장점

  • View와 Model의 이점을 결합하는 것을 제거 : View는 Model을 직접 접근하지 않고 ViewModel을 통해 접근합니다.
  • 테스트 불안성 : View와 근육이 분리되어, ViewModel의 테스트가 불안합니다.
  • 데이터 수집을 통해 UI업데이트가 자동으로 존재합니다.

MVC와 MVVM 비교

profile
iOS 개발노트

0개의 댓글