-
Notifications
You must be signed in to change notification settings - Fork 2
공통 에러 응답 및 ErrorCode 가이드
이소은 edited this page Jan 29, 2026
·
2 revisions
본 프로젝트는 일관된 에러 응답을 위해 ErrorCode 열거형(Enum)과 BusinessException을 사용합니다. 클라이언트는 에러 발생 시 지정된 HTTP 상태 코드와 메시지를 통해 오류 상황을 인지합니다.
1. 에러 처리 구조 에러는 다음과 같은 흐름으로 처리됩니다.
- 발생: 비즈니스 로직에서 조건 미충족 시 BusinessException 발생
- 캡처: GlobalExceptionHandler가 발생한 예외를 가로챔
- 응답: ErrorCode에 정의된 HTTP 상태 코드와 메시지로 클라이언트에 응답
2. ErrorCode 정의 (참조)
- 위치:
DGU_AI_LAB.admin_be.error.ErrorCode - 구성 요소:
HttpStatus(상태 코드),String(사용자 메시지)
@Getter
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
public enum ErrorCode {
// 400 Bad Request
INVALID_INPUT_VALUE(HttpStatus.BAD_REQUEST, "입력값이 올바르지 않습니다."),
// 401 Unauthorized
EXPIRED_ACCESS_TOKEN(HttpStatus.UNAUTHORIZED, "액세스 토큰이 만료되었습니다."),
// 404 Not Found
RESOURCE_NOT_FOUND(HttpStatus.NOT_FOUND, "해당 리소스를 찾을 수 없습니다."),
// 500 Internal Server Error
INTERNAL_SERVER_ERROR(HttpStatus.INTERNAL_SERVER_ERROR, "서버 내부 오류입니다.");
private final HttpStatus httpStatus;
private final String message;
}3. 사용 가이드
신규 에러 코드 추가 시
- ErrorCode enum에 에러 상황을 명확히 나타내는 상수를 추가합니다.
- 유사한 상태 코드(예: 400번대)끼리 그룹화하여 작성합니다.
- 메시지는 프론트엔드에 바로 보여줄 수 있도록 명확한 한글로 작성합니다.
비즈니스 로직에서 사용 시
- 객체가 존재하지 않거나 권한이 없는 등 예외 상황에서 다음과 같이 사용합니다.
// 예: 리소스를 찾을 수 없는 경우
if (pod == null) {
throw new BusinessException(ErrorCode.RESOURCE_NOT_FOUND);
}- 2026 Backend: @uugaemi (yukyum06@gmail.com), @dongmin0204 (nm2205@dgu.ac.kr)
- 2025 Backend Lead: @saokiritoni (leesoeun2746@naver.com)
- Repository: DGU-AI-LAB/admin-be