자바 웹 개발 중 공통적으로 처리 해야하는 부분이 생긴다.
이 때 각 페이지에서 같은 처리를 지속적으로 해주는 소모 행위를 줄여줄 수 있는 요소가
Filter, Interceptor, AOP 의 개념이다.
1. Filter(필터):
- Servlet에서 요청과 응답을 가로채는 역할
- 주로 웹 애플리케이션의 보안, 인증, 로깅 등과 같은 전반적인 관심사를 처리하는 데 사용
- 일반적으로 Servlet API에서 제공하는 javax.servlet.Filter 인터페이스를 구현하여 사용
2. Interceptor(인터셉터):
- Spring MVC와 같은 프레임워크에서 제공하는 기능 중 하나로, 컨트롤러의 처리 전/후에 특정 로직을 추가하고자 할 때 사용
- 주로 로깅, 트랜잭션 관리, 권한 검사 등에 활용
- Spring MVC에서는 HandlerInterceptor 인터페이스를 구현하여 사용
3. AOP(관점 지향 프로그래밍):
- 관심사를 분리하기 위한 프로그래밍 패러다임 중 하나로, 메소드 실행이나 객체 생성 등과 같은 런타임에 발생하는 특정 시점에 관심 있는 기능을 삽입하는 것을 의미
- 주로 로깅, 트랜잭션 관리, 보안 등의 관심사를 분리하여 코드 중복을 줄이고 모듈성을 향상시키는 데 사용
- Spring 프레임워크에서는 AOP를 구현하기 위해 AspectJ와 같은 라이브러리를 사용하거나, Spring AOP 모듈을 통해 구현 가능
Filter, Interceptor, AOP는 모두 애플리케이션의 다양한 부분에 관심사를 적용하고 중복을 줄이며, 유연성을 높이는 데 사용된다.
'Java > Spring' 카테고리의 다른 글
@EntityListeners 사용해서 데이터의 저장 시간 넣어주기 (0) | 2024.02.18 |
---|---|
테스트 방법 이모저모 (0) | 2024.02.16 |
유틸리티 클래스란? (feat. @UtilityClass) (0) | 2024.02.15 |
Interceptor에 대한 이모저모 (0) | 2024.02.15 |
Filter에 대한 이모저모 (0) | 2024.02.15 |