관리자 통계 및 서버 상태 API 개선#62
Merged
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
관리자 보드 응답에 채점 점수(promptScore/perfScore/correctnessScore/totalScore 및 제출 메타) 필드를 추가하고, 새 관리자 시스템 상태 API(GET /api/admin/system-status)를 도입합니다. 더불어 제출 상세를 일반/관리자용으로 분리(소유자 검증, 코드/루브릭은 관리자 전용)하고, SSE 레지스트리를 다중 구독자(관리자+응시자) 지원으로 확장하며, 중복 제출에 대한 사전 검사·DB 유니크 위반 매핑(SUB002)을 추가합니다.
Changes:
- 관리자 응시자 보드: 제출/점수 데이터 결합 + 응답 DTO 확장 (
GetExamineeBoardUseCase,ExamineeBoardResponse). - 시스템 상태 API:
AdminSystemStatusController/GetSystemStatusUseCase/SystemStatusResponse신설 (DBSELECT 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.
Collaborator
Author
|
Copilot review 반영 후 수정사항 push했습니다.
관련 테스트도 통과 확인했습니다. |
ydking0911
approved these changes
May 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
작업 내용
GET /api/admin/system-statusSELECT 1기반 연결 확인/health기반 연결 확인확인 사항
GetExamineeBoardUseCaseTest통과GetSystemStatusUseCaseTest통과AdminSystemStatusControllerTest통과참고
ai.server.url기준으로/health를 호출합니다.