✨ Feat: ExamForge 비동기 문항 생성 라이프사이클 + 채점 이벤트 연동 - #113
Merged
algocean1204 merged 1 commit intoJun 14, 2026
Merged
Conversation
- examgrading: 생성 타임아웃 스케줄러·실패 처리 서비스·생성 결과 outcome 도입 - 채점 완료 이벤트(ExamAttemptGradedEvent) + MockExam 리스너로 도메인 간 결합 분리 - FastAPI 시험 분석 요청/응답 클라이언트 및 튜터 미리보기 요청 DTO 추가 - course: 강의 생성 상태 응답 DTO 추가 - subscription: 플랜 가격 인하·코인 지급 보정 마이그레이션(V18~V21) - S3 public-url-base 설정·global 인증 필터 보강 및 관련 테스트 갱신
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.
개요
ExamForge 비동기 문항 생성의 전체 라이프사이클(타임아웃·실패·생성 결과 outcome)을 도입하고, 채점 완료를 도메인 이벤트로 분리해 결합도를 낮춘다. 함께 누적된 course·subscription·tutor·S3·global 변경을 일괄 반영한다.
주요 변경
ExamAttemptTimeoutScheduler), 실패 처리 서비스(ExamAttemptGenerationFailureService), 제출 영속화 분리(ExamAttemptSubmitPersistenceService), 생성 실패 사유 enum 추가ExamAttemptGradedEvent+MockExamAttemptGradedListener로 채점 완료 후처리 분리FastApiExamAnalysisRequest/Response), 튜터 미리보기 요청 DTO 추가LessonGenerationStatusResponse)public-url-base설정 + 내부 토큰 인증 필터 보강검증
./gradlew compileJavaBUILD SUCCESSFUL${ENV_VAR}플레이스홀더)🤖 Generated with Claude Code