반응형

 

 

 

 

 

 

1️⃣ MVC

MVC는 Model + View + Controller를 말한다.

 

 

1-1. 구조

 

  • Model : 어플리케이션에서 사용되는 데이터와 그 데이터를 처리하는 부분
  • View : 사용자에서 보여지는 UI 부분
  • Controller : 사용자의 입력(Action)을 받고 처리하는 부분

 

 

1-2. 동작

  1. 사용자의 Action들은 Controller에 들어오게 된다
  2. Controller가 사용자의 Action를 확인하고, Model을 업데이트한다
  3. Controller가 Model을 나타내줄 View를 선택한다
  4. View가 Model을 이용하여 화면을 나타낸다

 

※ 참고 - MVC에서 View가 업데이트 되는 방법

  • View가 Model을 이용하여 직접 업데이트
  • Model에서 View에게 Notify 하여 업데이트
  • View가 Polling으로 주기적으로 Model의 변경을 감지하여 업데이트

 

 

1-3. 특징

Controller는 여러개의 View를 선택할 수 있는 1:N 구조이다

Controller는 View를 선택할 뿐 직접 업데이트 하지 않는다 (View는 Controller를 알지 못함.)

 

 

 

1-4. 장점

MVC 패턴의 장점은 널리 사용되고 있는 패턴이라는 점에 걸맞게 가장 단순하고, 단순하다 보니 보편적으로 많이 사용되는 디자인패턴이다.

 

 

 

1-5. 단점

View와 Model 사이의 의존성이 높다. View와 Model의 높은 의존성은 어플리케이션이 커질 수록 복잡하지고 유지보수가 어렵게 만들 수 있다.

 

 


 

2️⃣ MVP

MVP는 Model, View, Presenter를 말한다.

Model과 View는 MVC 패턴과 동일하고, Controller 대신 Presenter가 존재한다. 

 

 

2-1. 구조

 

  • Model : 어플리케이션에서 사용되는 데이터와 그 데이터를 처리하는 부분
  • View : 사용자에서 보여지는 UI 부분
  • Presenter : View에서 요청한 정보로 Model을 가공하여 View에 전달해 주는 부분 (=View와 Model을 이어줌)

 

 

2-2. 동작

  1. 사용자의 Action이 View를 통해 들어온다.
  2. View가 데이터를 Presenter에 요청한다
  3. Presenter가 Model에게 데이터를 요청한다
  4. Model이 Presenter에서 요청받은 데이터에 응답한다
  5. Presenter는 View에게 데이터를 응답한다
  6. View는 Presenter가 응답한 데이터를 이용하여 화면을 나타낸다

 

 

2-3. 특징

Presenter와 View는 1:1 관계이며 Presenter는 View와 Model의 인스턴스를 가지고 있어 둘을 연결하는 역할을 한다.

 

 

 

2-4.  장점

MVP 패턴은 MVC 패턴의 단점이었던 View와 Model의 의존성을 해결하였다.

 

 

 

2-5.  단점

어플리케이션이 복잡해 질 수록 View와 Presenter 사이의 의존성이 강해지는 단점이 있다.

 

 


 

3️⃣ MVVM

MVVM는 Model, View, View Model를 말하며, Model과 View은 다른 패턴과 동일하다.

 

 

3-1. 구조

 

  • Model : 어플리케이션에서 사용되는 데이터와 그 데이터를 처리하는 부분
  • View : 사용자에서 보여지는 UI 부분
  • View Model : View를 나타내 주기 위한 Model이자 View를 나타내기 위한 데이터 처리를 하는 부분

 

 

3-2. 동작

  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하여 화면을 나타낸다

 

 

3-3. 특징

MVVM 패턴은 Command 패턴과 Data Binding 두 가지 패턴을 사용하여 구현되었다.

Command 패턴과 Data Binding을 이용하여 View와 View Model 사이의 의존성을 없앴다

View Model과 View는 1:n 관계이다

 

 

 

3-4. 장점

MVVM 패턴은 View와 Model 사이의 의존성이 없으며, Command 패턴과 Data Binding을 사용하여 View와 View Model 사이의 의존성도 없앤 디자인패턴이다. 즉 각각의 부분이 독립적이기 때문에 모듈화 하여 개발할 수 있다.

 

 

 

3-5. 단점

View Model의 설계가 어렵다

 

 

 

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기