사고력을 기르는 AI 답변 구조 (v0.2)¶
버전은 Notion 페이지와 1:1 매칭 (ADR-0010). Breaking change (ADR-0009).
1. 무엇 / 왜¶
학생이 문제 풀이에 막혔을 때 AI가 대화형 multi-turn 질문으로 사고를 유도하고, 마지막 답은 학생이 직접 선택한다 (AI 대신 안 고름). 단순 LLM API와 다른 점은 "정답 회피·사고 유도·학생 자율 선택" 정책이 도메인 수준에서 강제된다는 것.
출처: raw/notion/ai-mvp-v0.2 4대 원칙 결정 사유: ADR-0009 (v0.1 단계형 힌트에서 전환한 사유)
v0.1 대비 핵심 변경¶
| 항목 | v0.1 (superseded) | v0.2 (현행) |
|---|---|---|
| AI 답변 구조 | 단계형 힌트 1~5단계 | 대화형 multi-turn (AI 질문 ↔ 학생 답변) |
| 마지막 단계 | AI가 정답·풀이 흐름 노출 | 학생이 직접 답 선택 (AI는 후보·질문만) |
| 컨텍스트 필드 | 강점·취약점 | 어려운 부분 (단순화) |
| 만족도 수집 | 없음 | 5점 + 자유 의견 |
| 1차 MVP 채널 | 질문/과제 + AI | 오픈챌린지 + AI 코칭 (질문/과제 후순위) |
2. 사용자 시나리오¶
학생¶
- 오픈챌린지 풀이 중 막힘 → "AI 코치 시작"
- AI가 질문 던짐 (예: "이 문제에서 먼저 무엇을 구해야 한다고 생각해?")
- 학생 답변 → AI 반응 + 다음 질문
- multi-turn 반복 → 학생이 풀이 흐름 이해
- 학생이 직접 답을 선택 (AI는 후보만 제시 가능, 정답은 안 고름)
- 회고/만족도 (5점 + 자유 의견)
선생님¶
- AI 기록 조회 (미해결 → 미완료 → 해결 완료)
- 상세 진입 → 학생/AI 대화 전체 로그 + 학생이 선택한 답 + 만족도
- 필요 시 메시지에 피드백 댓글
3. 데이터 모델¶
기존 [teams/engineering/domains/qna](../domains/qna.md) 확장 + v0.2 마이그레이션. 자세한 SQL·필드: mvp-back:docs/frd/사고력-답변구조/spec §3·§4.
| 엔티티 | v0.2 처리 |
|---|---|
QnaMessage |
hintLevel 컬럼 deprecated + turnIndex 신규 (multi-turn 인덱스) |
StudentContext |
strengths·weaknesses deprecated + difficulties 신규 |
AiSatisfactionRating |
신규 — qnaContextId, score 1-5, comment |
AiPromptTemplate |
hint.level1~5 키 deprecated + conversation.system·conversation.turn 신규 시드 |
4. 4대 원칙 (v0.2)¶
| 원칙 | 내용 |
|---|---|
| 1 | 답을 쉽게 주지 않는다 — "빨리 답 알려주는 AI" X |
| 2 | 학생이 끝까지 생각하게 돕는다 — multi-turn 사고 유도 |
| 3 (v0.2 변경) | 학생이 직접 답을 선택한다 — AI는 마지막 답 대신 안 고름 |
| 4 | 선생님이 최종 검증한다 — Human in the Loop |
→ v0.1 원칙 3 "끝까지 막히면 결국 이해시킨다" 폐기. 사고력 코치 철학 강화.
5. Backend·Frontend FRD¶
구현 명세는 코드 옆 mvp-back:docs/frd/사고력-답변구조/spec (Backend v0.2) + mvp-front:docs/frd/사고력-답변구조/spec (Frontend v0.2) 에서 관리한다 (ADR-0004, ADR-0005). 본 페이지는 "왜·추상" 만 유지.
핵심 요약:
- 신규 API: POST /api/v2/qna/{id}/ai-turn (대화) + POST /api/v2/qna/{id}/ai-rating (만족도)
- Deprecated: POST /api/v1/qna/{id}/ai-hint (12개월 후방 호환)
- Flyway V40~V44 (turn_index · difficulties · ai_satisfaction_rating · prompt template 시드)
6. 비기능¶
- 성능: AI 첫 토큰 < 3초, 대화 평균 5~8 turn (스트리밍 권장, 1차 MVP는 동기 응답 + 2차 스트리밍)
- 비용: 대화 multi-turn 평균 2000~5000 토큰.
AiTokenUsage에 호출당 기록 - 프롬프트 정책: 시스템 프롬프트에 "직접 정답 제공 금지, 학생이 답 선택할 때까지 질문 이어가기" 강제
- 만족도 데이터: 일별·챌린지별 집계 쿼리로 운영 모니터링
7. 관련 도메인¶
- teams/engineering/domains/qna — 기본 컨테이너.
QnaMessage·QnaContext확장 - teams/engineering/domains/challenge — 1차 MVP 핵심 채널. 챌린지 풀이 중 막힘 → 이 답변 구조 트리거
- teams/engineering/domains/homework — 1차 MVP 외 (질문/과제는 v0.2 후순위)
- teams/engineering/domains/studyroom — 선생님 기록 조회 권한 경계
- teams/engineering/domains/member —
StudentContext1:1
8. 관련 결정¶
- ADR-0009 — v0.1 단계형 힌트 → v0.2 대화형 전환 (본 페이지 supersedes 사유)
- (예정) ADR-0006 LLM provider 선정
- (예정) ADR-0007 프롬프트 저장 위치
- ADR-0005 — FRD 폴더 구조 + versioning
9. 출처¶
- raw/notion/ai-mvp-v0.2 — 단계형 → 대화형 결정 사유
- raw/notion/ai-mvp-v0.2 — 4대 원칙 (원칙 3 변경)
- raw/notion/ai-mvp-v0.2 — 대화형 사고 유도 + 만족도 수집 + 컨텍스트 단순화
- raw/notion/ai-mvp-v0.2 — 1차 MVP = 오픈챌린지 + AI 코칭
- raw/notion/ai-mvp-v0.1 — v0.1 원본 (참고)