디자인 패턴 개발지식 - MVC, MVP, MVVM

개미는뚠뚠·2023년 9월 16일
1

개발지식

목록 보기
6/9
post-thumbnail

나는 현재까지 개발자를 하고 있지만 MVC, MVP, MVVM와 같은 기본적인 디자인 패턴에 대해서도 제대로 알지 못했다. 사실 이번 주는 조금 바쁘기도 해서 간단하게 해당 디자인 패턴이라도 공부하려고 정리한다.
성의가 조금 없게 느껴지겠지만 이번 주만 쉬어가는 느낌으로...😥


디자인 패턴

MVC, MVP, MVVM은 소프트웨어에서 자주 사용되는 인기있는 디자인 패턴들로, 이러한 디자인 패턴은 각각의 책임을 분리해주어 결합도를 낮추고, 확장, 테스트, 유지 보수에 용이하다는 장점이 있다.

디자인 패턴의 종류 첫번째(MVC)

Model - View - Controller

MVC 라고 하는 디자인 패턴은 하나의 애플리케이션을 Model, View, Controller로 이루어진 3개의 측면으로 분리하여 개발하는 디자인 패턴이다.

MVC의 구조

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

MVC의 동작방식
1. 클라이언트의 요청이 Controller에 들어옴.
2. Controller는 요청에 맞게 Model을 업데이트.
3. Controller에서 업데이트된 Model을 나타내줄 View를 선택.
4. View는 업데이트된 Model을 사용자에게 보여주기 위해 화면상 데이터를 업데이트 한다.

MVC의 특징

  • Controller는 여러개의 View를 선택할 수 있는 1:n 구조를 가진다.
  • Controller는 View를 선택할 뿐 직접 업데이트 하지 않는다. (View는 Controller를 알지 못함.)

디자인 패턴의 종류 두번째(MVP)

Model - View - Presenter

MVP 이라고 하는 디자인 패턴은 Model과 View는 MVC 패턴과 동일하고, 특이점으로는 Controller 대신 Presenter가 존재한다는 특징이 있다. 기존 Controller의 역할을 Presenter 대신 한다고 생각하면 편할 거 같다.

MVP의 구조

  • Model : 어플리케이션에서 사용되는 데이터와 그 데이터를 처리하는 부분.
  • View : 사용자에서 보여지는 UI 부분.
  • Presenter : View에서 요청한 정보로 Model을 가공하여 View에 전달해 주는 부분으로 View와 Model을 붙여주는 연결고리 역할을 한다.

MVP의 동작방식
1. 클라이언트의 요청은 View를 통해 받는다.
2. View는 데이터를 Presenter에 요청한다.
3. Presenter는 Model에게 데이터를 요청한다.
4. Model은 Presenter에게 요청받은 데이터를 응답한다.
5. Presenter가 데이터를 가공하고 다시 View에게 응답한다.
6. View는 Presenter로 부터 데이터를 응답받고 UI 데이터를 갱신한다.

MVP의 특징

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

디자인 패턴의 종류 세번째(MVVM)

Model + View + View Model

MVVM 패턴은 양방향 데이터 바인딩을 지원하며 이에 따라 ViewModel 안에 있는 데이터의 변화를 View에 전파한다. 일반적으로 옵저버 패턴을 활용하여 View_Model의 변경사항을 Model에게 알려준다. 또한 여기서 말하는 Model과 View은 다른 패턴과 동일하다.

MVVM의 구조

  • Model : 어플리케이션에서 사용되는 데이터와 그 데이터를 처리하는 부분.
  • View : 사용자에서 보여지는 UI 부분.
  • View Model : View를 표현하기 위해 만든 View를 위한 Model으로, View를 나타내 주기 위한 Model이자 View를 나타내기 위한 데이터 처리를 하는 부분이다.

MVVM의 동작방식
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과 데이터 바인딩을 통해 화면을 나타낸다.

MVVM의 특징

  • MVVM 패턴은 Command 패턴과 Data Binding 두 가지 패턴을 사용하여 구현되었다.
  • Command 패턴과 Data Binding을 이용하여 View와 View Model 사이의 의존성을 제거함.
  • View Model과 View는 1:n 관계를 가진다.

솔직히 말하면 요새 바쁘기도 했고, 오늘 포스팅은 귀찮아서 급하게 선정한 주제였다. 그치만 글을 정리하면서 디자인 패턴에 대한 개념이 1도 없던 내가 나름 공부를 하게 되었고, 의미있던 시간이였다. 그래도 담주에는 이렇게 성의 없게 정리한 글 대신 알찬 내용을 포스팅 해보겠다.

0개의 댓글