MVVM 패턴

JohnKim·2022년 3월 26일
0

디자인패턴

목록 보기
1/1

MVVM 패턴이란?

Model, View, ViewModel 약자를 딴 디자인 패턴의 한 종류

MVVM 패턴의 목표

Model(비즈니스 로직), View(UI), ViewModel(프레젠테이션 로직)으로 로직을 분리하여 테스트, 유지보수, 재사용을 쉽게 만드는것!

비즈니스 로직이란?

어떠한 특정값을 얻기위해 데이터의 처리를 수행하는 응용프로그램의 일부를 말한다. 즉 원하는 값을 얻기위해 일어나는 각종처리를 일컫는 말

프레젠테이션 로직이란?

보여주기위한 로직을 말한다. 즉 화면성의 디자인 구성을 위한 로직을 일컫는 말로써, 비지니스 로직들을 어떻게 사용자에게 보여줄지에 대한 로직입니다.

MVVM 패턴의 특징

  • View로부터 완전히 독립된 ViewModel을 사용하는 패턴
    독립성이 가져다 주는 장점으로 유닛테스트나 재사용, 확장이 쉬워집니다.
  • View ViewModel은 1:N의 관계를 갖을 수 있다.

  • UI 변경에 강건한 구조를 갖는다!
    기존에 구현된 UI에서 기능 변경없이 새로운 UI디자인이 들어 왔을때
    View만 변경해주면 된다! (ViewModel의 독립성 덕분에 가능)

MVVM을 구성하는 3가지 요소

ViewViewModel을 알지만, ViewModelView를 알지 못합니다.
ViewModelModel을 알지만, ModelViewModel을 알지 못합니다.

이런 구조를 통해서 ViewModel 과 ModelView로 부터 독립적인 형태를 만들어서 위에서말한 UI로 부터 비즈니스 로직과 프레젠테이션 로직의 분리라는 목적을 이룰 수 있게 된 것입니다.

View

View의 역활은 UI에 관련된 것을 다루는 것입니다.
사용자가 스크린을 통해 보는 것들에 대한 구조, 레이아웃, 형태를 정의하며, View는 애니메이션과 같은 UI로직을 포함하되 비즈니스 로직을 포함하지 말아야 합니다.

ViewModel

ViewModel의 역할은 View가 사용할 메서드와 필드를 구현하고, View에게 상태변화를 알리는 것입니다.
ViewModel에서 제공하는 메서드와 필드가 UI에서 제공할 기능을 정의하고, View가 이기능을 어떻게 보여줄것인지를 결정합니다.

일반적으로 ViewModelModel은 일대다 관계를 형성합니다.

ViewModel은 View가 쉽게 사용할 수 있도록 Model의 Data를 가공해서 View에게 제공합니다.

Model
Model은 비즈니스 로직과 유효성 겁사화 데이터를 포함하는 앱의 도메인 모델로 생각할 수 있습니다.

Model은 앱에서 사용할 데이터에 관련된 행위와 데이터를 다룹니다.

MVVM 패턴의 장/단점

장점

  • ViewModelModelView 사이의 어댑터로서 변경이 생겼을 때 변경을 최소화 할 수 있습니다.

  • ModelViewModelView로부터 독립적입니다.

  • ViewModelModel을 플랫폼 독립적으로 개발할 수 있습니다.

  • 테스트하기 쉽습니다.

  • 개발 기간동안 개발자와 디자이너가 동시에 독립적으로 (병렬적으로) 작업할 수 있다.

     UI디자인이 나오지 않았더라도 미리 정의된 `Model`과 `ViewModel`을 먼저 개발할 수 있기 때문에 병렬적인          
    
     업무 프로세스가 가능합니다.

단점

  • 거대하고 복잡한 앱을 위해서 고안된 디자인 패턴으로, 소형 앱에서 사용하게되면 오버헤드가 커집니다.
  • 앱이 너무 거대해지면 앱의 메모리 소모가 데이터 바인딩 때문에 커집니다.

참조
https://velog.io/@k7120792/Model-View-ViewModel-Pattern
https://www.youtube.com/watch?v=07ES0ne-_U8&t=1151s

0개의 댓글

관련 채용 정보