Filter vs Interceptor

HTTP 요청/응답을 가로채 공통 처리를 수행하는 두 메커니즘으로, Filter는 서블릿 레벨, Interceptor는 Spring MVC 레벨에서 동작합니다.

처리 흐름

클라이언트 요청
    ↓
[ Filter ]       ← 서블릿 컨테이너 (Spring 밖)
    ↓
DispatcherServlet
    ↓
[ Interceptor ]  ← Spring MVC (Spring 안)
    ↓
Controller

비교

항목FilterInterceptor
위치서블릿 컨테이너 (Spring 밖)Spring MVC (Spring 안)
관리 주체TomcatDispatcherServlet
Spring Bean 주입가능 (@Component)가능
요청/응답 변형가능 (바이트 수준)제한적
예외 처리@ControllerAdvice 불가@ControllerAdvice 가능
실행 시점before / afterpre / post / afterCompletion
주요 용도보안, 인코딩, CORS인증·인가, 로깅, 공통 처리

언제 뭘 쓰나

Filter 선택

Interceptor 선택

연관 개념

CSLOG에서 보기