본문으로 이동

모델-뷰-뷰모델

위키백과, 우리 모두의 백과사전.
Ykhwong (토론 | 기여)님의 2019년 4월 15일 (월) 14:29 판 (새 문서: 섬네일|upright=1.5 '''모델-뷰-뷰모델'''(model–view–viewmodel, '''MVVM''')은 소프트웨어 아키텍처 패턴의 하나이다. MVVM은...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

모델-뷰-뷰모델(model–view–viewmodel, MVVM)은 소프트웨어 아키텍처 패턴의 하나이다.

MVVM은 마크업 언어나 GUI 코드를 통해 그래픽 사용자 인터페이스의 개발을 비즈니스 로직이나 프론트엔드 로직("데이터 모델")과 분리를 용이케 한다. MVVM의 뷰 모델은 값 변환기이며,[1] 이는 뷰 모델이 모델로부터 데이터 객체를 노출(변환)시키는 일을 맡음으로써 객체들이 쉽게 표현될 수 있게 한다는 의미이다. 이러한 관점에서 뷰 모델은 단순한 뷰 이상의 모델이며 뷰의 디스플레이 로직 대부분을 관리한다.[1] 뷰 모델은 중재자 패턴을 구현할 수 있으며 뷰가 지원하는 유즈 케이스들의 집합 주변 백엔드 로직에 대한 접근 권한을 정리한다.

MVVM은 사용자 인터페이스의 사건 기반 프로그래밍을 단순하게 만들 목적으로 마이크로소프트의 설계자 켄 쿠퍼와 테드 페스터스에 의해 발명되었다.

모델-뷰-뷰모델은 특히 닷넷 플랫폼을 수반하지 않는 구현체에 대해 모델-뷰-바인더(model–view–binder)라고도 부른다. ZK, KnockoutJS는 모델-뷰-바인더를 사용한다.[2][3][4]

비평

이 패턴의 비판은 정작 MVVM의 개발자 존 고스먼 자신에게서 비롯되었으며,[5] 그는 MVVM을 구현하는 부하가 단순한 UI 동작에 대해 지나칠 정도로 심하다고 지적한다.

구현체

닷넷 프레임워크

자바스크립트 프레임워크

같이 보기

각주

  1. Google groups. “Thought: MVVM eliminates 99% of the need for ValueConverters”. 
  2. 인용 오류: <ref> 태그가 잘못되었습니다; JoshSmith라는 이름을 가진 주석에 텍스트가 없습니다
  3. Massey, Simon. “Presentation Patterns in ZK”. 2012년 3월 24일에 확인함. 
  4. Steve Sanderson. “KnockoutJS”. 
  5. John Gossman. “Tales from the Smart Client: Advantages and disadvantages of M-V-VM”. 

외부 링크