Skip to content

시험 상태 표시 및 자동 종료 로그/데이터 보관 스케줄러 개선 - #82

Merged
chanwook01 merged 5 commits into
developfrom
fix/admin-participant-waiting-status
Jun 6, 2026
Merged

시험 상태 표시 및 자동 종료 로그/데이터 보관 스케줄러 개선#82
chanwook01 merged 5 commits into
developfrom
fix/admin-participant-waiting-status

Conversation

@chanwook01

Copy link
Copy Markdown
Collaborator

변경 내용

  • 관리자 참가자 목록의 WAITING 시험 상태 표시 수정

    • WAITING 시험에서 참가자가 입장해도 응시중이 아니라 대기중 / 미제출로 표시되도록 개선
    • ExamParticipantDisplayStatusResolver 우선순위 정리
    • sessionEnded → WAITING → SUBMITTED → IN_EXAM 흐름 반영
  • 관리자 본인 계정 삭제 시 마스터 활동 로그 기록 추가

    • DeleteOwnAdminAccountUseCase에서 기존 logAdminAccountDeleted(null, targetAdminId, targetDisplayName) 재사용
    • 새 로그 타입 / 새 migration 없이 master_id = null, target_admin_id = 삭제 대상 본인으로 기록
  • 시험 자동 종료 스케줄러 추가

    • ExamAutoEndScheduler 추가
    • RUNNING && endsAt <= now 시험을 1초 주기로 조회 후 EndExamUseCase 재사용
    • 자동 종료 시 기존 종료 흐름을 통해 미제출 자동 제출, 상태 변경, 관리자 로그, WebSocket 종료 이벤트 처리
  • 시험 실제 시작/종료 시각 반영

    • Exam.start()에서 실제 시작 시각으로 startsAt 갱신
    • Exam.end()에서 실제 종료 시각으로 endsAt 갱신
    • 코드 관리 화면의 시작/종료 시각이 실제 처리 시각을 반영하도록 개선
  • Master 전역 설정 데이터 보관 자동 삭제 기능 추가

    • DataRetentionScheduler 추가
    • PurgeExpiredPlatformDataUseCase 추가
    • autoDeleteExpiredData=true일 때 보관 기간이 지난 로그/제출 산출물/AI 산출물을 주기적으로 삭제
    • autoDeleteExpiredData=false이면 삭제 스킵
    • ENDED 시험의 오래된 submission/prompt 산출물만 삭제
    • exams, exam_participants, users, admins, problems, platform_settings 등 핵심 메타 데이터는 삭제하지 않음

검증

  • BE 전체 테스트 통과

    • .\gradlew.bat test --no-daemon
    • 377 tests passed, 1 skipped, BUILD SUCCESSFUL
  • 수동 검증

    • WAITING 시험 참가자 상태가 대기중 / 미제출로 표시되는 것 확인
    • RUNNING 시험 참가자 상태가 응시중 / 미제출로 표시되는 것 확인
    • 시험 자동 종료 시 DB state=ENDED, 관리자 로그, 참가자 상태 종료 반영 확인
    • 실제 시작/종료 시각이 코드 관리 화면에 반영되는 것 확인
    • Master 데이터 보관 자동 삭제 기능 로컬 DB 검증 완료

@chanwook01chanwook01 self-assigned this Jun 6, 2026
@chanwook01

Copy link
Copy Markdown
CollaboratorAuthor

변경 diff 기준으로 자동 종료 스케줄러, 데이터 보관 삭제 대상, 로그 기록, 테스트 범위까지 확인했습니다. WAITING/RUNNING 데이터 삭제 위험이나 기존 UseCase 우회는 없어 보여 develop으로 머지 진행하겠습니다.

@chanwook01
chanwook01 merged commit 9c2bf17 into developJun 6, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@chanwook01@ydking0911