본문 바로가기
Spring

[Spring] MVC 패턴

by 당코 2023. 1. 4.

MVC 패턴이란

MVC는 Model, View, Controller의 약자로 애플리케이션을 개발할 때 구성요소를 3가지의 역할로 구분한 것을 말한다.

 

MVC 패턴의 탄생 배경

MVC 패턴 이전에는 비즈니스 로직과 뷰 로직을 같이 두는 방식으로 개발을 하였다.

하지만 다음과 같이 개발할 경우 여러 문제점이 있었다.

너무 많은 역할

하나의 서블릿이나 JSP만으로 비즈니스 로직과 뷰 로직을 모두 처리하게 된다면, 너무 많은 역할을 하게 되고 유지보수도 어려워진다.

변경의 라이프 사이클

보통 비즈니스 로직과 뷰 로직의 수정은 각각 다르게 발생할 경우가 많기 때문에 유지보수하기가 어려워진다.

기능 특화

JSP 같은 뷰 템플릿은 화면을 렌더링 하는데 최적화되어 있기 때문에 뷰만 관리하는 것이 효과적이다.

따라서 MVC 패턴을 적용하여 개발을 할 경우 이와 같은 문제점들을 해결할 수 있다.


Model

Model은 애플리케이션의 데이터를 의미한다.

일반적으로 View가 필요한 데이터를 모두 모델에 담아서 전달해 준다.

  • 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다.
  • 뷰나 컨트롤러에 대해서 어떤 정보도 알지 말아야 한다.
  • 변경이 일어나면, 변경 통지에 대한 처리방법을 구현해야만 한다.
 

View

View는 사용자에게 보여주는 화면을 의미한다.

클라이언트와 상호작용을 하여 컨트롤러로부터 받은 모델을 가지고 화면을 출력한다.

  • 모델이 가지고 있는 정보를 따로 저장해서는 안된다.
  • 모델이나 컨트롤러와 같이 다른 구성요소들을 몰라야 된다.
  • 변경이 일어나면 변경통지에 대한 처리방법을 구현해야만 한다.

 

Controller

컨트롤러는  클라이언트의 입력에 대한 응답으로 모델, 뷰를 업데이트하는 로직을 의미한다.

HTTP 요청을 받아서 파라미터를 검증하고, 비즈니스 로직을 실행한다.

그리고 View에 전달할 결과 데이터를 조회해서 Model에 담는다.

  • 모델이나 뷰에 대해서 알고 있어야 한다.
  • 모델이나 뷰의 변경을 모니터링해야 한다.

 

MVC 패턴 과정

  1. 클라이언트가  Controller를 호출한다.
  2. Controller가 요청에 대한 검증을 하고 서비스, 리포지토리의 비즈니스 로직을 실행한다.
  3. Controller가 Model에 비즈니스 로직의 결과 데이터를 담는다.
  4. Controller가 View에 Model을 넘긴다.
  5. View가 Model에서 데이터를 꺼내서 화면을 렌더링 한다.
  6. 클라이언트에게 화면을 출력한다.

 

 

출처 : https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard