Skip to content

관리자 통계 및 서버 상태 API 개선#62

Merged
chanwook01 merged 9 commits into
developfrom
feature/admin-users-api-integration
May 19, 2026
Merged

관리자 통계 및 서버 상태 API 개선#62
chanwook01 merged 9 commits into
developfrom
feature/admin-users-api-integration

Conversation

@chanwook01
Copy link
Copy Markdown
Collaborator

작업 내용

  • 관리자 보드 API 응답에 채점 점수 필드 추가
    • promptScore
    • perfScore
    • correctnessScore
  • 관리자 통계/분석 화면에서 사용할 수 있도록 제출자 점수 데이터 확장
  • 관리자 서버 상태 조회 API 추가
    • GET /api/admin/system-status
    • API 서버, 데이터베이스, AI 게이트웨이 상태 확인
    • DB SELECT 1 기반 연결 확인
    • AI 서버 /health 기반 연결 확인
  • 서버 상태 API 관련 UseCase / Controller / Response DTO 추가
  • 관련 단위 테스트 추가

확인 사항

  • GetExamineeBoardUseCaseTest 통과
  • GetSystemStatusUseCaseTest 통과
  • AdminSystemStatusControllerTest 통과
  • DB schema 변경 없음

참고

  • AI 게이트웨이는 ai.server.url 기준으로 /health를 호출합니다.
  • AI 서버가 꺼져 있으면 해당 항목은 점검 필요 상태로 표시됩니다.

@chanwook01 chanwook01 requested a review from ydking0911 May 18, 2026 21:48
@chanwook01 chanwook01 self-assigned this May 18, 2026
@ydking0911 ydking0911 added enhancement New feature or request feature labels May 19, 2026
@ydking0911 ydking0911 requested a review from Copilot May 19, 2026 00:04
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

관리자 보드 응답에 채점 점수(promptScore/perfScore/correctnessScore/totalScore 및 제출 메타) 필드를 추가하고, 새 관리자 시스템 상태 API(GET /api/admin/system-status)를 도입합니다. 더불어 제출 상세를 일반/관리자용으로 분리(소유자 검증, 코드/루브릭은 관리자 전용)하고, SSE 레지스트리를 다중 구독자(관리자+응시자) 지원으로 확장하며, 중복 제출에 대한 사전 검사·DB 유니크 위반 매핑(SUB002)을 추가합니다.

Changes:

  • 관리자 응시자 보드: 제출/점수 데이터 결합 + 응답 DTO 확장 (GetExamineeBoardUseCase, ExamineeBoardResponse).
  • 시스템 상태 API: AdminSystemStatusController / GetSystemStatusUseCase / SystemStatusResponse 신설 (DB SELECT 1·AI /health 점검).
  • 제출 상세 분리: GetSubmissionDetailUseCase 소유자 검증 + GetAdminSubmissionDetailUseCase(코드·루브릭 포함), 공용 SubmissionDetailAssembler 추출, 응시자 전용 SSE 컨트롤러, 다중 구독 가능한 SseEmitterRegistry, 중복 제출 사전 검사 + DataIntegrityViolationException 핸들러(SUB002 매핑).

Reviewed changes

Copilot reviewed 35 out of 35 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
domain/admin/application/usecase/GetSystemStatusUseCase.java API/DB/AI 헬스체크 로직
domain/admin/ui/AdminSystemStatusController.java 시스템 상태 GET 엔드포인트
domain/admin/application/dto/response/SystemStatusResponse.java 시스템 상태 응답 DTO
domain/admin/application/usecase/GetExamineeBoardUseCase.java 제출·점수 결합 매핑
domain/admin/application/dto/response/ExamineeBoardResponse.java 점수/제출 메타 필드 추가
domain/submission/application/usecase/SubmitUseCase.java 중복 제출 사전 검사, problemId 보정
domain/submission/application/usecase/GetSubmissionDetailUseCase.java 소유자 검증 + assembler 위임
domain/submission/application/usecase/GetAdminSubmissionDetailUseCase.java 관리자 상세(코드·루브릭) UseCase 신설
domain/submission/application/service/SubmissionDetailAssembler.java 상세 응답 집계 공용 컴포넌트
domain/submission/application/dto/response/AdminSubmissionDetailResponse.java 관리자 전용 응답 DTO
domain/submission/ui/SubmissionController.java 소유자 ID 주입
domain/submission/ui/AdminSubmissionDetailController.java 관리자 상세 컨트롤러
domain/submission/ui/ExamineeSubmissionStreamController.java 응시자 SSE 컨트롤러
domain/submission/infrastructure/SseEmitterRegistry.java 다중 구독자 지원
domain/submission/domain/service/SubmissionService.java exists/findOptional 추가
domain/submission/domain/repository/SubmissionRepository.java existsByExamIdAndParticipantId 추가
domain/submission/domain/repository/ScoreRepository.java findBySubmissionIdIn 추가
domain/exam/application/dto/response/ActiveSessionResponse.java participantId 노출
global/exception/ExceptionAdvice.java DIVE → SUB002 매핑
global/swagger/SubmissionApi.java, AdminSubmissionDetailApi.java, SubmissionStreamApi.java Swagger 문서 추가/갱신
src/test/.../*Test.java 신규/기존 UseCase·컨트롤러·예외 advice 단위 테스트

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@chanwook01
Copy link
Copy Markdown
Collaborator Author

@ydking0911

Copilot review 반영 후 수정사항 push했습니다.

  • API status latency 측정 제거
  • AI health check 타입 안정성 개선
  • SSE partial failure 정책은 기존 의도 유지

관련 테스트도 통과 확인했습니다.

@chanwook01 chanwook01 merged commit 3f34684 into develop May 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants