[Spring] 필터(Filter)와 인터셉터(Interceptor)

Hayden·2023년 7월 26일

필터(Filter)

필터(Filter)는 J2EE 표준 스펙 기능으로 디스패처 서블릿(Dispatcher Servlet)에 요청이 전달되기 전후에 URL 패턴에 맞는 모든 요청에 대해 부가작업을 처리할 수 있는 기능을 제공한다.

스프링 컨테이너가 아닌 톰캣같은 웹 컨테이너(서블릿 컨테이너)에 의해 관리가 되고, 디스패처 서블릿 전후에 처리하는 것이다.

인터셉터(Interceptor)

인터셉터(Interceptor)는 J2EE 표준 스펙인 필터와 다르게 Spring이 제공하는 기술로, 디스패처 서블릿(Dispatcher Servlet)이 컨트롤러를 호출하기 전후에 요청과 응답을 참조하거나 가공할 수 있는 기능을 제공한다.

필터와 인터셉터의 차이점

대상필터(Filter)인터셉터(Interceptor)
관리되는 컨테이너서블릿 컨테이너스프링 컨테이너
스프링의 예외처리 여부XO
Request/Response 객체 조작 가능 여부OX
용도1. 공통된 보안 및 인증/인가 관련 작업
2. 모든 요청에 대한 로깅 또는 감사
3. 이미지/데이터 압축 및 문자열 인코딩
4. Spring과 분리되어야 하는 기능
1. 세부적인 보안 및 인증/인가 공통 작업
2. API 호출에 대한 로깅 또는 감사
3. Controller로 넘겨주는 정보(데이터)의 가공
profile
백엔드 공부

0개의 댓글