카테고리 없음

MVVM

superbono 2021. 3. 8. 16:23

* MVVM Model?

모델-뷰-뷰 모델(model-view-viewmodel, MVVM)은 디자인 패턴 중에 하나이다. MVVM 패턴을 사용하면 비지니스 로직과 프레젠테이션 로직을 UI로부터 깔끔하게 분리할 수 있다. 그 얘기는 유지 보수가 용이하다는 이야기이다. 뷰는 뷰 모델을 알지만, 뷰 모델은 뷰를 알지 못한다.  MVVM 패턴은 뷰가 어느 특정한 모델 플랫폼에 종속되지 않도록 해준다. 이러한 구조를 통해서 뷰 모델과 모델이 뷰로부터 독립적인 형태를 만들어서 비지니스 로직과 프레젠테이션 로직을 UI로부터 깔끔하게 분리할 수 있게 되는 것이다. 

 

* MVVM 패턴의 구성 요소

- 모델(Model)

비지니스 로직과 데이터를 다룬다.

- 뷰(View)

UI와 UI로직을 다룬다. 사용자가 화면에서 보는 것들에 대한 구조와 배치, 외관을 담당한다. 모델을 사용자에게 표현하며, 사용자와 뷰의 상호작용(클릭, 키보드 동작 등)을 수신하며, 이에 대한 처리를 뷰와 뷰 모델의 연결을 정의하고 있는 (속성, 이벤트 콜백 함수 등의) 데이터 바인딩(data binding, 데이터 연결)을 통하여 뷰 모델로 전달한다. 뷰에서는 데이터를 다루면 안된다. 

- 뷰 모델(View Model)

프레젠테이션 로직과 뷰를 위한 상태를 다룬다. MVC패턴에서의 컨트롤러나 MVP 패턴의 프리젠터를 대신하여 MVVM은 바인더(binder, 연결자)를 가지고 있는데, 이는 뷰 모델에 있는 뷰에 연결된 속성과 뷰 사이의 통신을 자동화 한다. 모델의 데이터를 가공하는 것인 이 뷰 모델에서 이루어져야 하는 것이다. 일반적으로 뷰 모델과 모델은 일대다 관계를 형성한다. 

 

* 장점

- 모델과 뷰 모델이 뷰로부터 독립적이기 때문에 플랫폼 독립적으로 개발할 수 있다.

- 개발 기간 동안 개발자와 디자이너가 동시에 병렬적으로 작업할 수있다. (UI 디자인이 나오지 않았더라도 미리 정의된 모델과 뷰 모델을 먼저 개발할 수 있기 때문에 병렬적인 업무 프로세스가 가능하다.)

- 유지보수가 용이할 것이다. 

* 단점

프로그램의 크기가 커질수록 뷰 모델을 폭 넓게 사용하기가 어려워지며, 아주 큰 응용 프로그램에서 데이터 바인딩을 사용하게 되면 눈에 띄게 메모리를 소모하게 된다.

 

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

 

모델-뷰-뷰모델

위키백과, 우리 모두의 백과사전. 모델-뷰-뷰 모델(model-view-viewmodel, MVVM)은 하나의 소프트웨어 아키텍처 패턴으로-마크업 언어 또는 GUI 코드로 구현하는-그래픽 사용자 인터페이스(뷰)의 개발을

ko.wikipedia.org

velog.io/@k7120792/Model-View-ViewModel-Pattern