Skip to content

feat(feedback): 질문별 복기 — 답변마다 모범 답안·리라이트·코칭#120

Merged
i3months merged 1 commit into
devfrom
feature/answer-coaching
Jun 25, 2026
Merged

feat(feedback): 질문별 복기 — 답변마다 모범 답안·리라이트·코칭#120
i3months merged 1 commit into
devfrom
feature/answer-coaching

Conversation

@i3months

Copy link
Copy Markdown
Member

변경 사항

면접 도구를 "채점기" → "코치" 로 끌어올립니다. 사용자는 점수뿐 아니라 "그래서 어떻게 답했어야 하는지" 를 봅니다.

피드백 생성 시, 자기소개를 제외한 모든 답변에 대해 AI가:

  • 모범 답안 — 이 질문에 강한 답변 예시(지원자 자료/JD 근거)
  • 내 답변 리라이트 — 실제 답변을 출발점으로 더 좋게 고쳐 쓴 버전
  • 한 줄 코칭 — 가장 중요한 보완점

을 생성하고, 피드백 리포트의 답변 버블 아래 '복기' 아코디언(평가 점수 포함)으로 보여줍니다.

상세

AI

  • chain/prompts/answer_coaching.py + LlmAnswerCoach(Flash). FeedbackConsumer 가 자기소개 제외 (질문,답변) 쌍을 찾아 답변별 병렬 코칭 → callback.feedback.answerCoaching[{messageId, modelAnswer, answerRewrite, coachingComment}]
  • 종합 generate·첫인상·직무 적합도와 asyncio.gather 병렬. 실패/빈 답변/자기소개는 건너뜀(피드백은 정상 발행). 답변 수 상한(기본 30)

Core

  • V19: interview_messagesmodel_answer/answer_rewrite/coaching_comment 추가 + InterviewMessage.recordCoaching
  • FeedbackCallbackServiceanswerCoaching[] 을 각 답변 메시지에 기록(다른 세션 메시지는 방어적 skip)
  • MessageResult/MessageResponse답변 평가 점수 + 복기를 노출하되 종료 세션 조회에서만(expectedSignal 과 동일 게이팅 — 라이브 중 정답 유출 방지)

Frontend

  • AnswerCoachingAccordion — 답변 버블 아래 '복기 보기' 토글(평가 점수 칩 → 한 줄 코칭 → 모범 답안 → 리라이트). 피드백 페이지의 기존 InterviewTranscript 재사용. OpenAPI 타입 재생성

테스트

  • AI: 코칭 append·자기소개 제외·_collect_coachable_pairs·forwarding → 269 passed, black·flake8 통과
  • Core: FeedbackCallbackServiceTest 코칭 기록 케이스 추가, 세션·ArchUnit·Flyway(V19) 통과
  • Frontend: tsc + eslint + 인터뷰 테스트 통과

문서

  • docs/database.md(V19 컬럼), docs/messaging.md(answerCoaching), backend·ai CLAUDE.md

🤖 Generated with Claude Code

면접 도구를 "채점기"에서 "코치"로. 피드백 생성 시 자기소개를 제외한 모든
답변에 대해 AI가 모범 답안 + 내 답변 리라이트 + 한 줄 코칭을 생성하고,
피드백 리포트의 답변 버블 아래 '복기' 아코디언으로 보여준다(평가 점수 포함).

- AI: answer_coaching 프롬프트 + LlmAnswerCoach(Flash). FeedbackConsumer 가
  자기소개 제외 (질문,답변) 쌍을 찾아 답변별 병렬 코칭 → callback.feedback 의
  answerCoaching[{messageId, modelAnswer, answerRewrite, coachingComment}].
  종합 generate·첫인상·직무 적합도와 asyncio.gather 병렬, 실패해도 피드백 계속.
- Core: V19(interview_messages +3컬럼) + InterviewMessage.recordCoaching.
  FeedbackCallbackService 가 각 답변 메시지에 기록. MessageResult/Response 가
  답변 평가 점수 + 복기를 노출(종료 세션 조회에서만 — expectedSignal 동일 게이팅).
- Frontend: AnswerCoachingAccordion(답변 버블 아래 '복기' 토글). OpenAPI 재생성.
- 테스트(AI/Core) + docs(database/messaging/CLAUDE) 갱신.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 25, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
stackup Ready Ready Preview, Comment Jun 25, 2026 6:13am

@i3months i3months merged commit 851f2bf into dev Jun 25, 2026
3 checks 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