Skip to content

[BE] 오늘의 예약 현황 조회 API #17

@jiva-z

Description

@jiva-z

개요

점검자의 오늘 예약 현황 조회 및 긴급 항목 식별 기능을 구현합니다.
기존 점검 관리 시스템과 연동하여 실시간 예약 상태를 표시하고 신고 내역 조회 가능성을 제공합니다.


기능 요구사항

작업 내용

  • API 확장 개발
    • 오늘 일정 조회 전용 엔드포인트 추가
    • 긴급 항목 판별 로직 구현(CRITICAL 등급 자동 감지)
  • 데이터 모델 개선
    • 응답 DTO에 긴급 여부 필드 추가
    • 리포트 연관 정보 노출 강화
  • 조회 조건 최적화
    • 점검자별 당일 스케줄 필터링
    • 신고 유형별 자동 정렬

API 스펙

// 오늘의 예약 조회 응답 DTO
public class InspectionDetailResponse {
    private Long inspectionId;
    private String type;
    private String status;
    private LocalDate scheduleDate;
    private boolean isUrgent; // 신규 필드
    private ReportInfo reportInfo; // 확장된 리포트 정보
}

// 엔드포인트
GET /api/inspections/today

예외 처리 정책

에러 유형 HTTP 상태코드 처리 방식
예약 데이터 없음 204 NO_CONTENT 조회 결과가 없는 경우
인증 오류 401 UNAUTHORIZED 유효하지 않은 인증 정보
권한 오류 403 FORBIDDEN 타 점검자의 데이터 요청 시

성능 고려사항

  1. 실시간 성능 보장
    • scheduleDate 컬럼 인덱스 추가
    • 점검자 ID + 날짜 복합 인덱스 구성
  2. 쿼리 최적화
    • JPQL에서 Native Query로 중요 조회 변경
    • Batch Size 설정을 통한 N+1 문제 방지

기술적 결정 사항

  1. 시간 필터링 전략
    • 서버 시간(LocalDate.now()) 기준 필터링
    • 타임존 이슈 방지를 위해 UTC 표준 시간 적용
  2. 긴급 항목 판별 기준
    • 리포트의 defectType으로 자동 판별(CRITICAL/URGENT)
    • 확장성을 위해 Enum 기반 조건 처리
  3. 프론트엔드 연동 규약
    • isUrgent=true 시 빨간색 border 표시
    • reportInfo null 여부로 정기/신고점검 구분

이 이슈 템플릿은 다음 요소를 강조합니다:
1. 기존 시스템과의 확장성 있는 연동
2. 실시간 성능을 고려한 인덱스 전략
3. 프론트엔드 구현을 위한 명확한 데이터 규격
4. 예외 케이스에 대한 체계적인 처리 방안
5. 향후 기능 확장을 위한 유연한 아키텍처 설계

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions