728x90
Interceptor
, AOP
, Filter
는 모두 Java 기반 웹 및 엔터프라이즈 애플리케이션에서 사용되는 기술임.
요청/응답 처리나 메서드 실행을 가로채는 방식으로 횡단 관심사를 처리함.
각각의 기술의 목적, 특징 및 실행 영역이 다름.
Interceptor vs AOP vs Filter
Interceptor
- 목적
특정 요청이나 메서드 호출을 가로채어 전처리 및 후처리 로직을 수행 - 특징
- Spring MVC 에서는 Controller 호출 전후로 요청을 가로채는
HandlerInterceptor
를 제공함. - Java EE/EJB 에서는 비즈니스 메서드 호출 전후로 동작하는 EJB Interceptor 를 제공함.
- Hibernate 에서는 엔티티 변경 전후로 동작하는
Interceptor
가 있음.
- Spring MVC 에서는 Controller 호출 전후로 요청을 가로채는
- 영역 및 단위
- Spring MVC : HTTP 요청/응답 처리 영역
- Java EE/EJB : 비즈니스 메서드 실행 영역
- Hibernate : 엔티티 변경 영역
AOP
- 목적
메서드 호출 전후 및 예외 발생 시 등 다양한 시점에서 횡단 관심사를 처리할 수 있는 패러다임 제공 - 특징
Aspect
,Advice
,Pointcut
,JoinPoint
등의 개념을 통해 구현함.- Spring AOP 와 AspectJ 프레임워크에서 주로 사용됨.
- 영역 및 단위
- 메서드 호출 및 클래스/메서드/ 필드 조합 등의 세밀한 단위에서 실행
- 주로 비즈니스 로직 전후의 횡단 관심사 처리
Filter
- 목적
HTTP 요청/응답 을 가로채어 전처리 및 후처리 로직을 수행함. - 특징
- Servlet Container 수준에서 동작하며 모든 HTTP 요청 및 응답에 대해 전역적으로 작동함.
javax.servlet.Filter
인터페이스를 구현하여 사용함.
- 영역 및 단위
- Servlet Container 수준에서 HTTP 요청/응답 단위로 동작
특징 | Interceptor | AOP | Filter |
---|---|---|---|
목적 | 요청/응답 또는 메서드 호출 전후 처리 | 횡단 관심사 처리 | HTTP 요청/응답 전후 처리 |
사용 계층 | Spring MVC, Java EE, Hibernate | Spring AOP, AspectJ | 서블릿 컨테이너 |
단위 | 요청/응답, 메서드 호출 단위 | 메서드 호출 단위 | HTTP 요청/응답 단위 |
구현 | 인터페이스 및 애너테이션 | 애너테이션 및 POJO 클래스 | Filter 인터페이스 구현 |
적용 대상 | 컨트롤러, 비즈니스 메서드, 엔티티 | 비즈니스 메서드, 클래스 | HTTP 요청 및 응답 |
실행 시점 | 요청 전후, 메서드 호출 전후 | 메서드 호출 전후, 예외 처리 시 | HTTP 요청 전후 |
- Interceptor: 컨트롤러나 메서드 호출을 가로채어 전처리 및 후처리 로직을 수행한다.
- AOP: 메서드 호출, 예외 발생 등 다양한 시점에서 횡단 관심사를 처리하는 프로그래밍 패러다임.
- Filter: 서블릿 컨테이너에서 모든 HTTP 요청/응답을 가로채어 전처리 및 후처리 로직을 수행한다.
728x90
'99클럽 TIL' 카테고리의 다른 글
99클럽 코테 스터디 1일차 TIL JAVA 17 (0) | 2024.05.20 |
---|---|
32일 차 TIL JAVA 11 (0) | 2024.05.19 |
30일 차 TIL Spring Filter (0) | 2024.05.17 |
29일 차 TIL Spring Interceptor (0) | 2024.05.16 |
28일 차 TIL Spring Controller로 들어오는 입력값에 대한 Validation 방법 (0) | 2024.05.15 |
Comment