Filter와 Interceptor의 차이점

김명수·2026년 2월 11일

매일메일

목록 보기
106/127
post-thumbnail

Filter와 Interceptor의 차이점

●Filter

  • Filter는 요청 및 응답의 전처리와 후처리를 수행하고 서블릿 컨테이너에 의해 실행되는 Java 클래스이며, 주로 요청 로깅, 인증, 인코딩 설정, CORS 처리, 캐싱, 압축 등의 공통 기능을 구현하는 데 사용

●특징

  • Filter는 서블릿 컨테이너(예: Tomcat) 수준에서 동작 하며, 모든 요청이 서블리승로 전달되기 전에 Filter를 거침
  • 생명 주기 : Filter는 doFilter 메서드를 통해 요청 및 응답을 처리하며, FilterChain을 통해 다음 필터 또는 최종 서블릿으로 요청을 전달
  • 순서 : web.xml이나 @WebFilter 애노테이션을 통해 설정할 수 있으며, 필터의 순서는 설정 파일에서 정의

●Interceptor

  • Interceptor는 특정 핸들러 메서드 실행 전후에 공통 기능을 구현하며, 주로 요청 로깅, 인증, 권한 검사, 세션 검사, 성능 모니터링 등을 수행하는 데 사용

●특징

  • Interceptor는 Spring MVC의 핸들러 수준에서 동작하며, Dispatcher Servlet이 컨트롤러를 호출하기 전에 Interceptor를 거침
  • 생명주기
    1.preHandle 메서드 : 컨트롤러의 메서드가 호출되기 전에 실행
    2.postHandle 메서드 : 컨트롤러의 메서드가 실행된 후, 뷰가 렌더링되기 전에 실행
    3.afterCompletion 메서드 : 뷰가 렌더링된 후 실행
  • 순서 : WebMvcConfigurer를 구현한 클래스에서 addInterceptors 메서드를 사용하여 설정하며, 인터셉터의 순서는 등록 순서에 따름

profile
신입개발자

0개의 댓글