✅ 완료된 작업
1️⃣ API 응답 통일 구조 구축
- BaseErrorCode 인터페이스: getStatus(), getCode(), getMessage() 메서드 정의
- BaseSuccessCode 인터페이스: getStatus(), getCode(), getMessage() 메서드 정의
- ApiResponse 클래스: 통일된 JSON 응답 구조(성공/실패, 코드, 메시지, 결과값)와 정적 팩토리 메서드 onSuccess()/onFailure() 구현
2️⃣ 성공 응답 코드 Enum 제작
- GeneralSuccessCode: OK, CREATED, ACCEPTED, NO_CONTENT
- 도메인별 SuccessCode Enum(ReviewSuccessCode, MemberSuccessCode, MissionSuccessCode, StoreSuccessCode)
3️⃣ 에러 응답 코드 Enum 완성
- GeneralErrorCode: BAD_REQUEST, UNAUTHORIZED, FORBIDDEN, NOT_FOUND, INTERNAL_SERVER_ERROR
4️⃣ ApiResponse 메서드 구현
- onSuccess(T result), onSuccess(BaseSuccessCode code, T result), of(BaseSuccessCode code, T result), onSuccess(), onFailure(BaseErrorCode code, T result), onFailure(BaseErrorCode code)
5️⃣ 예외 처리 구조 구축
- GeneralException(RuntimeException 상속, BaseErrorCode 포함)
- TestException(GeneralException 상속 도메인 예시)
6️⃣ 기존 API 응답 통일 적용
- TestController (/temp): 테스트 및 예외 테스트 API
- ReviewController (/api/reviews): 내가 작성한 리뷰 조회 API - ResponseEntity → ApiResponse로 변경, 코드 Enum 적용
7️⃣ 서비스 레이어 구조 정리
- TestCommandServiceImpl 구조 정비
- TestQueryService 의존성 주입 개선
📋 통일된 API 응답 예시
✅ 성공 응답
{
"isSuccess": true,
"code": "REVIEW200_2",
"message": "리뷰 목록 조회에 성공했습니다.",
"result": { /* 실제 데이터 */ }
}
❌ 실패 응답
{
"isSuccess": false,
"code": "COMMON404_1",
"message": "요청한 리소스를 찾을 수 없습니다.",
"result": null
}
🔍 적용된 설계 패턴 및 원칙
- 응답 DTO 통일: 모든 API에서 ApiResponse 사용
- 도메인별 코드 분리: SuccessCode, ErrorCode Enum 분리 관리
- 정적 팩토리 메서드: 명시적이고 일관된 응답 생성
- 인터페이스 기반 설계: BaseSuccessCode, BaseErrorCode
- 타입 안정성: Enum 통한 코드 관리
📁 생성 / 수정된 파일
🆕 생성: BaseErrorCode.java, BaseSuccessCode.java, GeneralSuccessCode.java, ReviewSuccessCode.java, MemberSuccessCode.java, MissionSuccessCode.java, StoreSuccessCode.java
✏️ 수정: ApiResponse.java, GeneralErrorCode.java, ReviewController.java, TestController.java, TestException.java, TestCommandServiceImpl.java
✅ 완료된 작업
1️⃣ API 응답 통일 구조 구축
2️⃣ 성공 응답 코드 Enum 제작
3️⃣ 에러 응답 코드 Enum 완성
4️⃣ ApiResponse 메서드 구현
5️⃣ 예외 처리 구조 구축
6️⃣ 기존 API 응답 통일 적용
7️⃣ 서비스 레이어 구조 정리
📋 통일된 API 응답 예시
✅ 성공 응답
{
"isSuccess": true,
"code": "REVIEW200_2",
"message": "리뷰 목록 조회에 성공했습니다.",
"result": { /* 실제 데이터 */ }
}
❌ 실패 응답
{
"isSuccess": false,
"code": "COMMON404_1",
"message": "요청한 리소스를 찾을 수 없습니다.",
"result": null
}
🔍 적용된 설계 패턴 및 원칙
📁 생성 / 수정된 파일
🆕 생성: BaseErrorCode.java, BaseSuccessCode.java, GeneralSuccessCode.java, ReviewSuccessCode.java, MemberSuccessCode.java, MissionSuccessCode.java, StoreSuccessCode.java
✏️ 수정: ApiResponse.java, GeneralErrorCode.java, ReviewController.java, TestController.java, TestException.java, TestCommandServiceImpl.java