개발공부/디자인패턴

MVVM 패턴이란?

개발자 찐빵이 2021. 10. 26. 00:34
728x90
반응형

디자인 패턴

개발 과정에서 발생하는 문제를 해결하기 위해 사용되는 패턴.
같은 문제에는 같은 방식의 패턴을 사용하면 된다.

문제에 맞는 디자인 패턴을 적용하는 게 중요하다.

MVVM 패턴

Model(비즈니스 로직), View(UI), View Model(프레젠테이션 로직)으로 로직을 분리하는 패턴이다.
이렇게 로직을 분리하면 테스트, 유지보수, 재사용이 쉬워진다.

MVVM 패턴의 구성요소

MVVM 위키백과

Command 패턴과 Data Binding을 통해 View와 View Model 사이의 의존성을 없앴다.
ViewModel과 Model은 1:N 관계를 형성한다.

Model은 ViewModel과 View를 모르고, ViewModel은 View를 모른다.

View

UI에 관련된 것을 다룬다.
사용자가 보는 구조, 레이아웃, 형태를 정의한다.
UI로직을 포함하지만 비즈니스 로직을 포함하면 안 된다.

ViewModel에 있는 필드가 변경되는지 관찰하고 있다.(Observer pattern)

ViewModel

Model의 데이터를 가공해서 뷰에 제공한다.
View에서 사용할 메서드와 필드를 ViewModel에서 구현한다.

Model

데이터와 데이터에 관련된 행위를 합쳐서 Model이라 한다.
앱에서 사용할 비즈니스 로직을 다룬다.

MVVM 패턴의 장단점

장점

  • 개발 기간 동안 개발자와 디자이너가 병렬적으로 작업할 수 있다.
    UI 디자인이 나오지 않았더라도 미리 정의된 모델과 뷰 모델을 먼저 개발할 수 있기 때문.
  • 테스트하기 쉽다.
  • 재사용이 용이해진다.

단점

  • 복잡한 구조를 위해서 만들어진 패턴이라 거대한 앱에서는 유용할지 몰라도
    소형 앱에서 사용하면 오버헤드가 커진다.
  • 데이터 바인딩이 메모리 소모를 많이 한다.

유의할 점

ViewModel이 비대해지지 않게 주의해야 한다.
View → ViewModel → Model 이 참조 순서를 지켜야 한다.

참고 링크

MVVM 패턴
MVC, MVP, MVVM 비교

반응형