MVVM 패턴 (Model View ViewModel)

반응형

 

MVVM 패턴이란? (Model-View-ViewModel)

  • 소프트웨어 아키텍처 패턴으로 그래픽 인터페이스(뷰)와 비즈니스 또는 백엔드 로직(모델)을 분리
  • 뷰가 특정 모델에 종속되지 않음
  • 뷰 모델은 뷰에 대한 참조를 하지 않고 뷰의 속성을 직접 연결(bind)

모델 (Model)

  • 도메인 모델과 데이터 접근 계층을 참조하는 것
  • 도메인 모델 : 실제 상태 내용을 표현 (객체 지향 접근법)
  • 데이터 접근 계층 : 내용을 표현 (데이터 중심 접근법)

뷰 (View)

  • 사용자가 화면에서 보여지는 구조, 배치, 외관을 의미
  • 모델을 시각적으로 볼 수 있게 표현
  • 사용자와 뷰의 상호 작용(클릭, 키보드 등)을 수신하여 데이터 바인딩을 통하여 뷰 모델로 전달

뷰 모델(View Mode)

  • 공용 속성과 공용 명령을 노출하는 뷰에 대해 추상화 한 것
  • 바인더(binder, 연결자)를 이용하여 뷰 모델에 있는 뷰에 연결된 속성과 뷰 사이의 통신을 자동화
  • 모델에 있는 데이터 객체를 관리하고 모든 뷰들의 디스플레이 로직을 제외한 대부분의 것들을 처리

바인더 (Binder, 연결자)

  • 뷰 모델과 뷰의 동기화를 해주는 것 (= 뷰와 뷰 모델에 대한 데이터 바인딩)
  • 상용구 로직을 작성하는 번거로움을 줄여줌
    • 상용구 로직 예시) Java class의 선언하는 코드들, C/C++의 #define ~, #include ~ 등

참고

  • 위키백화 모델-뷰-뷰모델

https://ko.wikipedia.org/wiki/%EB%AA%A8%EB%8D%B8-%EB%B7%B0-%EB%B7%B0%EB%AA%A8%EB%8D%B8

 

  • 위키백과 상용구 로직

https://en.wikipedia.org/wiki/Boilerplate_code

반응형