전역 예외 처리 모듈 구조
도메인별 ErrorCode는 도메인 패키지 내의 ‘exception’ 패키지 내에 생성합니다.
1. 목표
- API 에러 응답 형식을 일관되게 유지한다.
- 프론트엔드가 에러를 안정적으로 분기할 수 있게 한다(문구 기반 분기 금지).
- 운영 시 로그/모니터링에서 에러를 집계/추적 가능하게 한다.
- 모든 요청에 대해 traceId, timestamp를 포함해 추적성을 확보한다.
2. 핵심 원칙
2.1 status(HTTP)만으로는 부족하다 → code 필드 필요
- httpStatus는 범주(400/404/409/500 등)만 제공한다.
- 동일한 status 안에 다양한 도메인 에러가 섞이므로, 프론트/운영 모두를 위해 안정 식별자 code가 필요하다.
- message는 변경 가능(문구 수정/다국어/UX 개선)하므로, 분기 기준이 되면 안 된다.
2.2 에러 식별자는 응답에 포함하되, “사용자에게 노출”과 분리
- 응답 DTO에 code는 포함한다.
- 화면에 표시할 값은 message이며, code는 프론트 로직 분기 및 운영 식별에 사용한다.
2.3 도메인별 enum 분리 + 공통 인터페이스로 수렴
- 에러 enum을 도메인별로 분리하여 비대해지는 것을 방지한다.
- 전역 핸들러는 공통 인터페이스(ErrorCode)만 인지한다.