custom filter
예외 필터 응답 변환 흐름
@Catch()로 잡을 예외 범위를 정하고 catch()에서 요청 문맥과 예외를 조합해 응답 구조를 만든다.
필터 안의 일: 잡기 → 해석 → 응답 작성로그와 사용자 메시지를 같은 지점에서 분리한다.
커스텀 예외 필터 내부 단계
1@Catch
처리할 예외 타입을 선언한다.
2ArgumentsHost
HTTP 요청과 응답 객체를 꺼낸다.
3Status
예외 타입에 맞는 상태 코드를 계산한다.
4Body
클라이언트가 이해할 JSON 필드를 만든다.
5Log
서버 추적용 상세 정보를 남긴다.
응답 본문으로 남길 값
| 필드 | 의미 | 주의점 |
|---|---|---|
| statusCode | HTTP 상태 코드 | 예외 타입과 맞아야 한다. |
| message | 사용자가 볼 오류 설명 | 내부 스택을 노출하지 않는다. |
| path | 요청 경로 | 디버깅과 고객 문의 연결에 유용하다. |
| timestamp | 발생 시각 | 로그 검색 기준이 된다. |