본문 바로가기
codeit sprint backend/weekly paper

[6-2] Spring MVC

by boolynn 2026. 2. 27.

클라이언트 요청 처리 흐름을 중심으로 Spring MVC에 대해 학습해보자.

✔️ Spring MVC의 클라이언트 요청 처리 흐름

공통적인 Spring MVC 요청 처리 흐름

  1. DispatcherServlet: 클라이언트의 모든 요청을 받아 중앙에서 제어
  2. Handler Mapping: 받은 요청 어느 컨트롤러(Handler)가 처리할지 결정
  3. Handler Adapter: 선택된 컨트롤러의 메소드를 실행할 수 있도록 호출
  4. Controller: 비즈니스 로직을 수행하고 결과 반환
  5. View Resolver / Message Converter: 컨트롤러의 반환값에 따라 화면(HTML) 혹은 데이터(JSON/XML)를 생성해 전달

 

@Controller와 @RestController

둘의 가장 큰 차이는 반환하는 결과값에 있다.

  @Controller @RestController
주요 목적 전통적인 웹 페이지(HTML) 응답 REST API(JSON) 응답
반환값 View(화면)의 이름
ex. return "home"
HTTP 응답 본문에 담길 데이터(객체 또는 문자열)
ex. return dto
랜더링 처리 View Resolver을 거침 Message Converter을 거침
어노테이션 구성 @Controller @Controller + @ResponseBody

 

✔️ 정리

Spring MVC에서는 클라이언트의 요청을 처리하고, 응답을 반환하기 위해 여러 구성 요소를 사용한다. 이는 중앙에서 DisptacherServlet에 의해 제어된다.

 

반환하는 응답의 형식에 따라 @Controller 혹은 @RestController를 사용한다. 사용자에게 보여줄 웹 페이지를 만들어야 한다면 화면 이름을 반환하는 @Controller를, 프론트엔드와 통신하기 위한 순수 데이터를 주고 받아야 한다면 데이터를 반환하는 @RestController를 사용하는 것이 적절하다.