Interceptor, Filter, AOP 차이점

KangHo Lee's avatar
Nov 28, 2024
Interceptor, Filter, AOP 차이점

1. 인터셉터 (Interceptor)

인터셉터는 주로 Spring MVC에서 사용되는 개념으로, 컨트롤러에 도달하기 전과 후에 요청을 가로채서 처리할 수 있게 합니다. 인터셉터는 세밀한 요청 처리와 응답 가공을 위해 사용됩니다.
  • 주요 목적: 요청 전처리 및 후처리.
  • 작동 위치: DispatcherServlet과 컨트롤러 사이.
  • 구현 방법: HandlerInterceptor 인터페이스를 구현하여 사용.
  • 사용 사례: 인증 및 권한 부여, 로깅, 요청 데이터 가공 등.

2. 필터 (Filter)

필터는 서블릿 기술의 일부로, 요청과 응답을 필터링하거나 수정하는 데 사용됩니다. 필터는 주로 요청 초기 단계에서 작동하여 전역적인 요청 처리 작업을 수행합니다.
  • 주요 목적: 요청 및 응답 필터링.
  • 작동 위치: DispatcherServlet 앞.
  • 구현 방법: Filter 인터페이스를 구현하여 사용.
  • 사용 사례: 인코딩 설정, 보안 검증, 로깅, 응답 압축 등.

3. AOP (Aspect-Oriented Programming)

AOP(Aspect-Oriented Programming)는 횡단 관심사(Cross-Cutting Concerns)를 모듈화하여 코드에 주입하는 프로그래밍 패러다임입니다. AOP를 통해 로깅, 트랜잭션 관리, 보안 등을 중앙에서 관리할 수 있습니다.
  • 주요 목적: 횡단 관심사의 모듈화.
    • 관점에 따라 행위(Behavior)를 변화시키고 싶을 때 사용.
  • 작동 위치: 특정 지점(Pointcut)에서 동작.
    • 메서드, 클래스, 예외 발생 등 다양한 지점을 설정 가능
  • 구현 방법: Spring AOP 또는 AspectJ를 사용.
  • 사용 사례: 로깅, 트랜잭션 관리, 보안 체크 등.
 
Share article

devleekangho