02 MAKE무엇을 만들었는가

교사를 1차 사용자로 둔 ML 교육 도구

경사하강법을 실시간으로 만지게 하는 교육 도구. 타깃을 학생이 아니라 교사로 두 번 고쳐 잡았다.


Decisions

02

제약

로그인·설치 없이 링크만으로 교실에서 열려야 했다. 그 제약이 기술 선택을 결정했다.

포기한 것

Flutter 프로토타입을 만들어 비교한 뒤 버렸다. 네이티브 배포에는 맞지만 무설치 교실 도구에는 전면 재작성 비용이 남는다.

남은 것

외부 ML 라이브러리 없이 경사하강법을 from scratch로 구현한 프로토타입 2종. 아직 출품 전이고, 가장 큰 누락은 기능이 아니라 교실 시나리오다.

Next.jsPWAReactFlutter (비교 프로토타입)

PRD를 v0.1에서 v0.3까지 세 번 고쳤는데, 두 번은 기능이 아니라 타깃을 다시 자르느라 고쳤다. §3과 §4를 통째로 다시 썼다.

처음 잡은 타깃은 "코드가 장벽인 사람"이었다. 약하다. 동기로 사람을 묶으면 쓸 이유가 "관심 있어서"가 되고, 관심은 도구를 채택시키지 않는다.

날카롭게 자른 결과는 이것이다 — 교실에서 즉시 시연이 급한 교사. 교사는 기능 개수로 도구를 고르지 않는다. 마찰과 위험이 줄어드는지로 고른다. 학생은 1차 사용자가 아니라 수혜자다.

경사하강법, 과적합·과소적합, 편향-분산 트레이드오프 — 가르치려는 직관은 그대로다. 바뀐 것은 그것을 누구 손에 쥐여 주느냐다.

결정하고 닫은 것

  • 1차 사용자 = 교사, 학생은 수혜자
  • 로그인·설치 불필요 — 링크만으로 교실에서 실행(link-only)이 핵심 제약
  • 시연/프로젝터 모드는 필수 기능(must-have)
  • 학생 관리 기능은 P2(후속 단계)로 유보
  • 수익화 후순위 — 대회 출품과 포트폴리오 가치가 우선
  • 기술 경로: Next.js + PWA가 link-only·무설치 교실 도구에 더 실용적 (Flutter는 비교용으로 프로토타입만 제작)

지금 있는 것

  • PRD: ML교육앱_PRD.md — 비전·페르소나·차별화·MVP 범위·기술 아키텍처·단계 구분. v0.1 → v0.3까지 3회 개정 (타깃 정의를 두 번 도전·수정하며 §3·§4 대폭 재작성)
  • 프로토타입 2종 (둘 다 외부 ML 라이브러리 없이 경사하강법을 from scratch 구현, 실시간 시각화 + 데이터 포인트 조작 + 손실곡선 + 한국어 규칙기반 상태 설명기):
    • React/JSX: LinearRegressionLab.jsx (Next.js)
    • Flutter/Dart: linear_regression_lab.dart (비교용)

아직 검토 중인 것

기본 시각화를 넘는 기술적 깊이가 경쟁력의 조건. 후보:

  • 브라우저 내 모델 학습 (TensorFlow.js)
  • 학습 로그 기반 오개념 진단(misconception diagnosis)
  • 규칙기반 한국어 설명기를 Claude API 동적 피드백으로 교체

배운 것

  • Flutter vs Next.js 트레이드오프는 실재한다: Flutter는 네이티브 배포에 적합하나 전면 재작성이 필요하고 API용 백엔드 프록시가 여전히 남는다. 무설치·링크만으로 여는 교실 도구에는 Next.js + PWA가 실용적이었다
  • 가장 가치 있는 누락은 기능이 아니라 교실 스크립트다
educationvisualizationnextjsprototype

기록

2026.08.26에 처음 커밋됐고, 이후 2번 더 손댔습니다.

  • e359a53Content: 한국어 원고의 어투를 다듬었다
  • 029cadaTopics: a controlled axis to browse by, and a filter that costs no JavaScript
  • 411ca64Content: six entries carried over from the vault

전체 빌드 기록 →