해결하려는 문제 / 배경
- 현재
InterviewService.getNextQuestion은 최초 질문(QuestionPool에서 랜덤 추출) 이후로는 매 호출마다 무조건 LLM으로 꼬리질문(FOLLOWUP 타입)만 생성함.
- depth 제한이나 "다른 주제로 전환"하는 로직이 전혀 없어서 한 주제에 대한 꼬리질문이 세션 종료까지 계속 이어질 수 있음.
- 실제 면접처럼 한 주제를 적당히 파고든 뒤 새로운 질문(그리고 그 질문에 대한 또 다른 꼬리질문)으로 넘어가는 흐름이 더 자연스러움.
제안하는 기능
- 세션의
Question 목록을 orderNum 역순으로 훑어, 마지막 비-FOLLOWUP 질문 이후 연속된 FOLLOWUP 개수(depth)를 계산
- depth가 설정 가능한 최대값(예: 2~3)에 도달하면 LLM 꼬리질문 생성 대신
QuestionPool에서 해당 세션에서 아직 나오지 않은 질문을 하나 뽑아 새 top-level 질문 (orderNum 이어서, 원래 questionType 유지)으로 전환
- 새 top-level 질문 이후에는 다시 꼬리질문 depth 카운트를 0부터 시작
- 세션 전체 질문 수 상한(
session.totalQuestions)은 기존 로직 그대로 유지
완료 조건 / 검증
- 연속으로
/questions/next를 호출했을 때 꼬리질문이 N번 이어진 뒤 자연스럽게 새 주제 질문으로 전환됨을 통합 테스트 또는 수동 검증으로 확인
QuestionPool에 세션에서 이미 나온 질문과 동일한 질문이 다시 나오지 않음
관련 이슈 / PR
#20 질문 풀 (QuestionPool) 확충 이슈와 병행 진행
해결하려는 문제 / 배경
InterviewService.getNextQuestion은 최초 질문(QuestionPool에서 랜덤 추출) 이후로는 매 호출마다 무조건 LLM으로 꼬리질문(FOLLOWUP타입)만 생성함.제안하는 기능
Question목록을orderNum역순으로 훑어, 마지막 비-FOLLOWUP질문 이후 연속된FOLLOWUP개수(depth)를 계산QuestionPool에서 해당 세션에서 아직 나오지 않은 질문을 하나 뽑아 새 top-level 질문 (orderNum이어서, 원래questionType유지)으로 전환session.totalQuestions)은 기존 로직 그대로 유지완료 조건 / 검증
/questions/next를 호출했을 때 꼬리질문이 N번 이어진 뒤 자연스럽게 새 주제 질문으로 전환됨을 통합 테스트 또는 수동 검증으로 확인QuestionPool에 세션에서 이미 나온 질문과 동일한 질문이 다시 나오지 않음관련 이슈 / PR
#20 질문 풀 (QuestionPool) 확충 이슈와 병행 진행