분류 전체보기(580)
-
Interception
Spring MVC에서 인터셉터(Interceptor)는 Http request가 컨트롤러(Handler)에 도달하기 전/후, 또는 요청이 완전히 완료된 후에 특정 로직을 실행하는 기능입니다.이를 활용하면 요청 전/후에 공통적으로 적용해야 하는 기능(예: 로깅, 인증, 권한 검사, 성능 모니터링 등)을 손쉽게 구현할 수 있습니다.1. Spring MVC의 인터셉터(HandlerInterceptor) 개념Spring MVC의 모든 HandlerMapping 구현체는 인터셉터(Interceptor)를 지원합니다.인터셉터는 HandlerInterceptor 인터페이스를 구현하여 사용할 수 있습니다.📌 인터셉터의 주요 메서드메서드실행 시점반환 타입설명preHandle(..)컨트롤러 실행 전boolean- tr..
2025.02.28 -
Path Matching
Spring MVC는 요청을 적절한 핸들러(컨트롤러)로 라우팅하기 위해 경로(Path) 매칭을 수행합니다.그러나, 경로 매칭 과정에서 Servlet API의 경로 처리 방식과 URL 디코딩 문제 등으로 인해 다양한 복잡성이 발생할 수 있습니다.이를 해결하기 위해 Spring MVC는 여러 가지 전략을 제공합니다. 1. Servlet API가 제공하는 경로 정보Servlet API는 요청 경로를 여러 부분으로 나누어 제공합니다.경로 유형설명예제 (/myapp/api/users/123)requestURI전체 요청 경로/myapp/api/users/123contextPath애플리케이션 컨텍스트 경로 (기본적으로 web.xml에서 설정)/myappservletPath서블릿 매핑 경로/apipathInfo추가적인..
2025.02.27 -
Processing
DispatcherServlet의 Http request 처리 과정 (Processing in DispatcherServlet)Spring MVC의 DispatcherServlet은 HTTP request을 받아 적절한 컨트롤러와 뷰를 연결하여 응답을 리턴합니다.요청을 처리하는 과정에서 여러 가지 핵심적인 단계가 존재하며, 이를 이해하면 Spring MVC의 동작을 깊이 있게 이해할 수 있습니다.1. DispatcherServlet의 요청 처리 흐름DispatcherServlet이 요청을 처리하는 과정은 다음과 같이 진행됩니다. ✅ 1. WebApplicationContext를 Request에 바인딩DispatcherServlet은 WebApplicationContext(Spring MVC의 컨텍스트)를..
2025.02.27 -
Servlet Config
Spring MVC를 서블릿(Servlet) 환경에서 구성하는 방법은 크게 두 가지입니다.1️⃣ web.xml을 이용한 XML 기반 구성2️⃣ Java 코드로 서블릿 컨테이너를 직접 구성하는 방법Spring에서는 web.xml 없이도 프로그램적으로 서블릿을 구성할 수 있는 기능을 제공합니다. 1. WebApplicationInitializer를 이용한 서블릿 구성WebApplicationInitializer는 Spring MVC에서 제공하는 인터페이스로, 서블릿 3.x 이상을 지원하는 컨테이너에서 자동으로 감지되고 실행됩니다.✅ 예제: DispatcherServlet 등록import org.springframework.web.WebApplicationInitializer;import javax.servl..
2025.02.27 -
Web MVC Config
Spring MVC 애플리케이션에서는 DispatcherServlet이 Http request을 처리할 때 필요한 인프라 빈(Infrastructure Beans)을 선언해야 합니다.이러한 빈들은 특수 빈(Special Bean Types)에서 설명한 HandlerMapping, ViewResolver 등과 같은 컴포넌트입니다.1. DispatcherServlet의 빈 검색 과정DispatcherServlet은 요청을 처리할 때 WebApplicationContext에서 특수 빈을 검색합니다.빈을 찾는 과정은 다음과 같습니다.1️⃣ WebApplicationContext에서 특수 빈 검색HandlerMapping, HandlerAdapter, ViewResolver 등 필요한 빈이 존재하는지 확인2️⃣ ..
2025.02.27 -
Special Bean Types
DispatcherServlet은 특수 빈(Special Beans)을 위임받아 요청을 처리하고 적절한 응답을 렌더링합니다.여기서 "특수 빈"이란 Spring 프레임워크에서 관리되는 객체(Managed Object) 중 특정 프레임워크 계약(Framework Contract)을 구현하는 빈을 의미합니다.이러한 빈은 디폴트로 내장된 계약(Contract)을 따르지만, 속성을 조정하거나 확장 및 교체할 수도 있습니다.📌 DispatcherServlet이 감지하는 특수 빈 목록빈 유형설명HandlerMappingreq을 특정 핸들러(엔드포인트 메서드)에 매핑하며, 전처리(pre-processing) 및 후처리(post-processing)를 위한 인터셉터 목록을 포함합니다. 매핑 방식은 HandlerMapp..
2025.02.27