- Filter와 Interceptor의 차이점을 말해주세요.2025년 06월 12일 12시 27분 44초에 업로드 된 글입니다.작성자: do_hyuk728x90반응형
Filter
Filter는 요청 및 응답의 전처리와 후처리를 수행하고 서블릿 컨테이너에 의해 실행되는 Java 클래스입니다. 주로 요청 로깅, 인증, 인코딩 설정, CORS 처리, 캐싱, 압축 등의 공통 기능을 구현하는 데 사용됩니다.
특징
- Filter는 서블릿 컨테이너(예: Tomcat) 수준에서 동작합니다. 모든 요청이 서블릿으로 전달되기 전에 Filter를 거칩니다.
- 생명 주기: Filter는 doFilter 메서드를 통해 요청 및 응답을 처리합니다. FilterChain을 통해 다음 필터 또는 최종 서블릿으로 요청을 전달합니다.
- 순서: web.xml이나 @WebFilter 애노테이션을 통해 설정할 수 있으며, 필터의 순서는 설정 파일에서 정의합니다.
Interceptor
Interceptor는 특정 핸들러 메서드 실행 전후에 공통 기능을 구현합니다. 주로 요청 로깅, 인증, 권한 검사, 세션 검사, 성능 모니터링 등을 수행하는 데 사용됩니다.
특징
- Interceptor는 Spring MVC의 핸들러 수준에서 동작합니다. Dispatcher Servlet이 컨트롤러를 호출하기 전에 Interceptor를 거칩니다.
- 생명 주기
- preHandle 메서드: 컨트롤러의 메서드가 호출되기 전에 실행됩니다.
- postHandle 메서드: 컨트롤러의 메서드가 실행된 후, 뷰가 렌더링되기 전에 실행됩니다.
- afterCompletion 메서드: 뷰가 렌더링된 후 실행됩니다.
- 순서: WebMvcConfigurer를 구현한 클래스에서 addInterceptors 메서드를 사용하여 설정합니다. 인터셉터의 순서는 등록 순서에 따릅니다.
(Servlet) Filter vs (Handler) Interceptor
728x90반응형'백엔드' 카테고리의 다른 글
복합키 vs (대칭키 + UNIQUE 제약 조건) 회의록 (0) 2025.06.20 Spring Data JPA에서 새로운 Entity인지 판단하는 방법은 무엇일까요? (0) 2025.06.17 Spring MVC의 실행 흐름에 대해 설명해주세요. (0) 2025.06.04 saveOrUpdate 구현 시 동시성 이슈 (1) 2025.06.02 초당 수천 건의 결제를 처리하는 API 만들기 (0) 2025.05.28 댓글