본문으로 건너뛰기

이해가 멈춘 지점을 찾아 가르치는 AI 튜터

음성 대화와 선수 지식 그래프로 학습자의 이해 공백과 오개념을 먼저 찾는 AI 튜터입니다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

혼자 어려운 내용을 학습할 때 무엇을 모르는지 알기 어렵다는 문제를 해결하기 위해, 이 앱은 먼저 음성 대화로 이해가 끊기는 지점을 찾고 선수 지식 그래프를 따라 수업 순서를 정합니다. 23개 개념과 33개 edge를 가진 그래프는 known, shaky, blocked, unexplored 상태와 오개념을 별도로 관리하며, 학습자가 직접 만든 설명만으로 상태를 갱신합니다. 작은 모델의 판정 오류는 prompt를 반복 수정하는 방식보다 answeredTheQuestion과 mechanismDescribed를 필수 schema로 받고 코드가 verdict를 재검사하는 방식에서 48개 테스트 기준 0/48로 줄었습니다. 주요 수업은 사전 작성해 비용을 낮추고 gemini-3.1-flash-lite를 추가 도움에만 사용하지만, 외부 사용자 검증과 실제 교육과정 대조, 음성 입력 재보정은 아직 남아 있습니다.

실용적 조언

  • 모델에게 verdict만 요청하지 말고 답변이 질문에 대응했는지와 작동 원리를 설명했는지를 필수 schema 필드로 먼저 받으십시오.
  • 그래프의 순서와 학습 상태처럼 사실에 해당하는 결정은 모델이 아니라 일반 코드가 처리하게 하십시오.
  • 기술 용어의 존재를 이해의 증거로 사용하지 말고, 입력에서 처리와 출력까지 이어지는 설명을 평가 기준에 포함하십시오.
  • 단일 테스트 실행 결과로 prompt를 확정하지 말고 여러 번 반복한 뒤 false pass와 false block을 각각 추적하십시오.

섹션별 상세

01
이 프로젝트는 학습자가 무엇을 모르는지 스스로 알아내기 어렵다는 문제에서 출발해, 설명을 바로 제공하는 대신 먼저 짧은 음성 대화로 이해가 끊기는 지점을 찾습니다. 앱은 23개 개념과 33개 선수 지식 edge로 구성된 10개 층의 그래프를 따라 학습자의 상태를 known, shaky, blocked, unexplored로 기록합니다. 학습자가 “I don’t know”라고 답해도 세션은 진행되며, 이미 가르친 사실만으로는 상태가 바뀌지 않고 학습자가 직접 만든 설명과 그 판정 결과가 있어야 노드가 해제됩니다. 이는 지식 부족과 오개념을 분리해 처리하고, 잘못된 이해 위에 새 내용을 쌓는 문제를 줄이려는 설계입니다.
02
모델의 자유도를 줄이는 구조적 제어가 여러 턴에서 일관성을 유지하는 데 더 효과적이었다는 경험이 공유됐습니다. 질문은 미리 작성해 한 요청에 전달하고, 모델은 네 가지 action 중 하나와 표현만 선택하며 다음 순서는 그래프와 코드가 결정합니다. 같은 노드에서 두 번째로 불명확한 답변을 받으면 route handler가 shaky로 바꾸고, 반복 진입도 prompt가 아니라 코드가 차단합니다. prompt 규칙을 세 차례 다시 써도 48개 테스트에서 false pass가 0건에서 2건, 3건으로 늘었지만, answeredTheQuestion과 mechanismDescribed를 verdict 앞의 필수 schema 필드로 둔 뒤 코드 검사를 추가하자 세 차례 실행 모두 0/48이 됐습니다.
03
평가기는 외운 용어를 그럴듯하게 나열하는 parroting을 합격시키거나, 실제 이해를 거부하는 두 종류의 오류를 가집니다. 이를 구분하기 위해 단일 테스트가 아니라 여러 차례 테스트를 실행했고, 전문 용어를 사용했다는 이유만으로 정답을 실패 처리한 규칙도 다시 확인했습니다. 한 가지 표현이 비어 있고 약간 부정확한 테스트 사례는 prompt를 계속 조정해 완벽한 점수를 만들지 않고 예상되는 한계로 남겼습니다. 따라서 평가 결과를 높이는 것보다 false pass와 false block의 원인을 분리하고 재현 가능한 테스트로 확인하는 방식이 핵심이 됐습니다.
04
비용과 개인정보를 줄이기 위해 23개 주요 수업은 사람이 미리 작성하고, 추가 도움을 요청할 때만 AI를 호출합니다. 질문 하나의 비용은 약 $0.00025이며 gemini-3.1-flash-lite는 더 큰 모델과 같은 결과를 내면서 세션당 약 1¢의 비용으로 동작한다는 테스트 결과를 바탕으로 선택됐습니다. 데이터베이스와 계정 없이 브라우저 로컬 저장소에 진도를 보관하고, 무료 API key 사용량은 하루 약 75개 세션에 맞춰 세션당 AI turn 25회와 브라우저당 하루 60회로 제한합니다. 개발자 key는 서버에서 숨기고 사용자 key는 메모리에서만 임시 전달하며 로그에 남기지 않는 구조입니다.
05
음성 입력은 무료 Web Speech를 사용하지만 Chrome이 말하는 중간의 침묵을 문장 종료로 오인하는 문제가 가장 약한 부분으로 남았습니다. 이를 보완하기 위해 앱이 continuous listening을 켜고 4초 동안 완전한 침묵이 이어질 때만 발화를 끝난 것으로 판단하며, Chrome listener가 조기에 꺼지면 백그라운드에서 자동 재시작합니다. 다만 이 기능은 기기 자체에서 실행되지 않고, 현재 보정 기준은 음성이 아닌 텍스트로 작성된 데이터에 기반합니다. 외부 사용자가 아직 없고 그래프도 실제 교육과정과 대조하지 않았으므로, 음성 경로와 교육과정 적합성은 남은 위험입니다.

