[Study][DesignPattern] MVVM 패턴

LimJaeJun·2024년 3월 15일

Study

목록 보기
14/16

MVVM 패턴

MVVM 개념

MVVM (Model-View-ViewModel)
Model, View, ViewModel로 분리하여 View가 특정 Model에 종속되지 않도록 해주는 아기텍처 패턴이다.

MVVM 구성

Model (모델)

데이터와 비지니스 로직을 담당하는 부분이다.
데이터를 Get, Set하는 역할을 수행한다.
보통 데이터 베이스, 네트워크 요청, 파일 시스템같은 데이터 소스와 상호작용한다.

View (뷰)

Winform 혹은 WPF Window 혹은 Web 페이지같은 UI를 담당하는 부분이다.
데이터를 표시하고 유저의 입력을 받아 VM(View Model)에 전달한다.

ViewModel (뷰모델)

Model과 View 사이에서 연결시켜주는 역할을 수행한다.
UI 로직, 커맨드, 이벤트, 모델에 대한 참조가 필요할 수 있다.

MVVM 동작 과정

MVVM 특징

데이터 바인딩
커맨드

MVVM 장단점

장점

  • 분리된 UI를 쉽게 제작할 수 있다.
  • 다른 패턴에 비해 View에 직접 기능을 연결하기 때문에 비슷한 기능을 통합할 수 있다.
  • 의존성을 없앨 수 있기 때문에 테스트하기 편해진다.

단점

  • 설계하기 복잡하다.
  • 데이터 바인딩으로 인한 메모리 소모가 심하다.
  • MVVM에서 사용되는 기술에 대하여 러닝 커브가 존재한다.
  • 작은 프로젝트에서는 유용하지 않다.

참고

https://www.centbin.com/c%EC%9C%BC%EB%A1%9C-%EB%B3%B8-mvvm-%ED%8C%A8%ED%84%B4-%EC%A0%95%EB%A6%AC-%EB%B0%8F-%ED%99%9C%EC%9A%A9-%EB%B0%A9%EB%B2%95%EC%9D%84-%EC%9D%B4%EC%95%BC%EA%B8%B0%ED%95%A9%EB%8B%88%EB%8B%A4/
https://velog.io/@kyeun95/%EB%94%94%EC%9E%90%EC%9D%B8-%ED%8C%A8%ED%84%B4-MVVM-%ED%8C%A8%ED%84%B4%EC%9D%B4%EB%9E%80
https://velog.io/@k7120792/Model-View-ViewModel-Pattern
https://ko.wikipedia.org/wiki/%EB%AA%A8%EB%8D%B8-%EB%B7%B0-%EB%B7%B0%EB%AA%A8%EB%8D%B8
https://learn.microsoft.com/ko-kr/xamarin/xamarin-forms/enterprise-application-patterns/mvvm

profile
Dreams Come True

0개의 댓글