[Spring] Spring MVC 패턴

지니·2025년 3월 25일

Spring

목록 보기
4/13
post-thumbnail

1. Spring Web MVC 패턴이란?


Spring Web MVC는 Spring Framework에서 제공하는 기능 중 하나로, MVC 2 패턴을 지원한다. Model, View, Controller 사이의 의존 관계를 DI 컨테이너에서 관리하여 유연한 웹 어플리케이션을 쉽게 구현 및 개발할 수 있다.

Spring Web MVC에서는 Controller, Service, DAO 계층으로 구성된 MVC 패턴을 따른다.

  • 🖥 Controller :
    클라이언트의 요청을 처리하고, 비즈니스 로직을 실행한 뒤 Model 객체를 반환
  • ⚙ Service :
    비즈니스 로직을 수행하는 역할
  • 💾 DAO (Data Access Object) :
    DB와의 상호 작용을 담당

2. Spring MVC 패턴에서 요청 처리 과정


2-1. 요청 처리 과정

MVC 패턴에도 여러 가지 구조가 있다. 그 중 밑의 그림의 과정을 사용하고 있는 것이 Spring MVC 패턴이다. 어떠한 방식으로 처리되는지 한 번 살펴보자!

1. HTTP Request
클라이언트의 요청이 DispatcherServlet에 도착한다.

2. Handler 조회
HandlerMapping을 통해 클라이언트의 요청을 매핑할 적절한 Handler를 찾는다.

3. 핸들러 실행 (handle)
HandlerAdapter를 실행한다.
HandlerAdapterControllerDispatcherServlet 간의 통신을 중개하며, DispatcherServletController를 호출할 때 기능을 제공한다.

4. Handler 호출
Controller의 핸들러 메서드를 호출한다.
Controller는 비즈니스 로직을 실행하고 Model 객체를 반환한다.

5. ModelAndView 반환
HandlerAdapterHandler가 반환하는 정보를 ModelAndView로 변환하여 반환한다.

6. View Resolver 호출
DispatcherServletViewResolver를 통해 어떤 View를 사용할지 결정한다.

7. View 반환
ViewResolver는 뷰의 이름을 기반으로 해당하는 View 객체를 반환한다.

8. View 렌더링 (render(model))
ViewModel을 사용하여 뷰를 렌더링한다.

9. HTTP Response
렌더링된 결과를 클라이언트에게 응답으로 반환한다.


2-2. Spring MVC 구성 요소들의 역할 정리

  • DispatcherServlet : 클라이언트의 요청을 처리하고 HandlerMapping을 사용해 요청을 적절한 Controller에게 매핑한다.
  • HandlerMapping : 요청에 대해 어떤 Controller가 처리할지 결정한다.
  • Controller : 비즈니스 로직을 처리하고 Model 객체를 반환한다.
  • Model : View에서 사용할 데이터를 저장한다.
  • ViewResolver : Controller가 반환한 Model 객체와 템플릿 파일을 사용해 적절한 View를 찾는다.
  • View : Model을 사용해 클라이언트에게 응답을 반환한다.

2-3. Spring MVC를 음식점에 비유하면? 🍜


위에서 봤던 Spring MVC 패턴과 매칭 시켜보면 이런식으로 매핑이 되는 것이다. 각각의 과정을 고객이 주문하면 이것을 주문 받아 전달하는 과정으로 생각하면 더 쉽게 이해 할 수 있을 것이다.

0개의 댓글