← 강의 목록

LMS-2242 제작 기록

AI 개념강의 영상 v2 — 인터랙티브 플레이어 및 연계복습 구조 (LMS-2241 후속)

결과물

항목위치
웹 플레이어 링크https://claude.ai/artifact/QxEPQfBTKgB6ipBQptNZyX (W Labs 조직 내 공유)
대본 (자막 + TTS 입력 + 체크포인트 문제)https://bitbucket.org/devmeoi06/aiv/src/main/docs/LMS-2242_script_ko.md
수업 데이터 (재사용 템플릿)lessons/schema.ts (형식), lessons/linear-function-equation/lesson.ko.json (내용)
소스 코드https://bitbucket.org/devmeoi06/aiv — src/lesson-v2/ (수업 엔진), src/lesson/Senior.tsx (아바타), player/ (웹 플레이어), scripts/ (음성·검증·대본·배포 스크립트)
제작 기록https://bitbucket.org/devmeoi06/aiv/src/main/docs/LMS-2242_production-log_ko.md (본 문서), https://bitbucket.org/devmeoi06/aiv/src/main/docs/LMS-2242_production-log_en.md (영문)

인수 조건 점검

조건결과
작동하는 웹 플레이어 링크·소스코드·대본 제출✅ 링크·소스·대본 준비 (티켓 첨부·공유는 남음)
답을 제출해야 재생되는 체크포인트 2개 이상✅ 3개 (1:44 선택형, 3:36 입력형, 5:32 선택형)
구간 비율 5% / 90% / 5%✅ 실측 4.8% / 90.4% / 4.8%
속도 조절 시 음성·자막 싱크 유지✅ 0.75× · 1× · 1.25× · 1.5× · 2× 테스트 통과 (아래)
수학 오류 0건, 한국인 검수⏳ 자동 검증 통과 — 한국인 검수 필요
도구·프롬프트·소요시간·비용 기록, LMS-2241과 비교✅ 본 문서
교과서 복제 금지, 실존 인물 얼굴 미사용✅

강의 구성

구간 비율은 실제 음성 길이로 계산했습니다. 인트로(2초)는 도입에, 아웃트로(4초)는 마무리에 포함했습니다.

구간내용길이비율
도입 (연계 복습)지난 시간 y = ax + b, 중1 정비례 y = 2x → y = 2x + 218.4초4.8%
본론 (개념 + 체크포인트)① 기울기·y절편 ② 기울기·한 점 (평행선 응용) ③ 두 점 (x절편·y절편 응용), 체크포인트 3개, 세 방법 비교·검산346.2초90.4%
마무리 (요점 정리)세 가지 경우 정리, 다음 시간 예고18.5초4.8%

인터랙티브 기능과 테스트 결과

브라우저에서 직접 실행해 확인했습니다.

항목동작테스트 결과
체크포인트 정지문제 지점에서 정확히 멈추고 문제 카드 표시✅ 1:44, 3:36에서 정확히 정지, 음성 정지 확인
건너뛰기 차단스페이스바, 진행 바 클릭, 재생 버튼 모두 막힘✅ 3가지 모두 1:44에서 그대로
즉시 피드백정답 → 해설 / 오답 → 힌트 / 2회 오답 → 정답과 해설 공개✅ 세 경우 모두 확인
입력형 문제숫자 입력, 화면 자막의 "−" 기호도 정답 처리✅ "2" 오답 → 힌트, "−2" 정답
이어서 보기해설 내레이션부터 재생 재개✅ (버그 1건 수정 후 확인)
속도 조절0.75×–2× 버튼✅ 2×: 4.2초에 영상 9초 진행, 0.75×: 8초에 6초 진행
음성·자막 싱크자막·입모양은 프레임 기준이라 속도와 무관하게 일치✅ 2×에서 6회 샘플 모두 재생 중 음성과 자막 일치, 음높이 유지
모바일375px 화면에서 가로 스크롤 없음✅ (휴대폰에서는 영상 속 자막이 작게 보임)

대표님 피드백 반영 (2차)

피드백원인조치
"처음 1–2초 소리가 안 나요"문장마다 음성 파일을 그 문장이 시작될 때 불러와서, 불러오는 동안 첫 음절이 잘림목소리별로 전체 내레이션과 차임을 하나의 연속 오디오 트랙으로 합쳐 처음에 한 번만 불러옴 (scripts/lesson-track.ts). 첫 음절 정상 재생, 체크포인트 정지·재개 싱크 확인 (106.6초 정지 → 재개 후 오디오 109.5초 / 영상 1:50)
"밝고 높은 톤의 여자 선생님 목소리"—ko-KR-SunHiNeural, 속도 +10%, 음높이 +15%로 전체 내레이션 추가. 문장 중간 "!" 뒤 1초가량 멈추는 문제는 쉼표로 읽게 해서 해결. 길이 6분 34초, 구간 비율 4.9% / 90.4% / 4.8%
(추가) 아바타·테마 선택—플레이어 위에 선생님 (선배 남 = Hyunsu / 선생님 여 = SunHi + 여자 선생님 아바타)과 테마 (기본·칠판·나이트·파스텔) 선택 버튼. 목소리를 바꾸면 처음부터 다시 재생, 테마는 재생 위치 유지

