MVVM 패턴
MVC의 C에 해당하는 컨트롤러가 뷰모델(view model)로 바뀐 패턴
뷰모델은 뷰를 더 추상화한 계층이며, MVVM 패턴은 MVC 패턴과는 다르게 커맨드와 데이터 바인딩을 가지는 것이 특징
뷰와 뷰모델 사이의 양방향 데이터 바인딩을 지원
UI를 별도의 코드 수정 없이 재사용 가능
단위테스팅 쉬움
MVVM 패턴의 예: 뷰
MVVM 패턴을 가진 대표적인 프레임워크로는 뷰(Vue.js)
반응형이 특징인 프런트엔드 프레임워크
watch와 computed 등으로 쉽게 반응형 적인 값들을 구축할 수 있음
함수를 사용하지 않고 값 대입만으로 변수가 변경됨
양방향 바인딩, html을 토대로 컴포넌트 구축 가능
재사용 가능한 컴포넌트 기반으로 UI 구축 가능
커맨드
여러 가지 요소에 대한 처리를 하나의 액션으로 처리할 수 있게 하는 기법
데이터 바인딩
화면에 보이는 데이터와 웹 브라우저의 메모리 데이터를 일치시키는 기법으로, 뷰모델을 변경하면 뷰가 변경
동작
- 사용자의 Action들은 View를 통해 들어옴
- View에 Action이 들어오면, Command 패턴으로 View Model에 Action전달
- View Model은 Model에게 데이터 요청
- Model은 View Model에게 요청받은 데이터를 응답
- View Model은 응답 받은 데이터를 가공하여 저장
- View는 View Model과 Data Binding하여 화면을 나타냄
특징
Command 패턴과 Data Binding 두가지 패턴을 사용하여 구현됨
그리하여 View와 View Model 사이의 의존성 없앰
View Model과 View는 1:N 관계
장점
MVVM 패턴은 View와 Model 사이의 의존성이 없음
Command 패턴과 Data Binding을 사용하여 View와 View Model 사이의 의존성 또한 없앤 디자인패턴
각각의 부분은 독립적이기 때문에 모듈화 하여 개발 가능
단점
MVVM 패턴의 단점은 View Model의 설계가 쉽지 않다는 점
출처: https://beomy.tistory.com/43 [beomy:티스토리]
'Computer Science' 카테고리의 다른 글
| 프로그래밍 패러다임 - 패러다임의 혼합 (0) | 2025.04.28 |
|---|---|
| 프로그래밍 패러다임 - 절차형 프로그래밍 (0) | 2025.04.28 |
| 디자인 패턴 - MVP 패턴 (0) | 2025.04.24 |
| 디자인 패턴 - MVC 패턴 (0) | 2025.04.24 |
| 디자인 패턴 - 노출모듈 패턴 (1) | 2025.04.23 |