용어 해설

선수 지식 그래프(Prerequisite Graph)
개념을 노드로, 먼저 알아야 하는 관계를 방향성 있는 edge로 표현한 구조입니다. 학습자의 이해 상태를 그래프에 표시하면 어떤 개념부터 가르칠지 정할 수 있으며, 이 앱에서는 23개 개념과 33개 선수 지식 edge를 10개 층으로 구성했습니다.
오개념(Misconception)
학습자가 이미 알고 있다고 생각하지만 실제로는 잘못된 이해를 가진 상태입니다. 단순한 지식 부족과 달리 기존 설명을 먼저 바로잡아야 하므로, 앱은 오개념을 별도 필드로 저장하고 새로운 개념을 그 위에 쌓지 않도록 처리합니다.
스키마 제약 생성(Schema-Constrained Generation)
모델이 자유롭게 답하지 못하도록 허용된 출력 구조와 필드를 미리 지정하는 방식입니다. 이 앱은 모델이 판정을 내리기 전에 답변 여부와 작동 원리 설명 여부를 필수로 기록하게 한 뒤, 코드가 두 필드와 verdict의 일치 여부를 다시 검사합니다.
오탐 합격(False Pass)
실제로는 이해하지 못했지만 평가 시스템이 학습자의 답변을 통과시키는 오류입니다. 기술 용어를 외워 나열한 답변도 합격시키는 문제가 발생했으며, 앱은 용어 사용이 아니라 작동 원리를 설명했는지 확인하도록 판정 기준을 바꿨습니다.
오탐 차단(False Block)
실제로 개념을 이해한 학습자의 답변을 평가 시스템이 거부하는 오류입니다. 지나치게 전문적인 표현을 사용한 정답이 실패로 분류되는 사례가 있었고, 테스트 규칙을 명확히 한 뒤 해당 오류를 바로잡았습니다.

언급된 도구

Next.js 16중립

AI 튜터 웹 애플리케이션의 프론트엔드 및 애플리케이션 구성

TypeScript중립

웹 애플리케이션 구현 언어

Vercel AI SDK중립

애플리케이션에서 AI 모델을 호출하는 SDK

Google AI Studio models중립

학습 질문과 추가 도움을 처리하는 모델 제공

Web Speech비추천

무료 음성 입력 처리

언급된 리소스

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 22.수집 2026. 08. 22.출처 타입 REDDIT

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.