사용 도구

단계도구비고
대본, 수업 데이터, 아바타, 플레이어 코드Claude Code (Claude Opus 5.5)전부 AI 작성
음성Microsoft Edge neural TTS, ko-KR-HyunsuMultilingualNeural, 속도 +10%, 음높이 +4%3가지 샘플 비교 후 선택
입모양 동기화ffmpeg로 음성 음량 추출 → 아바타 입 모양
수업 엔진Remotion 4.0.535 + @remotion/player수업 JSON을 그대로 화면으로 그림
웹 플레이어React 19, Vite 6.3.5체크포인트·피드백·속도 조절
호스팅Claude Artifact (비공개 링크)시범용
수학 검증자체 검증 스크립트 scripts/lesson-check.mjs모든 예시·점·기울기·정답을 계산으로 확인

프롬프트

사용자 → Claude Code 프롬프트 (원문, 순서대로):

  1. Currently I have an in progress related to the continuation of this ticket, please retrieve that ticket and analyze it. → LMS-2242 분석
  2. Go with your recommended defaults: topic = 일차함수의 식 구하기, review = 지난 시간 기울기·y절편 + 중1 정비례, host as a private Artifact link first, keep the illustrated avatar restyled as a friendly senior. Start with the lesson JSON template and script. → 수업 템플릿·대본 작성
  3. Yes, generate 2-3 short voice samples of the friendly-senior persona (different Edge voices or settings) so I can pick one. → 음성 샘플 3종
  4. Use C (Hyunsu, young male senior) for the lesson. → 음성 선택
  5. Yes, restyle the avatar as a young male senior student to match the Hyunsu voice, then generate the full narration. → 아바타·전체 내레이션
  6. Yes, build the interactive web player: checkpoints that block playback, instant feedback, 0.75x-2.0x speed control with synced subtitles, using the new avatar and narration. → 웹 플레이어
  7. Yes, publish the player as a private Artifact link. → 배포
  8. 대표님 피드백 전달: 첫 1–2초 무음, 밝고 높은 톤의 여자 선생님 목소리 요청 + I think let's add an avatar and theme selector? → 연속 오디오 트랙, SunHi 목소리, 선생님·테마 선택 추가

소요 시간

단계시간
티켓 분석, 기본값 결정약 5분
수업 템플릿·대본 작성, 수학 자동 검증, 구간 비율 조정약 20분
음성 샘플 3종약 3분
아바타 제작 + 전체 내레이션 44클립약 10분
수업 엔진 + 웹 플레이어약 12분
브라우저 테스트, 버그 2건 수정약 5분
배포약 3분
합계약 1시간 (사용자 응답 대기 시간 제외)

비용

항목비용
TTS (Edge neural TTS)₩0
Remotion · @remotion/player (소규모 팀 무료 라이선스 기준*)₩0
React, Vite, ffmpeg, 글꼴₩0
호스팅 (Claude Artifact)기존 구독 내
Claude Code 사용량기존 구독 내 사용 (별도 과금 없음)
합계추가 비용 ₩0

* Remotion은 직원 3명 이하 회사는 무료, 그 이상은 회사 라이선스가 필요합니다. 플레이어(@remotion/player)도 같습니다.

LMS-2241과 비교

항목LMS-2241 (v1)LMS-2242 (v2)
결과물 형태MP4 영상웹 플레이어 (링크)
단원일차함수와 그래프 — 기울기와 y절편일차함수의 식 구하기 (다음 소단원)
길이4분 27초6분 24초
구성도입·설명·정리 (비율 기준 없음)연계 복습 5% / 본론 90% / 요점 정리 5% (실측 4.8 / 90.4 / 4.8)
연계 복습없음지난 시간 + 중1 정비례
학습자 참여없음 (보기만 함)체크포인트 3개, 답을 내야 재생, 정답·힌트·해설 피드백
속도 조절없음 (영상 플레이어 기능에 의존)0.75×–2×, 음성·자막 싱크 유지
음성SunHi (여), 존댓말 선생님, 속도 −4%Hyunsu (남), 반말 선배, 속도 +10%
아바타여자 선생님남자 선배 (후드티)
수업 내용 형식장면마다 코드로 직접 작성JSON 템플릿 — 새 차시는 JSON 파일만 새로 작성
수학 검증AI가 눈으로 확인검증 스크립트가 모든 예시·점·정답을 계산으로 확인
소요 시간한국어 1편 약 30분 (변형 포함 약 3시간 10분)약 1시간 (플레이어 포함)
비용추가 ₩0추가 ₩0
다음 차시 제작장면 코드 새로 작성JSON 작성 → lesson-check → lesson-tts → 빌드 (플레이어·엔진 재사용)

수학 검토 (자동 검증 통과 — 한국인 검수 필요)

node scripts/lesson-check.mjs lessons/linear-function-equation/lesson.ko.json 결과:

남은 일