-
오늘은 필터(Filter) 랑 인터셉터(Interceptor) 알아볼게요백엔드 : 서버공부/Spring 2025. 7. 25. 12:38728x90
들어가며
인터셉터 필터라는 이름을 스프링을 개발하다보면 반드시 만나게된다.
최근 팀프로젝트에서 팀원이 필터와 인터셉터를 통해 응답의 일관성을 보장하는 작업을 진행했는데
옆에서 궁금해서 슬쩍 슬쩍 보다가
이렇게 정리해보게 되었다.
인터셉터와 필터를 정리하며 이런 생각이 들었다.
는 장난이고 진지하게 정리해보겠다.
필터
먼저 필터라는 것을 알아보자.
필터는 J2EE 표준 스펙 기능으로 디스패처 서블릿(Dispatcher Servlet)에 요청이 전달되기 전/후에 url 패턴에 맞는 모든 요청에 대해 부가작업을 처리할 수 있는 기능을 제공한다.
여기서 디스패처 서블릿은 스프링의 가장 앞에 존재하는 프론트 컨트롤러이므로, 필터는 스프링 범위 밖에서 처리가 되는 것이다.
그러니까 필터는 스프링 컨테이너가 아니라 톰캣같은 서블릿 컨테이너에 의해 관리 되는 것이다.
인터셉터
인터셉터는 Spring 프레임워크에서 제공하는 기능으로, 서블릿 필터와는 구별되는 특징을 가지고 있는데, 디스패처 서블릿이 컨트롤러를 실행하기 전후 시점에 요청과 응답 데이터를 조작하거나 검증할 수 있는 기능을 제공한다는점이다.
동작 과정을 살펴보면, 디스패처 서블릿은 핸들러 매핑을 통해 요청을 처리할 적절한 컨트롤러를 탐색한다. 이때 핸들러 매핑은 실행 체인(HandlerExecutionChain)을 반환하는데, 만약 인터셉터가 설정되어 있다면 컨트롤러 실행 전에 등록된 인터셉터들을 순서대로 거치게 된다. 인터셉터가 설정되지 않은 경우에는 곧바로 컨트롤러가 호출된다.
마무리
오늘은 필터, 인터셉터에대해서 진짜 간단하게 개념만 살펴보았다.
스프링 생태계에서 서버 개발을 하려면 꼭 알아야하는 개념인것 같다.
사실 더 설명하려면 각각의 메소드들에 대해서 설명해야하는데 오늘은 개념적인 부분만 다뤄보고 ( 사실 아직 잘 몰라서.. )
다음글에서 더 자세히 알아보도록하겠다! (AOP 도..)
'백엔드 : 서버공부 > Spring' 카테고리의 다른 글
Grafana와 Prometheus로 모니터링 구축하기 (0) 2025.08.04 AOP 이해할 수 있다! (0) 2025.07.28 별거 없습니다. 프록시가 내 메서드를 무시하는 이유에 대해서. (0) 2025.07.24 스레드 세이프에 대해 제가 한번 알려드릴까요? (0) 2025.07.12 제가 한번 스터디룸 동시가입 상황 제어해볼게요 (0) 2024.12.25