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(비교용)
- React/JSX:
아직 검토 중인 것
기본 시각화를 넘는 기술적 깊이가 경쟁력의 조건. 후보:
- 브라우저 내 모델 학습 (TensorFlow.js)
- 학습 로그 기반 오개념 진단(misconception diagnosis)
- 규칙기반 한국어 설명기를 Claude API 동적 피드백으로 교체
배운 것
- Flutter vs Next.js 트레이드오프는 실재한다: Flutter는 네이티브 배포에 적합하나 전면 재작성이 필요하고 API용 백엔드 프록시가 여전히 남는다. 무설치·링크만으로 여는 교실 도구에는 Next.js + PWA가 실용적이었다
- 가장 가치 있는 누락은 기능이 아니라 교실 스크립트다
educationvisualizationnextjsprototype