역할
- API 예외 처리 시 HTTP 상태 코드 + 기본 메시지를 함께 관리
ApiException과 연계하여 표준화된 글로벌 에러 응답 제공
1. 핵심 구조
publicenumErrorCode {
// 400 Bad Request
BAD_REQUEST(HttpStatus.BAD_REQUEST,"잘못된 요청입니다."),
VALIDATION_ERROR(HttpStatus.BAD_REQUEST,"입력값을 확인해주세요."),
// 401 Unauthorized
UNAUTHORIZED(HttpStatus.UNAUTHORIZED,"인증이 필요합니다."),
TOKEN_INVALID(HttpStatus.UNAUTHORIZED,"토큰이 유효하지 않습니다."),
// 403 Forbidden
FORBIDDEN(HttpStatus.FORBIDDEN,"접근 권한이 없습니다."),
// 404 Not Found
NOT_FOUND(HttpStatus.NOT_FOUND,"요청한 리소스를 찾을 수 없습니다."),
// 500 Internal Server Error
INTERNAL_ERROR(HttpStatus.INTERNAL_SERVER_ERROR,"서버 오류가 발생했습니다.");
privatefinalHttpStatusstatus;// HTTP 상태 코드
privatefinalStringdefaultMessage;// 기본 사용자 메시지
ErrorCode(HttpStatusstatus,StringdefaultMessage) {
this.status=status;
this.defaultMessage=defaultMessage;
}
publicHttpStatusgetStatus() {
returnstatus;
}
publicStringgetDefaultMessage() {
returndefaultMessage;
}
}
2. 설명
- HTTP 상태 + 메시지를 한 묶음으로 관리
ApiException에서 기본 메시지 또는 커스텀 메시지와 함께 사용
- 글로벌 예외 핸들러(
GlobalExceptionHandler)에서 ResponseEntity 상태 코드로 활용
- 실제 예외 발생 시
ErrorCode만 사용하지 않고 ApiException과 함께 throw
3. 포인트
- enum 형태 → 재사용 가능 + 중앙 집중 관리
- 상태 코드와 메시지 분리 → 프론트 일관성 유지
- 새로운 에러 코드 추가 시 →
ErrorCode에 등록만 하면 글로벌 예외 처리 적용 가능
- 단순 코드+메시지+HTTP 상태 묶음 → 실제 예외 로직은
ApiException에서 처리