Flutter

MVVM 패턴이란? MVC 패턴과의 차이?

izongg 2023. 12. 31. 16:38
반응형

MVVM 패턴이란?

Model + View + ViewModel 을 말한다.

 

 

Model

데이터를 다루는 부분이다. 데이터를 가져오고 저장하는 역할을 한다.

 

View

사용자 인터페이스를 담당하는 역할을 한다.

사용자에게 화면을 보여주며, 사용자의 여러가지 입력을 처리한다.

 

ViewModel

View와 Model의 중재자 역할을 하며, View에서 발생하는 이벤트를 감지하고, 그에 맞는 로직을 수행한다.

Model의 데이터를 가공하여 View에 제공하기도 한다.

 

MVVM 패턴 장점

- Observable 패턴을 이용하기 때문에 DB를 관찰하고 자동으로 UI를 갱신해줄 수 있다. 즉, Databinding이 가능하다.

- UI 로직과 비즈니스 로직을 분리하기 때문에 유지보수하기 용이하다.

- View 와 ViewModel 간의 의존성이 없기 때문에 모듈화가 가능하며, 유지보수하기 용이하다.

 

MVVM 패턴 단점

- ViewModel 설계가 복잡하며, 학습곡선이 높다.

- 앱이 거대해질수록 메모리 소모가 심하다.

 

MVVM 와 MVC  패턴의 차이

  MVVM MVC
차이 - View 와 ViewModel 간의 의존성이 낮음
- 큰 규모의 프로젝트에 적합
- 사용자의 액션을 View에서 받음
- 단순하고 직관적임
- View와 Model 사이의 의존성이 높음
- 작은 규모의 프로젝트에 적합
- 사용자의 액션을 Controller에서 받음
동작 1. 사용자의 Action들은 View를 통해 들어온다.
2. View에 Action이 들어오면, View Model에 Action을 전달한다.
3. View Model은 Model에게 데이터를 요청한다.
4. Model은 View Model에게 요청받은 데이터를 응답한다.
5. View는 View Model과 Data Binding하여 화면을 나타낸다.
1. Controller에서 사용자의 Action들을 받는다.
2. Controller는 Action을 확인하고, Model을 업데이트한다.
3. Controller는 Model을 표시할 View를 선택한다.
4. View는 Model을 이용해 화면을 나타낸다.

 

 

 

참고자료

https://doqtqu.tistory.com/332

 

[SW디자인패턴] MVC, MVP, MVVM 비교

소프트웨어의 비지니스 로직과 화면을 분리하여 작업한다면 유지보수와 개발의 효율성을 높힐 수 있다. 1. MVC MVC 패턴은 Model + View + Controller를 합친 용어이다. 구조 Model : 어플리케이션에서 사용

doqtqu.tistory.com

https://velog.io/@kyeun95/%EB%94%94%EC%9E%90%EC%9D%B8-%ED%8C%A8%ED%84%B4-MVVM-%ED%8C%A8%ED%84%B4%EC%9D%B4%EB%9E%80

 

[디자인 패턴] MVVM 패턴이란?

개념 :MVVM (Model-View-ViewModel) 패턴은 Model View, View, Model의 약자로 프로그램의 비지니스 로직과, 프레젠테이션 로직을 UI로 명확하게 분리하는 패턴입니다.데이터를 다루는 부분. 비즈니스 로직을

velog.io

https://www.intuz.com/blog/guide-on-mvc-vs-mvvm

반응형