Spring Web MVC — 서블릿 기반 웹 프레임워크
Spring Web MVC — 서블릿 기반 웹 프레임워크
웹 애플리케이션을 만들 때 가장 먼저 떠올리는 Spring 기술이 바로 Spring MVC예요. Spring Web MVC는 서블릿 API 위에 지어진 원조 웹 프레임워크로, Spring Framework가 처음 나온 시절부터 포함되어 있었어요. 공식 이름은 소스 모듈(spring-webmvc)에서 왔지만, 보통은 그냥 "Spring MVC"라고 불러요.
출처: Spring Web MVC
Spring Web MVC와 나란히, Spring Framework 5.0에서 도입된 반응형(reactive) 스택 웹 프레임워크가 하나 더 있어요. 이름은 소스 모듈(spring-webflux)에서 따온 Spring WebFlux예요. 이 장은 Spring Web MVC를 다루고, 반응형 스택이 필요하면 Web on Reactive Stack 문서를 보면 돼요.
+------------------+ +------------------+ | Spring Web MVC | | Spring WebFlux | | (서블릿 스택) | | (반응형 스택) | | DispatcherServlet | | WebFlux | +------------------+ +------------------+
Servlet 컨테이너·Jakarta EE 버전 범위와의 호환성에 대한 기본 정보는 Spring Framework Wiki에서 확인할 수 있어요.
Spring MVC의 가장 큰 특징은 요청을 처리하는 중심 흐름이 명확하다는 거예요. DispatcherServlet이 모든 요청의 진입점이 되고, 요청을 컨트롤러에 전달해 처리한 뒤 응답을 만들어 내요. 이 구조 덕분에 서블릿 스택 위에서 익숙한 뷰-컨트롤러 사고방식을 그대로 쓸 수 있어요.
만약 비동기·논블로킹 처리가 핵심 요구라면 WebFlux를, 전통적인 서블릿 기반의 검증된 방식이 필요하다면 Spring MVC를 고르면 돼요. 둘 다 같은 Spring 생태계 안에 있으니 필요한 쪽을 골라 쓰면 돼요.