feat(session): 면접 첫 질문 자기소개 고정 + 자기소개 기반 질문 생성#117
Merged
Conversation
모든 면접의 첫 질문을 "자기소개"로 고정하고, 이력서/레포 기반 질문 풀을 세션 생성 시점이 아니라 자기소개 답변을 받은 뒤 그 답변을 1차 근거로 생성한다. - Core: InterviewMessage.selfIntroduction(seq=1, category=SELF_INTRODUCTION) + isSelfIntroduction(). 세션 생성 직후 AI 없이 고정 삽입(insertSelfIntroduction). - Core: 자기소개 답변이면 꼬리질문 대신 SelfIntroAnsweredEvent 발행 → SessionQuestionsRequester.onSelfIntroAnswered 가 selfIntroAnswer 를 씨앗으로 generate.questions 발행. 풀 크기 = generalQuestionCount-1 (자기소개 1자리 예약). 자기소개엔 꼬리질문을 달지 않는다. - AI: GenerateQuestionsRequest.self_intro_answer 추가 → 프롬프트 1차 근거로 주입. - Frontend: 카테고리 라벨에 SELF_INTRODUCTION='자기소개' 추가. - 자기소개 채점/피드백은 후속 PR (정답성 점수 제외, 전달력 피드백으로 분리 예정). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This was referenced Jun 25, 2026
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.
변경 사항
면접 구조를 바꿉니다. 모든 면접의 첫 질문을 "자기소개"로 고정하고, 이력서/레포 기반 질문 풀을 세션 생성 시점이 아니라 자기소개 답변을 받은 뒤 그 답변을 1차 근거로 생성합니다 (실제 면접과 동일).
새 흐름
설계 결정
generalQuestionCount - 1상세
Core (backend)
InterviewMessage:selfIntroduction()팩토리 +isSelfIntroduction()+ sentinel categorySELF_INTRODUCTION(category엔 DB CHECK 없음 → 마이그레이션 불필요)QuestionsCallbackService.insertSelfIntroduction()— 세션 생성 직후 첫 질문 고정 삽입 + 카운트 + TTS/SSESessionQuestionsRequester— 생성 시엔 자기소개 삽입만,generate.questions발행은 새onSelfIntroAnswered로 이동SessionFollowupRequester— 자기소개 답변이면 꼬리질문 대신SelfIntroAnsweredEvent발행 (텍스트·음성 답변 모두 같은 경로)SelfIntroAnsweredEvent,GenerateQuestionsPayload.selfIntroAnswer추가AI
GenerateQuestionsRequest.self_intro_answer추가 → consumer/generator를 거쳐 프롬프트의 1차 근거로 주입 (chain/prompts/question_generation.py)Frontend
SELF_INTRODUCTION: '자기소개'추가테스트
SessionQuestionsRequesterTest재작성,SessionFollowupRequesterTest신규,QuestionsCallbackServiceTest에 자기소개 케이스 2개 추가 → 통과 (ArchUnit 포함)tsc --noEmit통과문서
docs/data-flow.md,docs/messaging.md,backend/CLAUDE.md,ai/CLAUDE.md갱신후속 (별도 PR)
🤖 Generated with Claude Code