Spring 기초 정리 - Filter vs Interceptor vs AOP

Zyoon·2025년 6월 16일
0

Spring 기초정리

목록 보기
15/18
post-thumbnail

📘Filter vs Interceptor vs AOP 비교


1. 공통 관심사 처리

Spring 기반 웹 애플리케이션을 개발하다 보면 공통 관심사를 처리해야 할 때가 많다.

Filter, Interceptor, AOP 는 ****이런 기능을 처리할 수 있는 대표적인 도구이다.

대표적인 공통 관심사 처리 예시

  • 요청 로깅
  • 인증 처리
  • 응답 가공
  • 예외 핸들링
  • 서비스 실행 시간 측정 등

2. 요청 처리 흐름 속 위치

클라이언트 요청
      ↓
[Filter]          ← Servlet 수준
      ↓
[DispatcherServlet]
      ↓
[Interceptor]     ← Spring MVC 수준
      ↓
@Controller
      ↓
[Service] (→ [AOP]) ← Spring Bean 수준

3. 세 가지 도구의 차이점 요약

Filter

  • DispatcherServlet보다 먼저 실행되고, 요청과 응답을 가장 처음 가로챔
  • 정적 리소스를 포함한 모든 HTTP 요청에 대해 작동
  • Spring 내부 컴포넌트보다 앞단에서 실행되므로, 가장 넓은 범위를 커버합니다.
  • 주로 인증, CORS 설정, 문자 인코딩 처리 같은 공통 작업에 사용됩니다.
  • Filter 구현 예시

Interceptor

  • DispatcherServlet이 컨트롤러를 호출하기 바로 전/후에 실행
  • 오직 Spring MVC 요청만 처리
  • HandlerInterceptor를 구현하여 preHandle, postHandle, afterCompletion 메서드를 사용
  • 주로 로그인 여부 확인, 권한 검사, 요청 로깅 같은 작업에 자주 쓰임
  • Interceptor 정리

AOP

  • 서비스 메서드 실행 전/후, 또는 예외가 발생했을 때 동작
  • 주로 @Service 같은 Spring Bean의 메서드 단위로 적용
  • @Aspect와 함께 @Before, @AfterReturning, @Around 등 어노테이션을 사용해 정의
  • 트랜잭션 관리, 실행 시간 측정, 공통 로깅, 예외 처리와 같은 비즈니스 로직 관련 작업에 활용
  • AOP 정리

4. 요약

도구언제 쓰면 좋은가?
Filter전체 HTTP 요청 처리, 정적 리소스 포함
Interceptor컨트롤러 요청 전후 처리, 인증/인가
AOP서비스 계층 로직에 대한 공통 처리, 트랜잭션/로깅/예외

출처 : https://twofootdog.github.io/Spring-필터(Filter),-인터셉터(Interceptor),-AOP-차이점/

profile
기어 올라가는 백엔드 개발

0개의 댓글