WebFilter는 WebFlux에서 제공하는 인터페이스로, 모든 HTTP 요청/응답 흐름을 비동기적으로 가로채는 필터입니다.ServerWebExchange 객체를 통해 요청(Request)과 응답(Response) 모두 접근 가능.| 항목 | WebFilter | AOP (@Around 등) |
|---|---|---|
| 대상 | 모든 HTTP 요청 (컨트롤러 포함) | 특정 메서드 또는 빈 대상 |
| 시점 | HTTP 요청 진입 시점 | 메서드 실행 전후 |
| 주 용도 | 인증/인가, CORS, 로깅, 헤더 조작, 시간 동기화 등 | 트랜잭션, 비즈니스 로직 단위의 공통 처리 |
| WebFlux 친화성 | ✅ 완전 지원 (비동기 필터) | ⚠️ 기본 AOP는 블로킹 방식으로 주의 필요 |
| 동작 범위 | 컨트롤러 뿐만 아니라 정적 리소스, 예외, 라우터 함수 포함 전체 요청 | 메서드 단위에 국한됨 |
요약
- HTTP 요청 흐름을 제어하고 싶다면 →
WebFilter- 특정 Bean/메서드의 로직을 가로채고 싶다면 →
AOP
Spring WebFlux 환경에서는 WebFilter가 AOP보다 HTTP 중심의 흐름 제어에 적합합니다.
비즈니스 로직에 가까운 공통 처리는 AOP로,
요청 레벨의 전역 처리(로깅, 인증, 헤더 조작 등)는 WebFilter로 분리하면 구조가 깔끔해집니다.
📌 참고: WebFilter는
RouterFunction기반의 함수형 라우팅에도 동일하게 적용됩니다.