Skip to content

Conversation

@plan11plan
Copy link
Collaborator

What is this PR? 🔍

프로젝트 진행을 위한 백엔드 공통 개발 환경을 만듭니다.

  • Sptring Data JPA Audit 객체 생성
  • API 공통 응답 구조(성공,실패) 생성
  • 예외 처리 전략 설정
  • 환경별 application.yml 내용들을 한 파일에 생성(prod,dev)

Changes 📝

Screenshot 📷

image image image image image

- BaseTimeEntity 클래스 추가
  - @CreatedDate, @LastModifiedDate를 사용하여 생성 및 수정 시간 자동 기록
  - @EntityListeners(AuditingEntityListener.class)로 Auditing 활성화
  - 모든 필드를 포함한 생성자와 기본 생성자를 protected로 제한하여 불변성 보장
- JpaAuditingConfig 클래스 추가
  - @EnableJpaAuditing로 JPA Auditing 기능 활성화
- AppException 클래스 추가
  - ErrorCode를 기반으로 예외 메시지와 코드를 관리하는 공용 부모 예외 클래스
  - RuntimeException을 상속받아 unchecked 예외로 구현
- IncidentNotFoundException 클래스 추가
  - ClientErrorCode.NOT_FOUND를 사용하는 클라이언트 오류 예외
- ResponseConversionException 클래스 추가
  - ServerErrorCode.JSON_CONVERSION_ERROR를 사용하는 서버 오류 예외
- 팀 협업을 위한 커스텀 예외 가이드 제공 목적으로 같이 커밋함
- SuccessCode/ErrorCode 응답 코드 정의
- Client/Server 에러 코드 분류
- HTTP 상태 코드 및 메시지 매핑
- Success/Fail record 타입으로 응답 객체 정의
- 응답에 공통 타임스탬프 포함
- 정적 팩토리 메서드로 생성 편의성 제공
- ResponseBodyAdvice로 응답 후처리기 구현
- 응답 타입 체크 및 변환 로직 분리:
 - 타입 체크: Response/ResponseEntity 중복 래핑 방지
 - 변환 로직: JSON/객체 변환 지원
- 전역 예외처리를 통한 API 에러 응답 표준화
- Exception -> Response.Fail 자동 변환
- 향후 비즈니스 예외 처리를 위한 구조 준비
- 다양한 응답 케이스 테스트 API 구현:
 - 일반 객체/문자열 응답
 - 예외 발생 케이스
 - Response 타입 응답
 - ResponseEntity 응답
- 나중에 삭제될 소스코드
- BaseEntity기능은 공용 패키지(support)에 구현됨
@plan11plan plan11plan merged commit ecb8da2 into dnd-side-project:main Feb 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant