← 질문 목록
#132깊이 0
요청 공통 처리는 어느 지점에 두는가?
원시 요청과 응답 전체에 적용할 일은 필터에 둔다. 선택된 컨트롤러 정보가 필요한 일은 인터셉터에 둔다. 비즈니스 규칙은 서비스에 둔다.
| 기준 | 필터 | 인터셉터 |
|---|---|---|
| 경계 | 서블릿 체인 | MVC 내부 |
| 문맥 | 요청·응답 | 핸들러·모델 |
| 용도 | 보안·인코딩 | 로깅·검사 |
필터는 DispatcherServlet 전후를 감싸 정적 자원과 오류 디스패치에도 관여할 수 있다. 인터셉터는 preHandle이 참을 낼 때만 뒤가 이어진다. 거짓을 내면 거기서 끊기고 postHandle도 afterCompletion도 안 돈다.
필터에서 난 예외는 보통 ControllerAdvice 범위 밖이다. 필터 체인에서 응답으로 바꾸거나 서블릿 오류 처리로 넘겨야 한다.
실행 횟수와 순서도 설계 대상이다. 비동기·오류 디스패치에서는 필터가 다시 불릴 수 있어 OncePerRequestFilter 정책을 확인해야 한다.
추천 꼬리질문
관련 질문
- 예외를 어디서 HTTP 응답으로 바꾸는가?프레임워크요청 처리 과정 중 공통 로직을 처리하는 지점과 예외를 응답으로 변환하는 공통 처리 지점은 모두 인터셉터나 필터와 같은 프레임워크의 공통 처리 메커니즘을 다룬다.
- 여러 서비스를 거친 요청은 어떻게 따라가는가?아키텍처 · 분산시스템요청의 흐름을 추적하고 공통 처리하는 지점(인터셉터, 필터 등)은 요청 추적 ID 부여와 밀접한 관련이 있다.
- 클라이언트 경계는 어디에 두는가?프론트엔드클라이언트와 서버 사이의 경계 설정 및 요청 처리 지점 결정이라는 아키텍처적 설계 개념을 공유한다.
- 공유 상태는 어느 컴포넌트에 두는가?프론트엔드
- 요청이 한꺼번에 몰릴 때 어떻게 막는가?인프라 · 보안