Skip to content

✨ Feat: ExamForge 비동기 문항 생성 라이프사이클 + 채점 이벤트 연동 - #113

Merged
algocean1204 merged 1 commit into
developfrom
feature/examgrading-async-generation-lifecycle
Jun 14, 2026
Merged

algocean1204 merged 1 commit into
developfrom
feature/examgrading-async-generation-lifecycle

Conversation

@algocean1204

Copy link
Copy Markdown
Contributor

개요

ExamForge 비동기 문항 생성의 전체 라이프사이클(타임아웃·실패·생성 결과 outcome)을 도입하고, 채점 완료를 도메인 이벤트로 분리해 결합도를 낮춘다. 함께 누적된 course·subscription·tutor·S3·global 변경을 일괄 반영한다.

주요 변경

  • examgrading: 생성 타임아웃 스케줄러(ExamAttemptTimeoutScheduler), 실패 처리 서비스(ExamAttemptGenerationFailureService), 제출 영속화 분리(ExamAttemptSubmitPersistenceService), 생성 실패 사유 enum 추가
  • 이벤트 연동: ExamAttemptGradedEvent + MockExamAttemptGradedListener로 채점 완료 후처리 분리
  • FastAPI 연동: 시험 분석 요청/응답 클라이언트(FastApiExamAnalysisRequest/Response), 튜터 미리보기 요청 DTO 추가
  • course: 강의 생성 상태 응답 DTO(LessonGenerationStatusResponse)
  • subscription: 플랜 가격 인하·코인 지급 보정 마이그레이션 (V18~V21)
  • S3/global: public-url-base 설정 + 내부 토큰 인증 필터 보강
  • 관련 서비스/클라이언트 테스트 갱신 및 신규 테스트 추가

검증

  • ./gradlew compileJava BUILD SUCCESSFUL
  • 하드코딩 시크릿 없음 (전 설정값 ${ENV_VAR} 플레이스홀더)

🤖 Generated with Claude Code

- examgrading: 생성 타임아웃 스케줄러·실패 처리 서비스·생성 결과 outcome 도입
- 채점 완료 이벤트(ExamAttemptGradedEvent) + MockExam 리스너로 도메인 간 결합 분리
- FastAPI 시험 분석 요청/응답 클라이언트 및 튜터 미리보기 요청 DTO 추가
- course: 강의 생성 상태 응답 DTO 추가
- subscription: 플랜 가격 인하·코인 지급 보정 마이그레이션(V18~V21)
- S3 public-url-base 설정·global 인증 필터 보강 및 관련 테스트 갱신
@algocean1204
algocean1204 merged commit e9c3a63 into develop Jun 14, 2026
1 check passed
@algocean1204
algocean1204 deleted the feature/examgrading-async-generation-lifecycle branch June 14, 2026 08:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant