
🤔 시작은 작은 의문에서프로젝트에서 API 에러를 통일된 구조로 관리하기 위해 모든 도메인 예외는 ErrorCode 라는 열거형 기반으로 처리하고 있었습니다. 예를 들어 댓글 도메인에서 예외가 발생하면 CommentErrorCode 에 정의된 코드와 메세지를 기반으로 일관된 응답을 내려줍니다.public enum CommentErrorCode implements ErrorCode { COMMENT_NOT_FOUND("댓글을 찾을 수 없습니다.", HttpStatus.NOT_FOUND), INVALID_CONTENT("댓글 내용이 유효하지 않습니다.", HttpStatus.BAD_REQUEST); ...}이 구조는 도메인마다 책임을 분리해서 관리할 수 있다는 점이 유지보수 측면에서 큰 장..

Spring 기반의 백엔드 프로젝트에서 예외 처리는 단순한 오류 대응을 넘어 유지보수성, 디버깅 편의성, 클라이언트와의 명확한 약속을 위해 반드시 체계적으로 설계되어야 합니다. 이번 글에서 도메인별 ErrorCode enum + 도메인별 커스텀 Exception + GlobalExceptionHandler 패턴에 대해 구체적으로 알아보겠습니다.✅ 예외 처리 구조 개요구조 목표도메인별로 에러를 세분화하고 의미 있는 코드를 부여응답 포맷을 통일해 프론트와 명확한 약속 제공예외 메시지를 한 곳에서 관리하여 유지보수 효율 극대화예외 흐름 요약서비스/도메인에서 도메인별 Exception 발생 ↓DomainException 내부에 ErrorCode 포함 (ex: MemberErrorCode, PostError..