MVVM

최대 1 분 소요

다지인 패턴 <ul>

        <li v-for="(array, n) in list">()</li>
    </ul> - 개발 과정에서 공통으로 발생하는 문제를 해결하기 위해 사영되는 패턴   - 구현체가 아닌 문제 해결을 위한 패턴

디자인 패턴 사용 이유

  • 증명된 솔루션
    • 패턴대로 코드가 전개되고 수정하는데에 열려있는 구조
  • 어디서든 사용 가능함.
    • 디자인 패턴은 언어에 제약을 받지 않음.

MVVM 패턴 (Model - view - ViewModel)

  • MVVM 패턴의 목표는 비지니스 로직과 프레젠테이션 로직을 UI로 부터 분리하는것.
    • 모델이 데이터에 대한 작업을 마치면 뷰 모델에게 결과를 알림.
    • MVVM 에서 ViewModel은 View 와 1:n 관계를 이룸

구성 요소

  1. 모델(Model)
    • 데이터, 상태, 비지니스 로직등 포함
    • 모델은 데이터에 대한 업데이트 내용을 알고있음. 이 작업들은 뷰모델에 의해 시작되며, 모델이 데이터에 대한 작업을 마치면 뷰 모델에게 결과를 알림.
  2. 뷰(View)
    • 사용자 이벤트 수신 후 데이터를 표시하는 UI(User Interface) 책임짐(ViewController 도 View 의 일부)
    • 뷰 모델의 변경사항을 감지하고 뷰모델이 업데이트한 데이터를 보여줌.
    • 뷰와 모델사이에 연결이 없고 뷰 모델에 의해 연결됨.
  3. 뷰 모델(View Model)
    • View와는 binding, Command로 연결 후 Model 과 데이터를 주고받음.
    • 뷰 모델은 로직을 담당

장점

  • 뷰 모델에서는 UIKit 관련된 코드가 없어, UI에 독립적인 테스트 가능

단점

  • 뷰 모델 설계하는것이 쉽지않음
  • 뷰에 대한 처리가 복잡해질수록 뷰 모델이 거대해져 오버스펙이 될 수 있음.

카테고리:

업데이트: