Backend

[디자인 패턴] MVVM 패턴, Model - View - View Model

미누라니까요 2024. 10. 9. 19:37
728x90
반응형
SMALL

 

 

MVVM (Model - View - View Model)

  • Model, View, View Model으로 구성

 

출처 - 나무위키 MVVM

 

 

MVVM 패턴은 MVC와 비슷해 보이지만, 엄연히 다르다.

Model, View, View Model로 나누어지며, Controller가 아닌 View Model이라는 것이 존재한다는 것이 특징이다.

 

 

 


 

Model

  • 데이터를 담당 (DB에서 데이터를 가져오고 저장)
  • 비즈니스 로직도 담당
  • DB 혹은 네트워크 같은 데이터와 상호작용하는 부분

 

View

  • MVC 패턴의 View와 동일하게 화면을 보여주는 역할
  • ViewModel과 데이터 바인딩을 통해 데이터를 받아 화면에 표시
  • 직접적인 비즈니스 로직을 처리하지 않음
  • 사용자의 입력에 따라 ViewModel 과 작용

 

View Model

  • Model과 View 간의 중개자 역할
  • Controller와 유사
  • 사용자 입력을 처리하는 메서드를 제공
  • 주로 Model에 데이터를 요청하거나 View에 표시될 데이터를 준비하는 역할

 


이렇게만 본다면 MVVM의 View Model과 MVC의 Controller가 굉장히 유사하게 느껴질 것이다.

하지만 이 두 개념은 엄연히 차이가 있다. 

 

 

MVC의 Controller Vs. MVVM의 ViewModel

특징 MVC의 Controller MVVM의 View Model
역할 사용자 입력 처리, 비즈니스 로직 수행 Model 과 View 간의 중재자, 데이터 바인딩을 통한 자동 UI 갱신
사용자 상호작용 처리 사용자 입력을 직접 처리 View가 사용자 입력을 처리하고 ViewModel에 전달
데이터 바인딩 데이터 바인딩을 사용하지 않음, 수동으로 View 갱신 데이터 바인딩을 통해 View와 ViewModel 자동 동기화
View 와의 의존성 View와 명시적으로 연결되지 않음 View와 독립적, 직접 참조하지 않음
재사용성 재사용성 낮음 재사용성 높음
테스트 용이성 상대적으로 테스트가 복잡 유닛 테스트 용이, UI와 독립적으로 테스트 가능

 

 

추가적으로 , MVVM은 데이터 바인딩을 사용하기 때문에  View와 ViewModel사이의 관계가 1대n으로 형성된다.

즉, 하나의 ViewModel이 여러개의 View와 연결될 수 있다는 말이다.

 

 

 

728x90
반응형
LIST