2026년 9월 9일 수요일

[초등 수학] 몇백 + 몇백 몇십 덧셈 - 찍기 방지 원샷 세로식 인터랙티브 웹앱



오답을 찍어서 맞추는 습관은 이제 그만! — 몇백 + 몇백 몇십(받아올림 없음) 세로식 연산 웹앱

🧮 2022 개정교육과정 초등학교 3학년 1학기 수학 연산 '덧셈과 뺄셈' 단원 — 받아올림(carrying)이 없는 "몇백 + 몇백 몇십(예: 300 + 250 = 550)"을 세로식(vertical format)으로 직접 풀어보는 인터랙티브 웹앱입니다. 자릿값(place value)별 고유 색상 구분과 찍기 방지 원샷(one-shot) 입력 시스템, 아이 눈높이 오답 원인 진단 처방까지 단일 HTML 파일로 완결됩니다.

1. 3대 핵심 분석 비교표

무엇이 바뀌었나요? / 영역 초보자를 위한 쉬운 설명 이렇게 한번 써보세요!
원샷(One-shot) 입력 시스템 틀릴 때까지 숫자를 이것저것 눌러보며 찍어서 맞추는 요행을 방지합니다. 각 칸은 단 한 번만 입력되며 정오에 관계없이 다음 칸으로 즉시 이동합니다. 오답 숫자가 빨간 배경에 그대로 남아 학습자가 자신의 실수를 직관적으로 눈으로 확인하도록 지도.
자릿값(Place value) 시각화 일의 자리(빨강), 십의 자리(초록), 백의 자리(파랑)의 색상 코딩과 84px 이상의 큼직한 정사각형 터치 칸으로 공간적 자릿값을 체득합니다. 일의 자리 0도 생략하지 않고 직접 입력하게 하여 빈 자릿값의 의미를 완벽하게 정립.
맞춤형 오답 원인 진단 단순히 점수만 매기지 않고 학습 기록을 분석해 '특정 자릿수 반복 오류', '±1 착각', '일의 자리 0 실수' 등 아이 눈높이 처방을 내립니다. 평가 종료 후 '맞춤 보충 연습(5문제 미니 세트)' 버튼을 눌러 취약 자릿수를 즉시 보충.

2. 초보자를 위한 바이브 코딩 실전 사용 예시

  1. 프롬프트 복사 — 아래 '제미나이 전용 에러 제로 프롬프트' 전체를 복사합니다.
  2. 역질문 답변 — 제미나이가 묻는 화면 테마 색상과 기본 문제 수(5/10/20)에 답합니다.
  3. HTML 파일 실행 — 완성된 코드를 메모장에 붙여넣고 몇백덧셈.html로 저장한 뒤 브라우저에서 더블클릭합니다.

제미나이 전용 에러 제로 프롬프트

[역할 정의]
너는 초등학교 수학 교육과정 및 인터랙티브 웹앱 전문 프런트엔드 개발자야.
초등학교 3학년 1학기 학생들이 받아올림이 없는 "몇백 + 몇백 몇십" 덧셈을 세로식으로 직접 풀어보는 단일 HTML 웹앱을 만들어줘.

[목적 및 대상]
- 대상: 초등학교 3학년 1학기 학생
- 연산 유형: 몇백 + 몇백 몇십 (예: 300 + 250 = 550, 합은 990 이하 세 자리 수, 받아올림 없음)

[기술 조건 및 안전장치]
1. 단일 index.html 파일 완결성: 외부 서버, 데이터베이스, Node.js 없이 브라우저에서 더블클릭으로 즉시 실행되어야 한다.
2. 무설치 Web Audio API 사운드: 외부 오디오 파일 링크 없이 브라우저 내장 Web Audio API 발진기(Oscillator)로 정답("딩" 상승 화음)과 오답(부드러운 저음 톤)을 직접 합성한다.
3. CDN 및 오프라인 폴백: 파티클 효과는 canvas-confetti, 한글 글꼴은 구글 폰트(Jua)를 사용하되, 인터넷이 차단된 교실 환경에서도 CSS 애니메이션과 시스템 폰트로 100% 정상 구동되도록 폴백 처리한다.
4. 학생 개인정보 0: 학생 이름이나 식별 정보는 일절 입력받지 않으며, 모든 학습 기록은 브라우저 세션 메모리에서만 처리된다.

[문제 생성 규칙]
- generateProblem() 함수로 분리: 두 수 중 하나는 몇백(100~900 백 단위), 다른 하나는 몇백 몇십(110~990, 일의 자리가 0인 수)으로 무작위 생성.
- 순서는 뒤바뀔 수 있으며 합은 항상 990 이하 세 자리 수. 직전 문제와 동일한 수 조합 배제.

[풀이 UI 및 원샷 인터랙션]
- 세로식 구성: 피가산수 ➔ + 기호 ➔ 가로줄 ➔ 자릿수별 정사각형 네모 답안 칸(일·십·백 3개, 각 변 84px 이상).
- 자릿값 색상 구분: 백의 자리=파랑, 십의 자리=초록, 일의 자리=빨강. 현재 입력 칸은 노란색 테두리 하이라이트.
- 일의 자리부터 입력: 오른쪽(일의 자리)부터 한 칸씩 화면 숫자판(0~9) 또는 키보드로 입력. 답의 일의 자리 0도 직접 입력.
- 찍기 방지 원샷 입력: 숫자를 누르면 정답/오답 판정 후 즉시 다음 칸으로 자동 이동(재입력 불가). 맞으면 초록 채움, 틀리면 빨간 배경+좌우 흔들림(shake), 오답 숫자는 그대로 표시.
- 힌트 모드: 2칸 이상 오답 시 힌트 버튼 안내. 힌트 클릭 시 십의 자리 ➔ 백의 자리 순서로 계산 과정을 노란색 플래시 애니메이션으로 표시.

[결과 화면 및 오답 분석]
- 요약 카드: 맞힌 문제 수, 틀린 문제 수, 힌트 사용 횟수.
- 맞춤형 원인 진단:
  * 특정 자릿수 반복 오류: 해당 자릿값 보충 연습 안내
  * 자릿수 어긋남: 자릿값 색상을 짚어가며 읽는 습관 안내
  * ±1 착각: "받아올림을 미리 반영한 착각이에요. 각 자리끼리만 더해보세요!" 안내
  * 일의 자리 0 실수: 빈 자릿값 0 확인 습관 안내
- "맞춤 보충 연습(5문제)" 버튼 및 오답 복습 기능 탑재.

[❓ 역질문 유도]
코드를 즉시 작성하지 말고, 아래 3가지 질문을 먼저 나에게 던져줘:
1. 기본 문제 수는 5문제, 10문제, 20문제 중 어떤 것을 기본 선택값으로 할까요?
2. 숫자판 버튼의 크기와 글자 크기를 태블릿 터치에 최적화하여 초대형으로 배치할까요?
3. 전체 정답 시 팡파르 효과음과 함께 축하 파티클을 3초간 지속할까요?

📚 기술·교육 참고 링크

  • 2022 개정 초등학교 수학과 교육과정: 3학년 1학기 '덧셈과 뺄셈' 성취기준 [4수01-05]
  • Web Audio API 오실레이터 사운드 합성 표준 명세서