반응형
Spring Filter와 Interceptor
1. Spring Filter:
- 특징:
- Servlet 기반: Spring Filter는 Servlet 기술에서 파생된 기능으로, Servlet Container 레벨에서 동작합니다.
- Request/Response 처리: 클라이언트의 요청(Request)이 서버에 도착하기 전에 처리되는 필터로, 주로 Request와 Response를 수정하거나 검사하는 용도로 사용됩니다.
- Web.xml 또는 Java Config에서 설정: web.xml 파일이나 Java Config에서 설정하며, URL 패턴을 기반으로 동작합니다.
- 장점:
- 최하위 레벨에서 동작: Filter는 Servlet Container 내부에서 동작하므로 모든 요청에 대해 동일한 방식으로 처리할 수 있습니다.
- 단점:
- Spring 컨텍스트 외부: Filter는 Spring 컨텍스트 외부에서 동작하므로 Spring의 빈이나 ApplicationContext에 직접적인 접근이 어려워집니다.
2. Spring Interceptor:
- 특징:
- Spring 컨텍스트 내부: Interceptor는 Spring의 MVC 구조에서 동작하며, Spring 컨텍스트 내부에서 작동합니다.
- Handler 실행 전/후 처리: Controller의 Handler 실행 전/후에 동작하며, 주로 인증, 로깅, 트랜잭션 관리 등의 업무를 수행합니다.
- HandlerInterceptor 인터페이스 구현: HandlerInterceptor 인터페이스를 구현하여 동작하며, preHandle, postHandle, afterCompletion 등의 메서드를 제공합니다.
- 장점:
- Spring 컨텍스트 내부에서 동작: Spring의 빈이나 ApplicationContext에 쉽게 접근할 수 있습니다.
- Handler 단위로 구분 가능: Controller의 특정 Handler에만 적용하고 싶은 경우에 유연하게 설정할 수 있습니다.
- 단점:
- Handler 단위로 동작: Interceptor는 주로 Controller의 Handler 단위로 동작하므로, 모든 요청에 대해 동일한 방식으로 처리하기 어렵습니다.
비교 및 사용 시 고려사항:
- Spring Filter 선택 시:
- 모든 요청에 대해 동일한 로직을 적용하려는 경우.
- Spring 컨텍스트 외부에서의 설정 및 동작이 필요한 경우.
- Spring Interceptor 선택 시:
- Controller의 특정 Handler에만 적용하려는 경우.
- Spring 컨텍스트 내부에서의 설정 및 동작이 필요한 경우.
- Handler 단위로 세밀한 제어가 필요한 경우.
장단점 비교:
- Filter 장점:
- 최하위 레벨에서 동작하여 모든 요청에 대해 일관된 방식으로 처리 가능.
- Filter 단점:
- Spring 컨텍스트 외부에서 동작하므로 Spring 빈이나 ApplicationContext에 직접적인 접근이 어려움.
- Interceptor 장점:
- Spring 컨텍스트 내부에서 동작하여 Spring 빈이나 ApplicationContext에 쉽게 접근 가능.
- Handler 단위로 구분 가능하여 세밀한 제어가 가능.
- Interceptor 단점:
- Handler 단위로 동작하므로 모든 요청에 대해 동일한 방식으로 처리하기 어려움.
반응형
'IT > 개발자 면접' 카테고리의 다른 글
Java Checked Exception과 Unchecked Exception (0) | 2023.12.12 |
---|---|
서비스 개발 요청을 받았을 때 업무 진행 (0) | 2023.12.12 |
Token과 Session (0) | 2023.12.10 |
Spring Data JPA와 Spring Data JDBC 장단점 (0) | 2023.12.09 |
Spring Framework 을 사용하는 이유는 ? (0) | 2023.12.09 |