🧩 MVC란

정의

MVC는 Model, View, Controller로 역할을 분리해 애플리케이션을 구성하는 패턴이다. 관심사를 나누어 유지보수와 확장성을 높이는 것이 목적이다.

  • Model은 처리 결과 데이터와 비즈니스 상태를 담는다.
  • View는 화면에 보여줄 표현을 담당한다.
  • Controller는 요청을 받아 Model과 View 사이를 연결한다.

🧩 Spring MVC란

정의

Spring MVC는 Spring이 제공하는 웹 애플리케이션 프레임워크이다. MVC 패턴을 기반으로 HTTP 요청 처리, 컨트롤러 호출, 응답 생성을 체계화한다.

  • Spring의 웹 계층을 구성하는 핵심 모듈이다.
  • 서블릿 기반 위에서 동작한다.
  • DispatcherServlet을 중심으로 요청 흐름이 흘러간다.

⚙️ Spring MVC 구조

image

DispatcherServlet

  • 요청을 가장 먼저 받아 처리할 Controller를 찾는다.
  • 처리 결과를 View 또는 응답 본문으로 돌려준다.
  • Spring MVC의 진입점이다.

Handler

  • 실제 요청을 처리하는 Controller다.
  • HTTP 요청을 받아 필요한 데이터를 정제하고 Model에 담는다.
  • 경우에 따라 View 이름이나 응답 데이터를 결정한다.

ModelAndView

  • Model 데이터와 View 이름을 함께 담는 객체다.
  • View 기반 응답에서 자주 사용된다.

ViewResolver

  • View 이름을 실제 View 객체로 변환한다.
  • Model 데이터를 View에 반영한다.

⚙️ 요청 처리 흐름

  1. 클라이언트가 HTTP 요청을 보낸다.
  2. DispatcherServlet이 요청을 받는다.
  3. HandlerMapping이 처리할 Handler를 찾는다.
  4. HandlerAdapter가 Handler를 실행한다.
  5. 필요하면 ModelAndView 또는 응답 본문이 만들어진다.
  6. ViewResolver가 View 이름을 실제 View로 변환한다.
  7. 최종 응답이 클라이언트로 반환된다.

⚠️ 주의사항

  • Spring MVC는 단순히 Controller만 의미하지 않는다.
  • 실제 핵심 흐름은 DispatcherServlet과 여러 전략 객체가 함께 만든다.
  • REST API만 다루는 경우에도 Spring MVC의 구조는 그대로 활용된다.

📌 정리

  • MVC는 역할 분리를 위한 기본 설계 패턴이다.
  • Spring MVC는 이 패턴을 웹 요청 처리에 맞게 구현한 프레임워크다.
  • DispatcherServlet이 전체 흐름의 중심이다.

연결문서

태그:

카테고리:

업데이트:

댓글남기기