Skip to content

⚡️ 즉시 피드백 전용 타임아웃/재시도 설정 분리 - #37

Merged
s26059-maker merged 2 commits into
developfrom
feat/instant-feedback-timeout
Sep 14, 2026
Merged

s26059-maker merged 2 commits into
developfrom
feat/instant-feedback-timeout

Conversation

@s26059-maker

@s26059-maker s26059-maker commented Sep 14, 2026 •

Copy link
Copy Markdown
Contributor

문제

InstantFeedbackProvider가 동기 호출 경로(SubmissionService:108)인데
OpenAI 타임아웃 60초 × generation().maxRetries() 3회를 공유해
최악 180초 블로킹. 제출 API 전체가 여기 물림.

변경

  • ai.instant-feedback.timeout-ms(10000) / max-retries(1) 신설
  • AiConfig의 instantFeedbackProvider 빈이 전용 OpenAiClient 인스턴스 사용
  • 문제 생성 경로(60초/3회)는 변경 없음

검증

  • AiPropertiesTest: 두 경로 기본값 분리 확인
  • OpenAiClientTimeoutIT: 실제 HTTP 레벨 타임아웃 동작 검증
  • 전체 115개 통과 (AiSmokeTest 2개는 키 미설정으로 정상 스킵)

리뷰 포인트

@서하 ai 모듈 설정 구조 변경이라 확인 부탁해.
계약(포트 시그니처)은 안 바뀜.

리뷰 대응

  • maxRetries → maxAttempts 리네임 (루프 조건 불변, 실제 호출 횟수 동일)
    • 설정 키도 max-attempts로 변경 — AI 모듈에서 직접 읽는 곳 있으면 알려주세요
  • 설정값 1 미만이면 기본값 폴백 + WARN (@validated 대신 기존 null-safe 로직에 통합)
  • 기동 시 WARN 1회만 출력 확인 (ConfigurationProperties 바인딩 중복 없음)
  • OpenAiClientFactory는 보류 — 목적별 클라이언트 3개째에 재검토

@s26059-maker
s26059-maker merged commit 194b398 into develop Sep 14, 2026
1 check passed
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