Backend
[디자인 패턴] MVVM 패턴, Model - View - View Model
미누라니까요
2024. 10. 9. 19:37
728x90
반응형
SMALL
MVVM (Model - View - View Model)
- Model, View, View Model으로 구성
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