개요
점검 생성, 조회, 상태 변경 및 통계 조회를 위한 API를 개발합니다.
점검자-신고 매칭 검증 및 상태 전이 규칙을 적용합니다.
기능 요구사항
작업 내용
API 스펙
// 점검 상태 변경 요청 DTO
public class InspectionStatusUpdateRequest {
@NotNull
private String status; // 한글 상태명 사용
}
// 점검 상세 응답 DTO
public class InspectionDetailResponse {
private Long inspectionId;
private String type;
private String status;
private LocalDate scheduleDate;
private LocalDate endDate;
private String inspectorName;
private ReportInfo reportInfo;
}
예외 처리 정책
| 에러 유형 |
HTTP 상태코드 |
처리 방식 |
| 유효하지 않은 상태 변경 |
409 CONFLICT |
상태 전이 규칙 위반 시 |
| 권한 없는 접근 |
403 FORBIDDEN |
타 구역 점검 조작 시 |
| 리소스 없음 |
404 NOT_FOUND |
존재하지 않는 점검/신고/점검자 요청 시 |
| 잘못된 요청 |
400 BAD_REQUEST |
유효하지 않은 날짜 등 입력값 오류 시 |
성능 고려사항
- N+1 문제 방지
- 점검 조회 시 관련 엔티티 Fetch Join 사용
- 통계 조회 최적화
기술적 결정 사항
- 상태 관리 전략
- Enum을 사용한 상태 관리 및 한글 설명 추가
- 상태 변경 시 서비스 계층에서 유효성 검사
- 권한 검증 방식
- Spring Security의 @AuthenticationPrincipal 활용
- 서비스 계층에서 점검자 소유권 검증
- 응답 형식 통일
- ApiResponse 클래스를 사용한 일관된 응답 형식
개요
점검 생성, 조회, 상태 변경 및 통계 조회를 위한 API를 개발합니다.
점검자-신고 매칭 검증 및 상태 전이 규칙을 적용합니다.
기능 요구사항
작업 내용
API 스펙
예외 처리 정책
성능 고려사항
기술적 결정 사항