Knowledge

[Knowledge] MVC , MVP, MVVM 디자인 패턴 개념

Jeong Jeon
반응형

궁금했던것들을 좀 찾아보며 견문을 넓혀야겠다라는 생각이 들었다.

기존 SpringFramework로 개발한것만 생각하면 MVC Model2패턴이 다인가 라는 생각에 검색을 해본적도 있었지만 정리는...ㅎ;

오늘 정리를 좀 해봐야겠다.

1). MVC Model2

  • 정의 : Model + View + Controller 세가지를 합친 용어
    • Model : App에서 사용되는 데이터 + 데이터를 처리하는 로직을 담당
    • View : Client에 보여지는 UI 담당
    • Controller : Client의 요청을 받고 반응 처리 담당
  • 동작 :
    1. 사용자의 Action들은 Controller로 보내진다.
    2. Controller는 사용자의 Action를 확인 => Model을 업데이트
    3. Controller는 Model을 나타내줄 View를 선택
    4. View는 Model을 이용하여 화면을 나타낸다.

 

 

  • 특징
    • 1개의 Controller가 여러개의 View를 담당하는 1:N 구조
  • 장점
    • 쉽고 단순하다
  • 단점 : View와 Model의 의존성이 매우 높다. => App이 커지면 커질수록 복잡함이 느껴질것

2). MVP

  • 정의 : Model + View + Presenter 세가지를 합친 용어
    • Model : App에서 사용되는 데이터 + 데이터를 처리하는 로직을 담당
    • View : Client에 보여지는 UI 담당
    • Presenter : View의 요청 정보로 Model에서 데이터를 가공하여 View로 반응 담당
  • 동작 :
    1. 사용자의 Action들은 View로 보내진다.
    2. View는 데이터를 Presenter에 요청
    3. Presenter는 Model에게 데이터를 요청
    4. Model은 Presenter에서 요청받은 데이터를 응답
    5. Presenter는 View에게 데이터를 응답
    6. View는 Presenter가 응답한 데이터를 이용하여 화면을 나타낸다.

 

 

 

 

 

  • 특징
    • 1개의 Presenter가 1개의 View를 담당하는 1:1 구조
  • 장점
    • Model과 View의 의존성이 사라진다. -> Presenter가 중매를 하기 때문
  • 단점 : View와 Presenter 사이의 의존성이 높다. => App이 복잡해질수록 의존성은 더 강해진다.

2). MVVM

  • 정의 : Model + View + ViewModel 세가지를 합친 용어
    • Model : App에서 사용되는 데이터 + 데이터를 처리하는 로직을 담당
    • View : Client에 보여지는 UI 담당
    • ViewModel : View를 나타내 주기 위한 Model이자 View를 나타내기 위한 데이터 처리를 담당.
  • 동작
    1. 사용자의 Action들은 View로 보내진다.
    2. View에 Action이 들어오면, Command 패턴으로 View Model에 Action을 전달
    3. View Model은 Model에게 데이터를 요청
    4. Model은 View Model에게 요청받은 데이터를 응답
    5. View Model은 응답 받은 데이터를 가공하여 저장
    6. View는 View Model과 Data Binding하여 화면을 나타낸다.

 

 

 

  • 특징 
    • Command Pattern과 Data Binding Pattern 두가지를 사용하여 구현되어있다.
    • 1개의 ViewModel이 N개의 View를 담당하는 1:N 구조
  • 장점 
    • Model과 View의 의존성이 사라진다.
    • View와 ViewModel 사이의 의존성도 없다.
    • 각각 독립적으로 움직이기 때문에 모듈화 개발이 가능 => CommandPattern + Data Binding Pattern 이점
  • 단점 : 설계가 복잡하다.

 


세가지 패턴의 CPU 사용량  및 Ram 사용량 비교

 

반응형