교사는 관리코드 10자리, 학생은 참여코드 6자리와 우리 모둠 비밀번호 4자리를 씁니다. 회원가입도, 학생 명단 입력도 없습니다. 비밀번호는 수업을 만들 때 모둠마다 자동으로 발급되니 교사가 정할 것도 없습니다. 수업을 하나 만들면 모둠 데이터·보고서·상호 피드백이 한곳에 모이고, 전자칠판에는 발표 화면이 그대로 따라옵니다.
설치가 부담스러우면 여기부터 — 간편 모드. Supabase 도, 참여코드도, 인터넷 서버도 쓰지 않습니다. 교사가 만든 수업 꾸러미 파일(.json) 을 학생이 올리면 실험 안내·데이터 표·데이터 실험실·보고서·개념 확인이 그대로 열리고, 학생은 다 한 것을 작업 파일(.html) 하나로 내려받아 냅니다. 교사는 그 파일들을 모아 반 전체 분석과 생기부 자료까지 뽑습니다. 처음 쓰시는 분께는 이쪽을 먼저 권합니다 — 두 가지 쓰는 법 →
MBL 센서 실험 한 차시를, 준비부터 발표까지 한 화면에서 돌리는 도구입니다.
교사가 실험을 고르면 데이터 입력표와 보고서 질문이 자동으로 채워지고, 참여코드 6자리가 발급됩니다. 학생은 그 코드를 넣고 모둠을 고른 뒤 측정값을 적습니다. 값을 적는 즉시 그래프가 그려지고, 교사 대시보드와 전자칠판 발표 화면에 몇 초 안에 나타납니다.
계정이 없습니다. 학급·학생 명단을 미리 넣을 필요가 없습니다. 교사에게는 관리코드 10자리, 학생에게는 참여코드 6자리 와 모둠 비밀번호 4자리 뿐입니다. 비밀번호는 수업을 만들 때 모둠마다 자동으로 만들어져 교사 화면에 표로 나오므로, 칠판에 띄워 읽어 주기만 하면 됩니다(C. 모둠 비밀번호). 코드에는 헷갈리는 O·0·I·1·L 이 쓰이지 않습니다.
코드만 있으면 폰·크롬북 어디서나 바로 들어옵니다.
모둠이 값을 저장하면 교사·발표 화면이 몇 초 안에 바뀝니다.
전자칠판 전용 큰 글씨 화면. 발표 모둠을 눌러 전환합니다.
인터넷이 끊기면 임시 저장하고, 돌아오면 자동으로 보냅니다.
이지메이커·서울시교육청 사례와 2022 개정 교과서 수록 탐구를 성취기준·센서와 함께 담았습니다.
GitHub Pages + Supabase 무료 티어. 한 차시 전송량 10MB 안팎입니다.
남의 모둠 자료를 지우거나 고칠 수 없습니다. 같은 기기는 한 번만 묻습니다.
수업은 60일만 보관합니다. 필요하면 [30일 연장], 먼저 지우려면 [지금 삭제].
물어보기가 아닙니다. 우리 해석을 먼저 적어야 프롬프트가 완성되고, AI 답은 우리 데이터로 검증합니다.
같은 허브를 두 가지 방식으로 씁니다. 준비가 아예 없는 쪽이 간편 모드이고, 이쪽을 먼저 권합니다. 오늘 당장 한 차시를 돌릴 수 있고, 학교 계정·망 정책에 걸릴 것이 없습니다. 실시간 모드는 Supabase 를 처음 한 번 설치해야 열리지만, 그 대신 모둠 공유·반 전체 보기·전자칠판 발표가 살아납니다.
준비 0분. 주소만 열면 끝입니다. 학생이 한 것은 그 기기와 작업 파일 하나에만 남고, 서버로는 아무것도 나가지 않습니다. 제출은 학생이 파일을 내려받아 냅니다.
처음 한 번 10분. 학교 Supabase 하나를 만들고 config.js 두 줄을 채웁니다. 그 뒤로는 모둠이 저장하는 즉시 교사·전자칠판 화면이 따라옵니다.
| 무엇 | 간편 모드 (추천) | 실시간 모드 |
|---|---|---|
| 준비 | 없습니다. Supabase 도 config.js 도 필요 없습니다 | Supabase 프로젝트 1개 + schema.sql 1회 실행 + config.js 두 줄 (처음 한 번 10분) |
| 학생이 들어오는 법 | 첫 화면의 [코드 없이 시작하기] · [수업 꾸러미 파일 올리기] · [이어서 하기] 세 갈래. 반·모둠은 학생이 적습니다 | 참여코드 6자리 + 우리 모둠 비밀번호 4자리 |
| 실험 안내 · 업체별 절차 · 연결도 | 됩니다 | 됩니다 |
| 데이터 입력표 · CSV 끌어다 놓기 | 됩니다 | 됩니다 |
| 예상 그래프 · 예상 vs 실제 | 됩니다 | 됩니다 |
| 데이터 실험실 (축·변환·파생열·구간) | 됩니다 | 됩니다 |
| AI와 협업 탐구 | 됩니다 | 됩니다 |
| 보고서 · 개념 확인 | 됩니다. 개념 확인은 그 기기에서 바로 채점합니다 | 됩니다. 채점은 서버에서 하고 정답은 학생 화면으로 내려가지 않습니다 |
| 모둠 공유 · 별점 | 안 됩니다 — 탭이 아예 나오지 않습니다 | 됩니다 (② 모둠 공유 단계) |
| 데이터 실험실 [우리 반 전체] | 안 됩니다 — 까닭 한 줄만 나옵니다 | 됩니다 (② 단계부터) |
| 전자칠판 발표 모드 | 안 됩니다 | 됩니다 (③ 발표) |
| 교사 실시간 현황 | 안 됩니다. 수업이 끝난 뒤 파일을 합쳐서 봅니다 | 몇 초 안에 대시보드에 나타납니다 |
| 자료가 남는 곳 | 학생 기기(자동저장) + 작업 파일 .html | 학교 Supabase (60일 보관, 연장·삭제 가능) |
| 제출 | 학생이 작업 파일을 내려받아 클래스룸·하이클래스·메일 등 무엇으로든 냅니다 | 저장하는 즉시 교사 화면에 모입니다 (따로 낼 것이 없습니다) |
| 반 전체 분석 · 생기부 | 교사가 [제출된 보고서 합치기] 로 파일들을 모은 뒤 [생기부 자료 내보내기] | 대시보드에서 바로 [생기부 자료 내보내기] |
| 이럴 때 고르세요 | 오늘 당장 해 보고 싶을 때 · 학교 망·계정 정책이 까다로울 때 · 반마다 진도가 다를 때 · 연수나 공개 수업 · 학생 자료를 밖에 두고 싶지 않을 때 | 한 반이 같은 시간에 함께할 때 · 발표까지 하는 차시 · 모둠끼리 견주게 하고 싶을 때 · 여러 반을 묶어 보고 싶을 때 |
교사가 파일 하나를 나눠 주고, 학생이 파일 하나를 내고, 교사가 그 파일들을 합쳐 봅니다. 오가는 것은 이 두 파일뿐입니다.
teacher.html 에서 평소처럼 실험을 고르고, 업체·절차·보고서 질문·개념 확인 문항을 손봅니다. 그런 다음 [수업 꾸러미 내려받기] 를 누르면 지금 화면에 입력된 그대로 .json 파일 한 개가 내려옵니다. JSON 을 손으로 짤 일은 없습니다.
이미 만들어 둔 실시간 수업이 있다면 그 수업의 양식을 그대로 꾸러미로 뽑을 수도 있고, 다른 학교 선생님이 보내 준 꾸러미를 다시 올려 수업 만들기 화면을 채울 수도 있습니다. 서로 파일로 주고받는 셈입니다.
클래스룸·하이클래스·패들렛·메신저·USB — 무엇이든 파일 하나를 나눠 줄 수 있으면 됩니다. 함께 알려 줄 것은 이 허브 주소 하나뿐입니다.
학생은 주소를 열고 첫 화면 “참여코드가 없나요?” 에서 [수업 꾸러미 파일 올리기] 를 눌러 받은 .json 을 고릅니다. 실험 제목·절차·준비물·데이터 입력표·보고서 질문·개념 확인이 그대로 세팅됩니다. 이어서 반과 모둠만 정하면 시작입니다(반은 선택).
꾸러미가 없어도 됩니다 — [코드 없이 시작하기] 로 실험 도감에서 직접 골라 시작해도 똑같이 굴러갑니다.
실험 안내(업체별 절차)·데이터 입력표·CSV 끌어다 놓기·예상 그래프·데이터 실험실·AI와 협업 탐구·보고서·개념 확인이 실시간 모드와 똑같이 동작합니다. 서버를 쓰지 않을 뿐입니다.
화면 맨 위에는 간편 모드 띠가 늘 떠 있습니다 — 왼쪽에 간편 모드 · 서버를 쓰지 않습니다, 가운데에 저장 상태, 오른쪽에 [지금까지 한 것 내려받기].
이 한 걸음을 빠뜨리면 수업이 통째로 사라집니다. [지금까지 한 것 내려받기] 를 누르면 표·그래프·예상·분석 기록·보고서·개념 확인 결과가 전부 담긴 .html 한 개가 내려옵니다. 그 파일을 클래스룸이든 하이클래스든 평소 내던 곳에 그대로 내면 됩니다.
파일 이름은 시스템이 짓습니다 — 2학년3반_3모둠_물과식용유의비열비교_20260822.html. 학생이 이름을 바꾸지 않게 일러 주세요. 교사가 그 이름으로 찾습니다.
teacher.html 의 [제출된 보고서 합치기] 에 받은 .html 파일들을 한꺼번에 끌어다 놓습니다(여러 개를 골라도 됩니다). 각 파일 안에 심어 둔 기록을 읽어 모둠별로 정리해 줍니다.
보여 주는 것은 반 전체 산점도(모둠 색)와 전체 추세선, 모둠별 기울기·R² 표, 보고서 문항별 모둠 답변 나란히 보기, 개념 확인 문항별 정답률, 제출·미제출 명단 입니다. 실시간 모드의 반 전체 보기 와 같은 화면을 파일로 다시 만든 것입니다.
같은 모둠 파일이 두 번 들어오면 저장 시각이 늦은 쪽을 쓰고 그 사실을 알려 줍니다. 형식이 아닌 파일은 건너뛰고 어떤 파일이 왜 빠졌는지 적어 줍니다.
합쳐 놓은 자리에서 [생기부 자료 내보내기] 가 그대로 됩니다. 나오는 파일은 실시간 모드와 똑같은 모양입니다(C. 생기부 내보내기).
| 수업 꾸러미 | 작업 파일 | |
|---|---|---|
| 확장자 | .json | .html |
| 누가 → 누구에게 | 교사 → 학생 | 학생 → 교사 |
| 만드는 곳 | teacher.html [수업 꾸러미 내려받기] | index.html [지금까지 한 것 내려받기] |
| 안에 든 것 | 실험 제목·expId·업체·절차·준비물·데이터 입력표 규격·보고서 질문·개념 확인 문항·AI 프롬프트 틀 | 꾸러미 전부 + 우리 모둠·측정값·메모·예상·분석 기록·보고서 답·개념 확인 결과·받은 별점(있으면) |
| 파일 이름 | 수업꾸러미_2학년3반_물과식용유의비열비교.json | 2학년3반_3모둠_물과식용유의비열비교_20260822.html — 시스템이 짓습니다 |
| 다시 올리면 | 수업 만들기 화면이 그대로 채워집니다 | 하던 데서 이어서 합니다 / 교사 화면에서 합쳐집니다 |
작업 파일 하나가 세 몫을 합니다. ① 그대로 열면 표지(학교·반·모둠·실험명·날짜)부터 준비물·절차·데이터 표·그래프·예상 vs 실제·분석 기록·보고서 문답·개념 확인 결과·AI 협업 기록까지 읽히는 보고서이고, ② 첫 화면 [이어서 하기] 로 올리면 하던 작업이 그대로 복원되며, ③ 교사가 [제출된 보고서 합치기] 로 모으면 반 전체 분석의 재료가 됩니다.
인쇄로 PDF 도 됩니다. 작업 파일에는 인쇄용 스타일이 들어 있어, 브라우저에서 열고 Ctrl+P(맥은 ⌘+P) → PDF 로 저장 하면 그대로 제출용 보고서가 됩니다. 그래프도 함께 인쇄됩니다. 파일 안에는 외부에서 불러오는 것이 하나도 없어, 인터넷이 없는 자리에서도 그대로 열립니다(측정 몇 줄짜리가 10KB 안팎).
평가를 담아 되돌려 보내는 길도 이 파일입니다. 교사가 합치기 화면에서 채점하면 같은 작업 파일에 선생님 평가 카드가 얹혀 …_평가.html 로 다시 내려받아집니다. 학생은 그것을 열기만 하면 항목별 점수와 선생님 문장을 봅니다(C. 채점과 서술 피드백). 교사가 수업 꾸러미에 평가 기준표를 담아 두면 그 기준이 학생 작업 파일을 거쳐 합치기 화면까지 따라옵니다.
학생이 한 기록은 파일 안 <script type="application/json" id="mbl-work"> 에 그대로 담깁니다. 교사 화면은 HTML 을 뒤지지 않고 이 자리의 글만 뽑아 읽으므로, 학생이 파일을 브라우저에서 열어 보거나 이름을 바꿔도 합치기에는 지장이 없습니다(다만 이름은 그대로 두는 편이 교사가 찾기에 좋습니다).
| 띠 색 | 화면에 나오는 말 | 뜻 |
|---|---|---|
| 주황 | 아직 내려받지 않았습니다 · 마지막 저장 14:23 | 기기에는 저장돼 있지만 낼 파일은 아직 없습니다. |
| 초록 | 14:31 에 내려받음 | 작업 파일이 기기에 저장됐습니다. 이제 내면 됩니다. |
| 다시 주황 | 내려받은 뒤 무언가를 더 입력하면 되돌아갑니다 | 바뀐 만큼 다시 내려받아야 합니다. |
보고서를 제출 상태로 바꾸면 화면이 크게 한 번 더 알려 줍니다. 그리고 내려받지 않은 변경이 있는 채로 창을 닫으려 하면 브라우저가 한 번 붙잡습니다. 그래도 학생은 잊습니다 — 마치기 5분 전에 “띠가 초록인 사람 손 들어 보세요” 한마디가 가장 확실합니다.
보고서·데이터표·예상·AI 기록은 입력할 때마다 그 기기에 자동저장됩니다. 다시 들어왔을 때 저장본이 화면보다 새로우면 “이 기기에 자동저장된 내용이 있습니다 — [불러오기] / [새로 시작]” 을 물어봅니다. 묻지 않고 조용히 덮어쓰지 않으므로, 새로 시작하려던 학생이 지난 시간 것에 걸려 넘어지지 않습니다.
보고서를 제출 할 때 빈 필수 문항이 있으면 막고, 몇 번 문항이 비었는지 짚어 그 칸으로 스크롤해 빨갛게 표시합니다. 임시 저장은 빈칸이어도 됩니다 — 쓰다 만 것을 저장하지 못해 잃는 일이 없게 했습니다.
“오늘은 인터넷 서버를 쓰지 않습니다. 여러분이 적는 것은 지금 쓰는 이 기기에만 남아요. 그래서 마지막에 화면 맨 위 [지금까지 한 것 내려받기] 를 꼭 눌러야 합니다. 그 파일 하나에 우리 표, 그래프, 보고서, 개념 확인까지 전부 들어 있어요. 그 파일을 내는 것이 제출입니다. 파일 이름은 저절로 지어지니 바꾸지 마세요 — 선생님이 그 이름으로 찾습니다. 다 못 했으면 그 파일을 잘 두었다가, 다음 시간에 첫 화면 [이어서 하기] 로 올리면 하던 데서 이어집니다.”
“화면 맨 위 띠를 보세요. 주황색이면 아직 낸 것이 없다는 뜻이고, 초록색이면 파일이 내 기기에 저장됐다는 뜻입니다. 나가기 전에 초록색인지 꼭 확인하세요.”
한 문장 더 — “오늘은 모둠 공유와 발표 화면이 없습니다. 다른 모둠 그래프는 선생님이 파일들을 합쳐 다음 시간에 함께 보여 주실 거예요.”
아래 열 개가 전부입니다. 모두 같은 폴더에 나란히 두세요.
| 파일 | 무엇을 하나 |
|---|---|
config.js | ★ 학교마다 고치는 단 하나의 파일. 우리 학교 Supabase 주소·키와 학교·교사 이름 |
index.html | 학생용 허브. 참여코드 입력 → 모둠 선택 → 데이터 입력표 → 데이터 실험실(축 바꾸기·변환·반 전체·AI와 협업 탐구) → 보고서 → 모둠 공유·별점 |
teacher.html | 교사용 대시보드. 실험 고르기 → 수업 만들기(참여코드 발급) → 단계 전환 → 모둠 현황 |
present.html | 발표 모드. 전자칠판 전용. 참여코드만 넣으면 교사 조작을 그대로 따라갑니다 |
manual.html | 지금 보고 계신 이 설명서 |
hub.js | Supabase 데이터 레이어(전역 Hub). 변경 감지·오프라인 임시 저장 담당. 여기에는 주소·키를 적지 않습니다 |
lab-data.js | 실험 도감(전역 LAB). 실험 49건 · 센서 24종 · 성취기준 87개 · 단원 23개. 실험마다 합치기 값어치(pool)와 분석 레시피(analysis) 포함 |
sensorkit.js | 센서 연결 엔진(전역 SensorKit). 유선(웹 시리얼)·무선(웹 블루투스)·시험용 모의 장치와 줄 형식 자동 판별. 없으면 [센서 연결] 자리만 나오지 않습니다 |
dashkit.js | 대시보드 엔진(전역 DashKit). 블록을 골라 우리 반 자료로 한 장을 만들고 혼자 열리는 HTML 로 내보냅니다. 없으면 대시보드 만들기 자리만 나오지 않습니다 |
schema.sql | Supabase 테이블·보안 정책·RPC 전체. 처음 한 번 실행합니다(여러 번 해도 안전) |
assets/ 폴더의 사진 10장은 있으면 쓰고, 없으면 자리 안내만 보이도록 되어 있어 지워도 화면이 깨지지 않습니다. 이 설명서에 넣을 화면 사진도 같은 폴더에 두면 됩니다(맨 아래 스크린샷 넣는 법).
실험별 장치 연결 다이어그램과 결과 그래프 예시는 diagrams.js · graphs.js 에 들어 있습니다. 두 파일이 없어도 나머지는 그대로 동작하고, 그림 자리만 나오지 않습니다. 앱 소개 페이지 about.html 도 같은 폴더에 함께 둡니다.
외부에서 불러오는 것은 하나뿐입니다. sensorkit.js 는 학생이 무선(블루투스)을 고른 그 순간에만 이지메이커 블루투스 SDK 를 인터넷에서 한 번 받아 옵니다. 유선·모의 장치·CSV·직접 입력은 의존성이 0 이라 인터넷이 없어도 됩니다(C. 센서 직접 연결).
config.js 와 schema.sql 은 없어도 됩니다. 연결 정보가 비어 있으면 실시간 모드만 잠기고, 첫 화면의 세 갈래(코드 없이 시작 · 꾸러미 올리기 · 이어서 하기)는 그대로 열립니다. 이때 교실에서 오가는 파일은 수업 꾸러미 .json 과 작업 파일 .html 둘뿐입니다(A. 오가는 파일 두 가지).supabase-js → lab-data.js → config.js → hub.js 순서로 읽습니다. config.js 가 hub.js 보다 뒤에 있으면 연결 정보를 못 읽고, lab-data.js 가 뒤에 있으면 실험 도감이 비어 보입니다. sensorkit.js · dashkit.js 는 hub.js 뒤라면 어디에 두어도 됩니다.수업 한 차시는 네 단계로 흘러갑니다. 단계는 교사가 버튼 하나로 바꿉니다.
아래는 실시간 모드 기준입니다. 간편 모드 흐름은 A. 간편 모드로 한 차시 를 보세요 — 예상 그래프·CSV·데이터 실험실·AI와 협업 탐구·개념 확인·생기부 설명은 두 모드에 똑같이 적용됩니다.
teacher.html → 실험 고르기. 학년·단원·검색으로 실험을 찾아 누르면 제목·데이터 입력표·보고서 질문이 자동으로 채워집니다. 학급 이름과 모둠 수(기본 7)를 정하고 수업 만들기 를 누르세요.
화면에 참여코드 6자리와 관리코드 10자리가 나옵니다. 참여코드는 칠판에 크게 적고, 관리코드는 교사만 보관합니다. 관리코드는 이 브라우저의 mbl_admin_codes 에 자동으로 저장되어, 다음에 열 때는 목록에서 고르기만 하면 됩니다.
이때 모둠 비밀번호 4자리도 모둠마다 함께 발급됩니다. 대시보드의 모둠 비밀번호 표에서 확인할 수 있습니다.

학생을 들여보내기 전에, 교사 화면에서 [칠판에 크게 띄우기] 를 눌러 모둠별 4자리를 보여 주세요. 각 모둠이 자기 것만 적으면 됩니다. 다 적었으면 창을 닫습니다. 아래 모둠 비밀번호 를 보세요.
학생은 index.html 에 참여코드를 넣고, 자기 모둠 번호를 고른 뒤 비밀번호 4자리를 넣습니다. 맞으면 바로 들어옵니다. 모둠 이름과 모둠원 칸은 선택입니다. 모둠원은 이름 대신 번호나 별명을 적도록 안내되어 있습니다(E. 개인정보와 안전). 같은 모둠 학생이 여러 명 들어와도 됩니다 — 같은 모둠 칸을 함께 씁니다.
한 번 맞게 넣은 비밀번호는 그 기기에 남습니다. 같은 기기에서는 다시 묻지 않습니다.

측정하기 전에, 학생 화면 위쪽 “먼저 예상해 볼까요?” 카드에서 [예상 그리기] 를 눌러 결과를 손가락으로 훑어 그립니다. 실제 데이터가 들어오면 그래프에 점선으로 겹쳐져, 예상과 실제가 어디서 갈라졌는지 그대로 보입니다. 건너뛰어도 실험은 그대로 진행됩니다(아래 예상 그래프).
학생이 데이터 입력 탭에서 측정값을 적습니다. 숫자를 넣는 즉시 아래에 그래프가 그려지고, 데이터 저장 을 누르면 교사 화면에 나타납니다. 교사 대시보드에서 어느 모둠이 몇 줄을 넣었는지 한눈에 보입니다.
센서 프로그램에서 내보낸 CSV 파일을 표 위에 끌어다 놓으면 손으로 옮겨 적을 필요가 없습니다. 자동 수집은 한 번에 수백 줄이 나오므로, 입력표 줄 수에 맞춰 고르게 솎아 넣는 것이 기본입니다(아래 CSV 불러오기).
값을 저장했으면 데이터 실험실 탭입니다. 가로축을 시간 대신 다른 값으로 바꾸거나(옴의 법칙 → 전압), 1/거리²·1/부피 같은 변환을 걸거나, 압력×부피 같은 파생열을 만들거나, 그래프를 드래그해 한 구간만 재 봅니다. 휘어 있던 그래프가 직선이 되면서 R² 가 어떻게 올라가는지가 그대로 보입니다. 원본 표는 바뀌지 않습니다(아래 데이터 실험실).
같은 탭 맨 아래가 AI와 협업 탐구 자리입니다. 우리 모둠의 해석을 먼저 적어야 프롬프트가 완성되고, AI 답은 우리 데이터로 검증한 뒤에야 보고서에 씁니다(아래 AI와 협업 탐구).
교사가 ② 모둠 공유 를 누르면 학생 화면의 모둠 공유 탭이 열립니다. 다른 모둠의 그래프를 보고 별점과 한 줄 칭찬을 남깁니다. 자기 모둠에게는 줄 수 없습니다.
이 단계부터 데이터 실험실의 [우리 반 전체] 도 열립니다. 모든 모둠의 점을 한 산점도에 모아, 우리 모둠이 반 전체 분포의 어디쯤인지 봅니다(아래 반 전체로 보기).
전자칠판에서 present.html 을 열어 두세요(교사 화면의 발표 화면 단추). 대시보드의 모둠 카드에서 발표 를 누르면 그 모둠이 칠판 가득 뜹니다. 이전/다음 으로 그래프 → 보고서 → 별점 세 장을 넘깁니다.
발표하는 모둠이 예상을 그렸다면 발표 화면에 [📈 예상 vs 실제 보기] 단추가 함께 나옵니다. 누르면 실제 그래프 위에 예상이 점선으로 겹쳐지고, 가장 크게 빗나간 곳이 큰 동그라미로 표시됩니다. 예상을 그리지 않은 모둠에서는 이 단추도 이 장도 나오지 않아, 넘기는 장 수가 달라지지 않습니다.

자료를 낸 모둠이 둘 이상이면 [👥 반 전체 속 우리 모둠] 단추도 나옵니다. 반 전체 점 위에 발표 모둠만 크게 찍어, 반 전체 추세선과 그 모둠 추세선을 나란히 보여 줍니다(아래 반 전체로 보기).
교사가 문항을 만들어 두었다면, 학생 화면 아래 개념 확인 영역에서 각자 자기 번호와 이름을 넣고 3~5문항을 풉니다. 모둠이 아니라 개인별이므로 한 기기로 모둠원이 돌아가며 풀어도 각각 남습니다. 제출하면 바로 채점되고 해설이 뜹니다(아래 개념 확인). 대시보드에는 문항별 정답률이, 발표 화면 마지막 장에는 반 전체 정답률 한 줄이 나옵니다.
마무리 단계로 바꾸면 학생은 계속 자기 기록을 볼 수 있습니다. 수업은 만든 날부터 60일 동안 보관되고, 그 뒤에는 열리지 않습니다. 더 오래 두려면 [30일 연장], 먼저 지우려면 [지금 삭제] 입니다(E. 60일 보관 기한).
대시보드의 [생기부 자료 내보내기] 로 학생별로 묶인 Markdown 파일 한 개를 내려받습니다. 그대로 Claude 에 붙여넣어 세특 문장을 뽑을 수 있게 안내 문단이 파일 맨 앞에 들어 있습니다(아래 생기부 내보내기). 60일이 지나기 전에 받아 두세요.
실험마다 다르지만, 한 차시를 이렇게 잡으면 예상 그리기·데이터 실험실·개념 확인까지 넣고도 시간이 맞습니다. 측정 시간이 긴 실험이면 보고서와 모둠 공유를 줄이고, 그래도 모자라면 데이터 실험실을 다음 차시 도입으로 옮기세요(저장해 둔 값이 그대로 남아 있습니다).
| 시간 | 하는 일 | 누가 |
|---|---|---|
| 도입 2분 | 참여코드·모둠 비밀번호 알려 주고 입장 | 교사 → 학생 |
| 도입 3분 | 예상 그래프 먼저 그리기 — 측정 전에 결과를 예측해 그립니다 | 모둠 |
| 전개 12분 | 실험·측정 → 데이터 입력(CSV 끌어다 놓기) → 저장 | 모둠 |
| 전개 8분 | 데이터 실험실 — 분석. 축 바꾸기·변환·구간으로 곡선을 직선으로 만들고 [이 분석 저장] | 모둠 |
| 전개 6분 | 보고서 답하기 (예상을 그린 모둠은 문항이 하나 늘어납니다) | 모둠 |
| 전개 4분 | ② 모둠 공유 — 다른 모둠 그래프 보고 별점·칭찬, [우리 반 전체] 로 모아 보기 | 모둠 |
| 발표 5분 | ③ 발표 — 그래프 → (예상 vs 실제) → (반 전체 속 우리 모둠) → 보고서 → 별점 | 전자칠판 |
| 정리 5분 | 개념 확인 3문항 — 개인별로 각자 풀고 즉시 채점·해설. 이어 문항별 응답 분포를 칠판에 크게 띄워 [다시 짚을 문항] 하나만 다시 짚습니다(C. 문항별 응답 분포) | 학생 개인 |
간편 모드로 하는 날은 두 줄을 바꿔 넣습니다. 전개 4분 모둠 공유와 발표 5분은 간편 모드에 없습니다(A. 두 가지 쓰는 법). 그 9분을 정리 3분 “작업 파일 내려받아 제출” 로 바꾸고, 남는 6분은 데이터 실험실이나 AI와 협업 탐구에 얹으세요. 다른 모둠 그래프는 다음 시간 도입에 교사가 합쳐 놓은 반 전체 산점도로 보여 주면 됩니다.
AI와 협업 탐구 5분은 어디에 넣나요. 위 표는 이미 45분이 꽉 차 있으므로 더하지 말고 바꿔 넣으세요. 자리는 두 곳입니다.
| 넣는 자리 | 어떻게 | 고르는 국면 |
|---|---|---|
| 분석 뒤 5분 (전개 8분 → 5+5분) | 데이터 실험실 분석을 5분으로 줄이고 이어서 5분. 실험실 화면 그대로라 옮겨 다니지 않아 가장 매끄럽습니다 | 데이터 해석 겨루기 |
| 정리 5분 (개념 확인 대신) | 개념 확인을 쓰지 않는 차시라면 마무리 5분을 그대로 씁니다. 결론까지 쓴 뒤라 반박이 잘 걸립니다 | 우리 결론 반박해 보기 · 다음 탐구 제안받기 |
측정이 긴 실험이면 다음 차시 도입 5분으로 넘기세요 — 저장해 둔 데이터와 분석이 그대로 있어 프롬프트가 똑같이 조립됩니다. 측정 전 도입에 탐구 설계 점검 국면으로 3분만 쓰는 방법도 있습니다(그날은 해석 겨루기를 생략합니다).
같은 실험이라도 장비를 다루는 법이 완전히 다릅니다. 이지메이커는 보드에 센서를 꽂아 쓰고, 사이언스큐브는 센서 자체가 블루투스라 보드가 없습니다. 그래서 “센서를 연결한다” 한 줄로는 어느 쪽도 따라 할 수 없어, 실험마다 업체별 절차를 따로 적어 두었습니다.
보드(메인·미니·나노)에 센서를 연결합니다. 유선은 블록코딩으로 포트를 지정해 보드에 올려 두어야 하고, 무선 나노보드는 보드 1개에 센서 1개라 코딩이 필요 없습니다. 소프트웨어는 ezon.ai.
보드도 코딩도 없습니다. 센서 전원을 짧게 한 번 눌러 켜고, 소프트웨어에서 센서 몸통의 번호를 찾아 짝지으면 끝입니다. 소프트웨어는 사이언스#.
| 무엇이 다른가 | 이지메이커 | 사이언스큐브 |
|---|---|---|
| 보드가 필요한가 | 필요합니다. 유선은 메인보드·미니보드에 D0~D4 · A0 · A1 · I2C · UART 로 센서를 연결하고, 무선은 나노보드 1개에 센서 1개 + 배터리 | 필요 없습니다. 무선 센서 자체가 블루투스라 인터페이스도 보드도 없이 바로 연결됩니다(유선 라인만 인터페이스가 필요할 수 있습니다) |
| 블록코딩 | 유선은 필요합니다 — 어느 포트에 무슨 센서를 꽂았는지 블록으로 지정해 보드에 업로드합니다. 교사가 미리 짜서 조별 보드에 올려 두는 것을 권합니다. 무선 나노보드는 필요 없습니다 | 없습니다. 코딩 단계가 아예 나오지 않습니다 |
| 소프트웨어 | ezon.ai (웹앱, 설치 불필요) 접속 → 프로젝트 만들기 → 보드 연결 → 연결한 센서 고르기 → 수집 주기 설정( 1000ms = 1초) → [수집 시작] → [수집 중지] → CSV 내려받기·구글 시트 전송 | 사이언스# [연결] → 블루투스 인터페이스 추가 → 장치 추가 → 모든 장치 표시 → 센서 번호로 짝짓기(페어링) → 수집 시간·주기 설정 → [시작] → [정지] |
| 켜기 · 영점 잡기 | 보드에 배터리나 케이블을 연결하면 켜집니다. 영점은 소프트웨어에서 잡습니다 | 전원 버튼 짧게 1번 = 켜기, 2번 연속 = 영점(0점). 힘·압력처럼 기준을 맞춰야 하는 실험은 재기 직전에 두 번 누릅니다 |
| 수동 수집 | 수동 모드 — 부피·거리·저항처럼 센서가 모르는 값을 학생이 직접 넣으면서 한 점씩 측정합니다 | 수동 수집 모드 — X축 값을 학생이 직접 넣습니다 |
| 그 밖에 | 메인보드 + SD카드 + 배터리면 노트북 없이 독립 기록이 됩니다(감압 용기처럼 케이블을 뺄 수 없는 곳) | 데이터 변환·추세선·결정계수(R²)·영역을 골라 회귀하기 같은 분석 기능이 강합니다 |
보일 법칙(부피)·거리별 조도(거리)·저항별 전류(저항)처럼 가로축 값을 사람이 정하는 실험은 두 업체 모두 수동 수집으로 잡아 두었습니다. 자동으로 초 단위 기록을 남기면 가로축이 시간이 되어 버려 원하는 그래프가 나오지 않기 때문입니다.
교사 대시보드 1단계 · 실험 고르기 맨 위에 쓰는 센서 칸이 있습니다. 여기서 업체를 고르면 그 아래 실험 절차와 준비물이 그 업체 것으로 바뀝니다. 이지메이커를 골랐으면 “보드 D0 포트에 …를 연결한다”, “(교사 준비) 블록코딩을 미리 업로드해 둔다” 처럼 나오고, 사이언스큐브를 골랐으면 “전원을 짧게 한 번 눌러 켠다”, “사이언스#에서 센서 번호를 확인해 짝짓는다” 처럼 나옵니다. 이 절차가 학생 화면의 실험 안내에 그대로 갑니다.
준비물도 마찬가지입니다. 공통 준비물은 그대로 두고, 그 업체에만 필요한 것(메인보드 1대와 연결 케이블 2개 / 무선 온도 센서 2개 — 보드 불필요)이 덧붙어 나옵니다.
고른 업체는 이 브라우저에 기억되어 다음에 수업을 만들 때도 그대로 쓰입니다. 학교 장비는 한 번 정하면 바뀌지 않으니, 처음 한 번만 고르면 됩니다. 아직 업체별 절차가 적히지 않은 실험에서는 업체를 가리지 않는 기본 절차가 대신 나오므로 비어 보이는 일은 없습니다.
업체마다 파는 센서가 다릅니다. 실험에 쓰이는 센서가 하나라도 없으면 그 실험은 그 업체 장비로 할 수 없습니다. 실험 49건 가운데 이지메이커로 41건, 사이언스큐브로 47건, 둘 다 되는 것이 39건입니다.
| 없는 센서 | 어느 쪽에 없나 | 그래서 이 실험은 |
|---|---|---|
| 힘 · 가속도 | 이지메이커에 없습니다 | 마찰력은 무엇에 따라 달라질까 — 사이언스큐브로만 할 수 있습니다 |
| 무게 · 질량 | 사이언스큐브에 없습니다 | 손소독제는 어디로 사라졌을까, 철 솜을 태우면 무거워질까 — 이지메이커로만 할 수 있습니다 |
| 포토게이트 · 심박 · 염도 | 이지메이커에 없습니다 | 자유 낙하하는 쇠구슬의 순간 속력, 운동을 하면 심장은 얼마나 빨리 뛸까, 바닷물의 염분 차이 — 사이언스큐브로만 |
| 용존산소 · 산소 · 자외선 · 방사선 | 이지메이커에 없습니다 | 지금 도감에 이 센서만 쓰는 실험은 없지만, 실험을 새로 넣을 때는 확인이 필요합니다 |
lab-data.js 의 센서마다 업체별 가격(ezw · ezn · scw · scl)이 적혀 있고, 그 업체 가격이 하나도 없으면 “취급하지 않음”으로 봅니다. 콘솔에서 LAB.vendorOk('sm-04','ez') 로 한 실험을, LAB.byVendor('sc') 로 그 업체로 가능한 실험 전부를 확인할 수 있습니다.학교 사정에 따라 절차가 달라질 수 있습니다 — 보드가 모자라 두 모둠이 한 대를 쓰거나, 블록코딩을 학생이 직접 짜 보게 하거나, 실험 장소가 다르거나. 수업을 만들 때는 실험 절차와 준비물 칸에서, 수업 도중에는 대시보드의 실험 절차 고치기 칸에서 단계 하나가 카드 한 장으로 나옵니다. 글을 고치고 ▲ ▼ 로 순서를 바꾼 뒤 저장하면 학생 화면이 곧바로 바뀝니다. 비어 있는 단계는 저장할 때 저절로 빠지고, [되돌리기] 를 누르면 그 업체의 원래 절차가 다시 들어옵니다. 보고서 질문을 고치는 것과 같은 방식입니다.
lab-data.js)의 원래 절차는 손대지 않고, 그 수업의 양식에만 따로 저장합니다. 그래서 다음 반에서 같은 실험으로 수업을 새로 만들면 원래 절차가 다시 나옵니다. 모든 반에 계속 쓸 절차라면 F. 실험 도감 고치기 처럼 lab-data.js 자체를 고치세요.말로만 “전류 센서는 직렬로, 전압 센서는 병렬로” 하면 교실에서 반드시 한두 모둠이 거꾸로 답니다. 그래서 실험에 따라 장치 연결 다이어그램과 이런 모양이 나옵니다 하는 결과 그래프 예시를 그림으로 넣었습니다. 학생 화면의 실험 안내 탭과 실험 도감 상세에 절차와 함께 나옵니다.
연결도는 어느 자리에 무엇을 대는지(옴의 법칙 회로, 보일 법칙 주사기, 광합성 수조, 거리와 빛의 세기 자 배치 등)를, 그래프 예시는 측정이 잘 됐을 때 어떤 곡선이 나오는지를 보여 줍니다. 그림이 준비된 실험에서만 나오고, 없는 실험에서는 자리도 생기지 않습니다. 그림은 모두 이 앱이 직접 그린 것이라 외부에서 불러오지 않고, 인터넷이 느려도 바로 뜹니다.
왜 넣었나요. 결과를 먼저 예상하고 나서 측정하면, 그래프가 “그냥 나온 그림”이 아니라 맞혀 볼 대상이 됩니다. 예상과 어긋난 자리가 곧 그 시간에 배울 지점입니다.
학생 화면의 데이터 입력표 위에 “먼저 예상해 볼까요?” 카드가 있습니다. [예상 그리기] 를 누르면 실험의 가로축·세로축(단위까지)이 그대로 들어간 빈 그래프가 열리고, 왼쪽에서 오른쪽으로 손가락이나 마우스로 훑으면 곡선이 그려집니다. 되돌리기·지우기가 있고, 계열이 둘 이상이면(예: 물·식용유) 계열을 골라 각각 그립니다.
저장한 예상은 실제 측정값과 같은 그래프에 점선으로 겹쳐지고, 예상과 가장 많이 달랐던 지점(가로축 값과 차이)이 표시됩니다. 전자칠판 발표 화면에도 예상 vs 실제 한 장이 더해집니다.
왜 넣었나요. 지금까지는 업체 프로그램에서 값을 보고 표에 손으로 옮겨 적거나, 내보낸 CSV 를 끌어다 놓았습니다. 옮겨 적는 그 5~10분이 한 차시에서 가장 아까운 시간입니다. 그래서 데이터 입력 탭의 CSV 자리 옆에 [센서 연결] 을 두었습니다. 여기서 들어온 값은 기존 표에 그대로 쌓이므로, 그래프·데이터 실험실·보고서·대시보드가 저절로 따라옵니다.
[센서 연결] 을 누르면 방식을 고릅니다 — 유선(케이블) · 무선(블루투스) · 시험용 모의 장치. 지금 쓰는 브라우저가 못 하는 방식은 흐리게 표시되고 까닭이 함께 나옵니다(숨기지 않습니다). 연결되면 계열마다 지금 값이 큰 숫자로 뜨고 작은 실시간 그래프가 함께 그려집니다.
보드를 USB 로 꽂고 [유선(케이블)] 을 누르면 브라우저가 어느 장치인지 고르는 창을 띄웁니다. 고르면 바로 값이 들어옵니다. 외부 라이브러리를 하나도 쓰지 않는 브라우저 표준 기능(웹 시리얼) 이라, 인터넷이 끊겨 있어도 됩니다.
줄 형식은 보드에 올린 블록코딩에 따라 다릅니다. 그래서 형식을 정해 두지 않고 스스로 알아내도록 만들었습니다 — 값 하나(23.5), 쉼표·탭으로 나뉜 여러 값(23.5,41.2), 맨 앞에 시각이 붙은 줄(1712345678901,412,23.5), 온도:23.5 처럼 이름이 붙은 줄, 그리고 @schema 로 시작하는 열 안내 줄을 모두 받습니다. 숫자로 읽을 수 없는 줄, 빈 줄, # 로 시작하는 줄은 조용히 건너뜁니다.
허브 없이 센서를 그 자리에서 잡습니다. 장치를 여럿 붙일 수 있고, 장치마다 이름을 붙이고 센서 종류와 수집 주기를 골라 한꺼번에 시작·정지할 수 있습니다.
lib/ezon-ble.js). 그래서 유선도 무선도 교실 인터넷과 무관하게 붙습니다. 사본이 없을 때만 원본 주소에서 받아 오고, 그것마저 안 되면 유선 · 직접 입력 · CSV 로 수업을 이어 가면 됩니다.유선(웹 시리얼)과 무선(웹 블루투스)은 브라우저가 정해 둔 기능이라, 되는 곳과 안 되는 곳이 분명합니다. 둘 다 https 주소와 학생이 직접 누르는 동작이 있어야 열립니다 — 이 허브는 GitHub Pages 라 https 는 이미 충족합니다.
| 기기 · 브라우저 | 유선(케이블) | 무선(블루투스) | 메모 |
|---|---|---|---|
| 크롬북 (Chrome) | ○ | ○ | 학교에 가장 많은 기기입니다. 둘 다 됩니다. |
| 윈도우 · 맥 노트북 (Chrome · Edge) | ○ | ○ | 교사 노트북·전자칠판 PC 도 여기에 듭니다. |
| 안드로이드 폰 · 태블릿 (Chrome) | ✗ | ○ | 케이블 연결은 열리지 않습니다. 무선만 쓰세요. |
| 아이패드 · 아이폰 (Safari · Chrome) | ✗ | ✗ | iOS 는 브라우저 종류와 상관없이 둘 다 막혀 있습니다. 직접 입력이나 CSV 를 쓰세요. |
| 파이어폭스 · 사파리 | ✗ | ✗ | 기기가 무엇이든 안 됩니다. Chrome · Edge 로 여세요. |
| 웨일북 (Whale) | 확인 필요 | 확인 필요 | 크로미움 기반이라 될 가능성이 큽니다. 화면이 흐리게 나오면 그 기기에서는 안 되는 것입니다. |
못 하는 방식은 회색으로 잠기고 까닭이 한 줄로 나옵니다. 그래서 학생이 “왜 안 눌리지” 하고 헤매지 않습니다. 어떤 기기에서든 직접 입력 · CSV 끌어다 놓기 는 늘 그대로 됩니다.
① 흘려보내며 모으기. [수집 시작] 을 누르면 값이 계속 쌓입니다. [수집 중지] 뒤 [표에 넣기] 를 누르면, 실험이 정한 줄 수(dataSpec.rows)에 맞춰 고르게 솎아 넣습니다. CSV 끌어다 놓기와 같은 규칙입니다. 필요하면 [전부 넣기] 도 있습니다.
② 한 줄씩 손으로 담기. [지금 값 한 줄 담기] 를 누르면 그 순간의 값만 한 줄 들어갑니다. 자료집 실험의 절반쯤이 이런 수동 수집입니다 — 보일의 법칙(주사기를 한 칸 누르고 값 하나), 거리에 따른 조도(자를 옮기고 값 하나), 용액 농도별 측정처럼 조건을 바꿀 때마다 한 점을 찍는 실험입니다. 이때 가로축(누른 부피·거리·농도)은 학생이 표에 직접 적고, 센서가 재는 값만 이 단추로 담으면 됩니다.
연결이 도중에 끊기면 알려 주고, 이미 모은 값은 그대로 지킵니다.
센서가 없어도 [시험용 모의 장치] 를 고르면 실험에 맞는 그럴듯한 값이 흘러 들어옵니다(가열 곡선·냉각 곡선·거리에 따른 감쇠·보일의 법칙 등을 실험의 dataSpec 을 보고 골라 만듭니다). 쓸모는 두 가지입니다.
왜 넣었나요. ezon.ai · 사이언스# 같은 프로그램이 내보낸 값을 표에 손으로 옮겨 적느라 한 차시에 5~10분이 사라집니다. 파일을 표 위에 끌어다 놓기만 하면 되도록 했습니다.
데이터 입력표 위 드롭 영역에 파일을 놓거나, [파일 불러오기] 로 고르거나, 표 값을 복사해 붙여넣어도(탭·쉼표 구분) 됩니다. 업체마다 형식이 달라 범용 파서로 만들었습니다 — 구분자(쉼표·탭·세미콜론)를 스스로 찾고, 파일 앞머리의 BOM·설명 줄·# 주석·빈 줄을 건너뛰고, 숫자 열만 골라냅니다.
열 이름을 실험의 가로축·계열과 이름이 비슷한 것끼리 자동으로 짝지어 주고, 확실하지 않으면 드롭다운으로 직접 고르게 합니다. 앞 5줄 미리보기를 확인한 뒤 [표에 넣기] 를 누릅니다. 표에 이미 값이 있으면 덮어쓸지 먼저 물어봅니다.
dataSpec.rows)에 맞춰 고르게 솎아 넣는 것이 기본이고, 원본이 몇 줄이었고 몇 줄로 줄었는지 화면에 알려 줍니다. 필요하면 [전부 넣기] 도 고를 수 있습니다.왜 넣었나요. 많은 선생님이 이미 구글 시트 한 장을 반에 열어 두고 모둠마다 자기 칸에 값을 적게 합니다. 이 방식은 잘 굴러가는데, 걷고 난 뒤가 문제였습니다 — 반 전체 산점도를 보려면 시트를 다시 손으로 갈라 옮겨야 했습니다. 그래서 이미 걷은 시트를 그대로 읽어 모둠별로 갈라 주는 자리를 교사 화면에 두었습니다. 학생에게 새로 시킬 일이 하나도 없습니다.
어디에 있나요. 교사 화면 [제출된 보고서 합치기] 안, 파일 끌어다 놓는 칸 바로 아래 [구글 시트에서 불러오기] 입니다. 작업 파일과 같은 화면·같은 분석을 받습니다 — 읽고 나면 반 전체 그래프·모둠별 기울기·제출 현황·평가 기준표·채점·생기부 내보내기가 그대로 이어집니다.
주소는 그대로 붙여넣으면 됩니다. 시트를 열어 둔 채 주소창의 주소(…/spreadsheets/d/…/edit?gid=0#gid=0)를 통째로 붙여넣으세요. 화면이 그 안에서 시트 번호와 탭 번호(gid) 를 뽑아 값만 내려받는 주소로 바꿔 부릅니다. 탭이 여러 개인 문서라면 그 탭을 열어 둔 채로 주소를 복사해야 그 탭이 읽힙니다.
선생님이 실제로 쓰시는 모양 그대로 읽습니다. 아래는 보일 법칙 수합 시트입니다 — 머리글이 두 줄이고, 첫 열의 모둠 이름은 모둠의 첫 줄에만 적혀 있으며, 마지막 열은 시트 수식이 계산한 파생값입니다. 이 세 가지가 손으로 가르기 어렵게 만드는 것들인데, 그대로 처리합니다.
| 값을 작성하세요 | 값을 작성하세요 | 절대 건들지 말 것! | |
|---|---|---|---|
| 부피(mL) | 압력(기압) | 부피 X 압력 | |
| 예시 | 60 | 0.5 | 30 |
| 42.5 | 0.7 | 29.75 | |
| 1모둠 | 60 | 0.5 | 30 |
| 53 | 0.58 | 30.74 | |
| …모둠마다 7줄, 이름은 첫 줄에만 | … | … | |
| 2모둠 | 60 | 0.51 | 30.6 |
부피(mL) 는 이름 부피 · 단위 mL 로 읽혀 그래프 축과 기울기 단위에 그대로 붙습니다.세 가지만 확인하면 끝입니다. 읽고 나면 모둠 이름이 적힌 열 · 가로축으로 쓸 열 · 이 자료의 실험 세 칸이 나옵니다. 앞의 둘은 자동으로 짐작해 두므로 대개 그대로 두면 됩니다. 실험은 골라도 되고 안 골라도 되는데, 고르면 그 실험의 보고서 질문과 합치기 안내가 함께 따라옵니다(아래 합치기 좋은 실험). 아래 미리보기에서 모둠이 제대로 갈렸는지 눈으로 확인한 뒤 [모둠으로 갈라 합치기] 를 누릅니다.
시트에는 이름을 적지 마세요. 학생 이름 대신 모둠 이름과 번호만 적게 하는 것이 이 허브 전체의 규칙입니다(E. 개인정보와 안전). 시트를 공개 공유로 열어 두는 동안에는 링크를 아는 누구나 볼 수 있으므로 특히 그렇습니다.
왜 넣었나요. 교육청·학교 계정에서 외부 공유를 정책으로 막아 둔 곳이 적지 않습니다. 그런 학교에서는 시트를 아무리 잘 걷어도 주소로는 읽을 수 없습니다. 그래서 주소를 쓰지 않는 길을 나란히 두었습니다.
쓰는 법. [구글 시트에서 불러오기] 옆 [붙여넣기로 하기] 를 누르면 붙여넣는 칸이 열립니다. 시트에서 표를 통째로 골라 복사(Ctrl+A → Ctrl+C)한 뒤 붙여넣고 [붙여넣은 표 읽기] 를 누르면 됩니다. 그 다음은 주소로 읽었을 때와 완전히 같습니다 — 열을 확인하고 [모둠으로 갈라 합치기].
"1,200" 처럼 값 안에 쉼표가 든 칸도 한 칸으로 읽습니다.붙여넣기 쪽은 인터넷으로 아무 데도 나가지 않습니다. 글자를 그 자리에서 읽어 그래프로 만들 뿐입니다. 망 정책이 까다로운 학교에서 가장 안전한 길이기도 합니다.
왜 넣었나요. 센서로 모은 값은 대개 시간에 대한 곡선으로 그려집니다. 그런데 과학에서 뜻을 읽어 내는 순간은 대부분 축을 바꾸거나 값을 변환해 곡선이 직선이 될 때입니다. 서울시교육청 자료집의 수업 사례 가운데 여럿이 바로 이 분석을 요구하는데, 그림만 보고서는 할 수 없는 일이었습니다. 그래서 학생 화면에 데이터 실험실 탭을 두었습니다. 모둠에 들어와야 열립니다.
| 자료집 사례 | 실험실에서 하는 일 | 읽어 내는 것 |
|---|---|---|
| 옴의 법칙 | 가로축을 시간 대신 전압으로 바꾸어 전압–전류 그래프를 그립니다 | 직선의 기울기 = 1/저항. 기울기의 역수가 저항값 |
| 거리와 빛의 세기 | 가로축에 1/거리² 변환을 겁니다 | 휘어 있던 그래프가 직선으로. 기울기 = 광원의 상대적 세기, 절편 = 배경 조도 |
| 보일 법칙 | 파생열로 압력 × 부피 를 만들고, 가로축에 1/부피 변환을 겁니다 | P×V 가 일정한지 눈으로 확인. 1/V–P 는 원점을 지나는 직선 |
| 광합성량 | 그래프에서 구간을 드래그해 고릅니다 | 그 구간만의 기울기 = 그 조건에서의 광합성률 |

0.72 → 0.99 로 올라갑니다.쓰는 법. 가로축 하나와 세로축(여러 개 가능)을 고르고, 축마다 변환을 겁니다 — 그대로 · 1/값 · 값² · √값 · log 값 · 1/값² · 값−최솟값. 파생열 만들기 에서는 두 열을 × ÷ + − 로 묶어 새 열을 만들고 이름을 붙일 수 있습니다(만든 열도 축으로 씁니다). 그래프를 드래그하면 그 구간만의 기울기·절편·R² 가 나오고, [구간 해제] 로 풀립니다. 점/선 보기와 추세선을 켜고 끌 수 있습니다.
무엇을 보여 주나요. 기울기 · 절편 · R² 를 단위와 함께 적어 줍니다(예: 기울기 1200 lx·cm²). 그리고 변환 전후의 R² 를 나란히 보여 줍니다 — 0.72 → 0.99 처럼 바뀌는 그 순간이 학습 지점입니다. 결과 아래에는 질문 카드 세 개(모양이 어떻게 달라졌나 · 기울기는 무엇을 뜻하나 · 벗어난 점은 왜 생겼나)가 있어, 답을 적어 두면 분석과 함께 저장됩니다.
log 는 0 이하에서, 1/값 은 0 에서 값을 만들 수 없습니다. 이럴 때는 몇 개를 뺐는지와 그 까닭을 화면에 적어 줍니다. R² 는 바꾼 뒤의 좌표에서 잰 값이라는 안내도 함께 나옵니다.[이 분석 저장] 을 누르면 어떤 축·변환·구간을 썼고 결과가 무엇이었는지가 모둠 보고서에 함께 저장됩니다(최대 5개, 넘치면 오래된 것부터 밀려납니다). 보고서 문항 목록에는 나타나지 않아 학생이 헷갈릴 일이 없고, 과정 중심 평가와 생기부의 근거가 됩니다.
왜 넣었나요. 모둠 하나의 점 여덟 개로는 추세선을 믿기 어렵습니다. 7모둠이면 표본이 일곱 배가 되고, 우리 모둠이 반 전체 분포의 어디쯤인지도 보입니다.
학생 화면. 데이터 실험실 위쪽 [우리 반 전체] 를 누르면, 모든 모둠의 점이 모둠 색으로 한 산점도에 모입니다. 반 전체 추세선은 굵게, 모둠별 추세선은 연하게 겹쳐 그리고, 모둠별 기울기·R² 표가 함께 나옵니다. 우리 모둠 점만 크게·테두리를 둘러 강조하고 “우리 모둠 기울기는 7모둠 가운데 3번째로 큽니다”처럼 순위를, “표본이 8개에서 56개로 늘었습니다”처럼 표본 수를 알려 줍니다. 계열이 둘 이상이면 어떤 계열로 볼지 고릅니다.
전자칠판. 발표 화면에도 [👥 반 전체 속 우리 모둠] 한 장이 붙습니다. 반 전체 점을 찍고 발표 모둠만 크게 강조해, 반 전체 추세선과 그 모둠 추세선을 나란히 보여 줍니다. 자료를 낸 모둠이 두 모둠 미만이면 이 장은 아예 만들어지지 않아, 넘기는 장 수가 흔들리지 않습니다(예상 vs 실제와 같은 방식입니다).
교사 화면 — 여러 반 묶어보기. 대시보드에서 이 브라우저에 보관된 관리코드 가운데 같은 실험인 수업들을 골라 한 그래프에 겹쳐 볼 수 있습니다. 반별 색으로 점을 찍고, 반별 기울기·R² 표와 전체 통합 추세선, “표본이 n개에서 m개로 늘었습니다” 안내가 나옵니다. 3반·5반·7반을 같은 실험으로 했다면 반 사이의 차이가 그대로 드러납니다. 수업이 하나뿐이면 이 영역은 나오지 않습니다.
왜 넣었나요. 반 전체로 합치는 것이 늘 이롭지는 않습니다. 모둠마다 핫플레이트 출력과 시작 온도가 다른 실험은 곡선을 겹쳐 놓아도 그냥 흩어져 보일 뿐입니다. 반대로 모둠마다 다른 조건을 골라 재는 실험은 합치는 순간 점이 촘촘해지면서 규칙이 눈에 들어옵니다. 그래서 실험 도감(lab-data.js)의 실험 49건 모두에 합치기 값어치를 매겨 두었습니다.
| 값어치 | 화면에 보이는 것 | 뜻 | 건수 |
|---|---|---|---|
| 3 | 합치기 아주 좋음 ★ (노란 뱃지) | 모둠마다 다른 조건을 재므로, 합치면 점이 이어져 규칙이 훨씬 또렷해집니다 | 14건 |
| 2 | 합치기 좋음 (초록 뱃지) | 곡선이 겹치지는 않아도, 어느 모둠에서나 같은 경향이 나오면 결론이 단단해집니다 | 25건 |
| 1 | 뱃지 없음 | 조건 차이가 커서 합쳐도 크게 이롭지 않습니다. 실험이 나쁘다는 뜻이 아닙니다 | 9건 |
어디에서 보이나요. 세 자리입니다.
「어디를 볼지」가 실은 수업의 핵심입니다. 합쳐 놓으면 눈에 띄게 어긋난 모둠이 반드시 하나둘 나옵니다. 그것을 틀렸다고 넘기지 않고 왜 그랬을까를 묻는 자리를 만들어 두려고, 실험마다 흔히 어긋나는 지점과 그 까닭을 미리 적어 두었습니다. 아래는 합치기 값어치 3 인 실험 몇 가지입니다.
| 실험 | 합칠 때의 가로축 | 왜 합치면 좋은가 | 어긋난 모둠에게 물을 것 |
|---|---|---|---|
| 전압과 전류의 관계 알아보기(옴의 법칙) 중2 · 전기와 자기 | 전압 (V) | 모둠마다 고른 전압 구간이 달라, 합치면 점이 이어져 하나의 긴 직선이 됩니다 | 기울기가 다른 모둠은 저항판을 다른 값으로 썼거나 니크롬선이 뜨거워져 저항이 커진 것 |
| 광원으로부터의 거리에 따른 빛의 세기 중2 · 별과 우주 | 거리 (cm) | 모둠마다 다른 거리를 재므로 가까운 곳부터 먼 곳까지 점이 촘촘해져 역제곱 관계가 드러납니다 | 먼 거리에서 값이 바닥에 깔린 모둠은 창가 빛이 들어온 것 |
| 주사기를 누르면 압력은 얼마나 커질까 중1 · 기체의 성질 | 기체의 부피 (mL) | 모둠마다 다른 부피를 골라 재므로 합치면 P×V 가 일정하다는 것이 훨씬 뚜렷해집니다 | 많이 누른 모둠일수록 P×V 가 작아지면 밀폐가 새는 것 |
| 용수철에 추를 매달면 얼마나 늘어날까 중1 · 힘의 작용 | 매단 추의 무게 (N) | 기울기는 제각각이어도 모두 원점을 지나는 직선이라는 것이 드러납니다 | 뒷부분이 아래로 꺾인 모둠은 탄성 한계를 넘긴 것 |
| 마찰력은 무엇에 따라 달라질까 중1 · 힘의 작용 | 나무토막 개수 (개) | 점이 수십 개로 늘어 도화지와 사포의 두 직선이 뚜렷하게 갈라집니다 | 원점보다 한참 위에서 출발한 모둠은 센서를 당긴 채 영점을 잡은 것 |
| 빛의 세기에 따른 광합성량의 변화 중2 · 식물과 에너지 | 밝기 (lx) | 광원 종류·거리가 달라 실제 밝기가 제각각인데, 밝기를 가로축에 두면 한 줄로 모입니다 | 감소량이 유난히 작은 모둠은 용기 안 온도가 올라간 것 |
| 자유 낙하하는 쇠구슬의 순간 속력 재기 중3 · 운동과 에너지 | 낙하 거리 (cm) | 모둠마다 포토게이트 높이를 달리 걸어, 합치면 속력 ∝ √거리 가 훨씬 뚜렷해집니다 | 값이 조금씩 작게 나오는 것은 공기 저항 — 어느 모둠이나 같은 쪽으로 어긋나는 것이 중요 |
왜 넣었나요. “우리 반 자료로 대시보드를 만들어 보자” 는 보통 이렇게 흘러갑니다 — AI 에게 프롬프트를 넣고 · 코드를 받아 · 메모장에 붙이고 · 확장자를 바꾸고 · 어딘가에 올립니다. 다섯 단계 가운데 과학은 하나도 없습니다. 이 허브에는 이미 진짜 자료와 그래프 엔진이 있으니, 블록만 고르면 그 자리에서 완성되게 했습니다.
어디에 있나요. 학생 화면에는 자기 모둠 자료로 만드는 자리가, 교사 화면에는 실시간 대시보드와 [제출된 보고서 합치기] 양쪽에 대시보드 만들기 상자가 있습니다. 교사 화면에서는 기준 모둠을 골라 “모둠 하나를 보는 블록”(값 카드·보고서 문답·선생님 평가)이 어느 모둠 것으로 그려질지 정합니다. 반 전체 블록은 기준 모둠과 상관없이 모든 모둠을 그립니다.
블록. 측정(값 카드·표·선그래프·산점도·막대·통계·기울기와 R²·예상 vs 실제·변환 그래프) · 반 전체(모둠 겹친 그래프·기울기 순위·우리 모둠 위치·모둠 진행 현황) · 콘텐츠(실험 개요·준비물·절차·연결도·결과 그래프 예시·보고서 문답·개념 확인·문항별 정답률·선생님 평가·AI 협업 기록·별점) · 꾸밈(큰 제목·메모·구분선). 지금 자료로 그릴 수 없는 블록은 흐리게 두고 까닭을 보여 줍니다 — “측정값을 한 줄이라도 적으면 바로 쓸 수 있습니다” 처럼.
짜 두면 남습니다. [이 구성 저장] 을 누르면 교사가 짠 구성이 그 수업에 남아 다음에 열 때 그대로 나옵니다(form.dash 자리이며 데이터베이스는 그대로입니다). 고치는 동안에는 화면이 저절로 덮어써지지 않습니다 — 질문·절차·기준표 편집기와 같은 규칙입니다. 합치기 화면에서 짠 구성은 그 화면에만 남습니다(서버에 아무것도 보내지 않습니다).
내보내기. [HTML 파일로 저장] 을 누르면 혼자 열리는 파일 하나가 됩니다 — 실행 스크립트도 외부 주소도 없는 정적 HTML 이라, 학부모 기기에서 열어도 그대로 보이고 그대로 인쇄하면 PDF 가 됩니다. [전체 화면] 은 전자칠판용이고, 테마에 아주 크게(전자칠판) 가 있습니다.
왜 넣었나요. 교실에서 학생이 생성형 AI 를 쓰는 모습은 대개 이렇습니다. “물과 식용유 비열 실험 결론 알려 줘” 를 넣고, 돌아온 문장을 보고서에 그대로 옮겨 적습니다. 자기 데이터는 한 번도 들여다보지 않았는데 결론만 그럴듯해집니다. 생각을 대신 시킨 것이고, 탐구가 아니라 대필입니다.
그래서 이 허브에는 “AI에게 물어보기” 자리가 없습니다. 대신 학생이 먼저 자기 해석을 내놓고 → AI 가 그것을 검토·반박·확장하고 → 마지막에 학생이 AI 말을 자기 데이터로 검증하는 자리를 두었습니다. 이름이 AI와 협업 탐구 인 까닭이고, 학생 화면 어디에도 “물어보기” 라는 말이 나오지 않는 까닭입니다.
학생이 묻고 AI 가 답을 준다. 학생은 받아 적는다. 남는 것은 AI 의 문장이고, 우리가 잰 값은 쓰이지 않는다.
학생이 먼저 해석을 내놓고 AI 가 따져 준다. 학생은 그 말을 우리 데이터로 검증한다. 남는 것은 학생의 판단이고, 근거는 우리 표의 수치다.
자리는 데이터 실험실 탭 맨 아래입니다. 축을 바꾸고 R² 를 올려 본 바로 그 화면에서, 방금 만든 분석을 들고 AI 와 이야기하게 됩니다.
이 기능의 전부라고 해도 좋을 장치입니다. 화면 ②번 칸(국면에 따라 우리 모둠의 해석 · 우리 계획 · 우리 결론 …)에 10글자 이상 적기 전에는 [프롬프트 복사] 단추가 눌리지 않습니다. 그 자리에는 주황색 안내가 대신 떠 있습니다 — 먼저 우리 생각을 적어야 협업이 됩니다.
불편하게 하려고 넣은 잠금이 아닙니다. 자기 생각이 없는 상태에서 나가는 프롬프트는 협업 요청이 아니라 대필 요청입니다. “먼저 적는다”가 이 활동의 정의이므로, 그것을 장치로 굳혀 둔 것입니다. 학생에게는 이렇게 설명하면 충분합니다 — “내 생각이 있어야 상대가 따져 줄 것이 생긴다.”
국면을 바꾸면 그 국면의 칸을 새로 적어야 다시 풀립니다. 국면마다 AI 에게 부탁하는 것이 다르니, 학생이 내놓아야 할 생각도 달라야 하기 때문입니다.
맨 위 ①번에서 지금 할 일을 고릅니다. 기본은 데이터 해석 겨루기 이고, 한 차시에 다섯 가지를 다 할 필요는 없습니다. 보통은 데이터 해석 겨루기 하나면 충분하고, 시간이 남거나 결론까지 쓴 모둠에게 우리 결론 반박해 보기 를 더 시키면 좋습니다.
| 국면 | 언제 | 학생이 먼저 적는 칸 | AI 에게 부탁하는 것 |
|---|---|---|---|
| 탐구 설계 점검 | 재기 전 | 우리 계획 | 바로 답하지 말고 확인 질문 2~3개를 먼저 / 같게 두어야 하는데 빠뜨린 조건 / 몇 번쯤 되풀이해 재면 좋을지 |
| 데이터 해석 겨루기 기본 · 핵심 | 데이터를 본 뒤 | 우리 모둠의 해석 | 우리 해석에서 데이터가 뒷받침하는 부분과 그렇지 못한 부분을 수치와 함께 나누기 / 같은 데이터를 다르게 볼 해석과 그 근거 / 교실에서 직접 확인할 방법 하나 |
| 차이의 원인 함께 찾기 | 예상과 다를 때 | 우리가 짐작하는 까닭 | 차이가 난 까닭 3가지를 그럴듯한 순서로 / 재는 방법 탓과 생각 자체가 달랐던 것을 나누기 / 각각 확인할 방법 |
| 우리 결론 반박해 보기 | 결론을 쓴 뒤 | 우리 결론 | 칭찬으로 시작하지 말 것 / 약한 고리 2가지 / 표본이 적어 말하기 어려운 것 / 함께 변한 것을 원인이라 말한 문장을 그대로 인용해 짚기 / 무엇을 더 재야 하는지 |
| 다음 탐구 제안받기 | 마무리할 때 | 여기까지 알아낸 것 | 45분 안에 학교 센서로 할 수 있는 다음 질문 3개 / 각각의 변인 / 우리 데이터가 이미 절반쯤 답해 놓은 것 |
③번 칸에 전문이 자동으로 조립되어 보입니다(글자 수도 함께). 학생이 따로 옮겨 적을 것은 없습니다.
| 들어가는 것 | 내용 |
|---|---|
| 맥락 | 실험명, 학년·단원, 성취기준 코드와 원문, 우리 모둠 번호, 지금 하려는 국면 |
| 우리가 잰 데이터 | 표 그대로. 줄이 많으면 앞 8줄 + “…(가운데 몇 줄 줄임)…” + 뒤 4줄 로 줄여 붙습니다 |
| 계열별 통계 | 값 개수 · 처음 · 마지막 · 평균 · 기울기 · R² |
| 데이터 실험실 | 지금 보고 있는 축·변환·구간과 그 결과, 저장해 둔 분석의 R² 0.97 → 0.92 같은 변화 |
| 예상 그래프 | 예상을 그렸다면 예상과 실제가 가장 크게 갈라진 곳 |
| 우리 모둠의 해석 | 학생이 ②번에 적은 글 (이것이 없으면 조립이 끝나지 않습니다) |
| AI 에게 주는 규칙 | 아래 다섯 줄 |
규칙은 AI 가 생각을 대신하지 못하게 막는 문장들입니다. 그대로 들어갑니다.
· 우리 대신 결론을 쓰지 마라. 결론은 우리가 고른다.
· 무엇을 말하든 위에 적힌 수치 가운데 어느 값을 근거로 삼았는지 함께 밝혀라.
· 위에 없는 값·단위·조건을 지어내지 마라. 필요하면 우리에게 되물어라.
· 확실하지 않으면 "이 데이터만으로는 알 수 없다"고 분명히 말하라.
· 중학교 ○학년이 읽을 수 있는 말로, 한 항목마다 세 문장 안쪽으로 짧게 답하라.
③번 칸은 그대로 편집칸입니다. 학생이 문장을 더하거나 지워도 되고, [원래대로 되돌리기] 를 누르면 자동 조립본으로 돌아옵니다. 고친 내용과 적던 글은 그 기기에 남아 새로고침해도 살아 있습니다(서버에는 [이 협업 기록 저장] 을 눌러야 올라갑니다).
[프롬프트 복사] 를 누르면 클립보드로 들어갑니다. 어떤 생성형 AI 든 상관없습니다 — 학교에서 쓰는 대화창에 그대로 붙여넣으면 됩니다. 복사가 막힌 기기(학교 크롬북 등)에서는 글이 저절로 모두 선택되고 Ctrl+C (맥은 ⌘+C) 를 누르세요 안내가 뜨므로, 어느 교실에서도 막히지 않습니다.
AI 답을 받았다고 끝이 아닙니다. 학생은 AI 말 가운데 우리 데이터로 확인할 수 있는 주장 하나를 골라 세 칸을 채웁니다.
| 칸 | 적는 것 |
|---|---|
| AI 가 한 말 중 확인할 주장 | AI 문장 하나를 한 문장으로 옮겨 적습니다 |
| 판정 | 맞음 · 틀림 · 우리 데이터로는 알 수 없음 셋 중 하나 |
| 그렇게 본 까닭 | 우리 표의 수치를 들어 적습니다 (예: “우리 표에서 식용유 기울기가 7.5 였기 때문”) |
3모둠 까지만 적히고, (이름은 알려 주지 않는다) 라는 문장이 함께 나갑니다. 학생이 해석 칸에 실수로 이름을 적었더라도, 모둠원 표기·모둠 이름·교사 이름은 복사할 때와 저장할 때 각각 한 번씩 걸러져 ○○ 로 바뀌고 “이름처럼 보이는 말을 ○○ 로 바꿨습니다” 표시가 학생에게 보입니다. 다만 학생이 AI 대화창에 직접 덧붙여 치는 말까지는 이 앱이 막을 수 없으니, 사진·이름·학번을 붙여넣지 않도록 한 번 일러 두세요. 생성형 AI 이용은 학교·교육청 지침(연령 기준 포함)을 먼저 확인하시기 바랍니다.[이 협업 기록 저장] 을 누르면 모둠 보고서와 함께 저장됩니다 — 국면, 우리 생각, 보낸 프롬프트, 직접 고쳤는지 여부, 고른 주장·판정·까닭, 시각까지. 최대 5개이고 넘치면 오래된 것부터 밀려납니다. 데이터 실험실의 [이 분석 저장] 과 같은 방식이라, 보고서 문항 목록에는 나타나지 않아 학생이 헷갈릴 일이 없습니다. 판정을 비운 채 저장하면 “AI 답을 받은 뒤 판정까지 채워 다시 저장하면 더 좋습니다” 라고 알려 줍니다.
교사 대시보드에는 모둠마다 협업 기록 수가 나오고, 펼치면 각 모둠의 판정과 까닭을 볼 수 있습니다. 교사에게 가장 중요한 정보는 “AI 를 썼는가” 가 아니라 “AI 말을 검증했는가” 이기 때문에, 그 두 칸을 앞세워 보여 줍니다.
[생기부 자료 내보내기] 에도 “AI와 협업한 탐구” 항목으로 함께 나갑니다 — 어떤 국면에서 무엇을 함께 따졌고, 어떤 주장을 어떻게 판정했는지가 문장으로 들어갑니다. 세특에 쓰기 좋은, 흔치 않은 근거입니다.
수업 만들기와 대시보드에 [AI와 협업 탐구 켜기] 체크박스가 있습니다. 기본은 켜짐이고, 수업 도중에도 껐다 켤 수 있습니다. 이 기능이 생기기 전에 만든 수업도 켜진 것으로 봅니다.
교사 대시보드의 프롬프트 틀 고치기 에서 다섯 국면마다 두 가지를 고쳐 배포할 수 있습니다.
| 고치는 것 | 내용 |
|---|---|
| 역할·규칙 | AI 에게 주는 역할 문단 한 개 (예: “너는 우리 모둠의 탐구 동료다. 채점자가 아니다…”) |
| 부탁 | 한 줄에 하나씩. 저장하면 프롬프트에 1. 2. 3. 으로 번호가 붙어 들어갑니다 |
보고서 질문·실험 절차를 고치는 것과 같은 편집기이고, [기본 틀로 되돌리기] 도 같은 자리에 있습니다. 다섯 국면을 다 고칠 필요는 없습니다 — 고치지 않은 국면은 기본 틀을 그대로 쓰고, 역할만 고치고 부탁은 그대로 두는 것도 됩니다. 고친 틀은 그 수업 한 건에만 적용되므로, 다음 반에서 새로 만든 수업에는 기본 틀이 다시 나옵니다.
공통 규칙 다섯 줄(결론 대신 쓰지 말 것, 근거 수치를 밝힐 것 …)과 ②번 칸 잠금은 고칠 수 없습니다. 이 기능을 “물어보기” 로 되돌리는 부분이기 때문입니다.
“오늘은 AI 에게 답을 얻는 것이 아니라, AI 와 같이 따져 볼 거예요. AI 는 답을 주는 기계가 아니라, 우리 생각을 검토해 주는 동료입니다. 그래서 우리 모둠 생각을 먼저 적지 않으면 복사 단추가 아예 눌리지 않습니다. AI 가 답을 보내오면 그대로 옮겨 적지 말고, 그 말 가운데 하나를 골라 우리 표의 숫자로 맞는지 따져 보세요 — AI 가 한 말도 우리 데이터로 확인하기 전까지는 아직 답이 아닙니다.”
필요하면 한 문장 더 — “이름은 넣지 않습니다. AI 에게는 우리가 몇 모둠인지까지만 알려 줍니다.”
모둠 활동과 다릅니다. 데이터·보고서·별점은 모둠 단위지만, 개념 확인은 학생이 자기 번호와 이름을 넣고 각자 풉니다. 그래야 형성평가 자료가 되고, 생기부에 쓸 개인 근거가 남습니다. 모둠 기기 한 대로 모둠원이 돌아가며 풀어도 번호마다 따로 저장됩니다.
교사는 대시보드에서 3~5문항을 만듭니다. 유형은 객관식(보기 2~5개, 정답 1개)과 단답형(공백·대소문자는 무시하고 비교) 두 가지이고, 문항마다 해설을 적을 수 있습니다. 문항을 만들지 않으면 학생 화면에 이 영역이 아예 나타나지 않습니다.
학생은 번호·이름을 넣고 풀면 즉시 채점되고 해설이 보입니다. 다시 풀 수 있고, 마지막 제출이 저장됩니다.
교사 대시보드에는 문항별 정답률이 나오고 오답이 많은 문항이 강조됩니다 — 어디서 막혔는지 바로 보입니다. 그 아래 문항별 응답 분포 에서 어느 보기로 틀렸는지까지 볼 수 있습니다(C. 문항별 응답 분포). 전자칠판 마무리 화면에는 반 전체 정답률 한 줄만 나오고 학생 이름은 나오지 않습니다.
정답률만으로는 무엇을 잘못 알고 있는지가 보이지 않습니다. 개념 확인 결과 아래 문항별 응답 분포 에서 문항을 하나 고르면, 보기마다 몇 명이 골랐는지 막대로 나옵니다. 정답 보기에는 표시가 붙고 정답률이 숫자로 함께 나옵니다.
막대를 누르면 그 보기를 고른 학생이 모둠 · 번호 · 이름으로 펼쳐집니다. 답을 비워 둔 학생과 아직 응시하지 않은 모둠도 아래에 함께 나오므로, 오답이 몰린 보기를 짚어 “왜 이렇게 생각했는지” 물어볼 사람을 바로 고를 수 있습니다.
직접 쓰기(단답형) 문항은 보기가 없으므로 실제로 쓴 답을 묶어 많이 나온 차례로 보여 줍니다. 띄어쓰기와 대소문자는 무시하고 묶으므로 비열 과 비 열 은 한 덩어리가 됩니다.
절반을 넘기지 못한 문항에는 [다시 짚을 문항] 이라는 글자 뱃지가 붙습니다. 색으로만 구분하지 않으므로 전자칠판 색이 바래도, 색을 구별하기 어려운 학생에게도 그대로 읽힙니다.
← → 로 문항을 넘기고 Esc 로 닫습니다) → ③ 가장 높은 오답 막대를 가리키며 “이 보기를 고른 사람 생각을 들어 보자” 로 시작한다. 이름을 부르지 말고 보기를 말하게 하면 학생이 덜 부담스러워합니다.결과를 남기려면 [분포 CSV 내려받기] 를 누르세요. 문항 · 보기 · 인원 · 정답 여부가 한 표로 나옵니다.
간편 모드에서도 같습니다. 작업 파일을 모은 합치기 화면에 똑같은 분포·크게 보기·CSV 가 있습니다.
보고서에 점수와 한 문장을 돌려주기 위한 자리입니다. 네 걸음이 한 줄로 이어집니다.
대시보드의 평가 기준표 상자에서 항목을 2~6개 정합니다. 항목마다 이름 · 배점 · 채점 기준 설명 세 가지를 적고, ▲ ▼ 로 순서를 바꾸고 삭제 로 지웁니다. 보고서 질문·실험 절차를 고치는 것과 같은 편집기입니다.
백지에서 시작하지 마세요. [기본 기준표 불러오기] 를 누르면 탐구의 흐름을 그대로 따라가는 다섯 항목이 들어옵니다 — 탐구 설계 · 측정 수행 · 데이터 해석 · 결론 도출 · 협력·태도(각 5점). 그 위에는 이 실험의 성취기준 원문이 함께 떠 있으니, 기준 설명 문구를 성취기준의 말과 맞춰 고치면 그대로 세특 근거가 됩니다. 다 고쳤으면 [기준표 저장] 을 누릅니다.
대시보드의 보고서 채점 상자는 한 화면에서 끝나게 만들었습니다. 창을 여닫지 않습니다.
| 자리 | 보이는 것 |
|---|---|
| 왼쪽 | 미평가 와 평가완료 로 나뉜 모둠 목록 |
| 오른쪽 | 고른 모둠의 보고서 본문 — 질문과 답이 나란히, 덧붙인 문항과 분석·AI 건수까지 |
| 아래 | 항목별 점수 칸(총점 자동 합산)과 서술 피드백 한 칸, [평가 저장] |
점수는 0점부터 그 항목 배점까지만 받습니다. 배점을 넘기면 그 칸이 붉게 표시되고 저장이 멈춥니다. [평가 저장] 을 누르면 그 모둠이 미평가 목록에서 바로 사라져 평가완료로 옮겨지고, 다음 미평가 모둠이 저절로 선택됩니다 — 목록이 빌 때까지 같은 자리에서 계속 이어 가면 됩니다.
저장할 때 그 모둠의 최신 답안을 다시 읽어 합쳐서 씁니다. 채점하는 사이에 학생이 보고서를 고쳐 저장했더라도 학생 글이 지워지지 않습니다. 아직 보고서를 내지 않은 모둠도 채점할 수 있습니다(임시저장 상태로 평가만 먼저 담깁니다).
| 실시간 모드 | 간편 모드 | |
|---|---|---|
| 기준표 | 대시보드 평가 기준표 → [기준표 저장] (그 수업에 저장) | 합치기 화면 평가 기준표 → [기준표 적용] (이 화면에서만, 서버에 보내지 않음). 수업 꾸러미에 담아 두면 그것이 먼저 들어옵니다 |
| 채점 | 대시보드 보고서 채점 에서 바로. 저장하면 학생 화면에 몇 초 안에 나타납니다 | 학생 작업 파일을 올린 뒤 보고서 채점 에서 그 자리에서 |
| 학생에게 돌려주기 | 따로 할 일 없음 — 학생이 참여코드로 들어와 봅니다 | 평가를 담은 작업 파일을 다시 내려받아 돌려줍니다. 파일 이름 뒤에 _평가 가 붙고, 학생이 열면 보고서 아래에 평가 카드가 보입니다. [평가한 파일 모두 내려받기] 로 한꺼번에 받을 수 있습니다 |
간편 모드에서 다시 내려받은 파일은 학생이 쓴 글자를 하나도 건드리지 않고 평가만 얹은 것입니다. 같은 파일을 다시 채점해 내려받아도 평가 카드는 한 장만 남습니다.
채점이 저장되면 학생 보고서 탭에 선생님 평가 영역이 생깁니다. 평가가 없으면 이 영역은 아예 나타나지 않습니다 — 채점 전에 빈 칸이 보여 불안해질 일이 없습니다.
보이는 것은 항목별 점수(채움 막대) · 총점 · 선생님이 쓴 문장 뿐입니다. 항목 이름과 배점은 채점하던 그때의 것이 그대로 보입니다.
대시보드의 [생기부 자료 내보내기] 를 누르면 학생별로 묶인 Markdown 파일 한 개를 내려받습니다. 엑셀로 정리하고 싶으면 CSV 도 함께 받을 수 있습니다.
학생 한 명 분량에 이런 것들이 들어갑니다.
| 담기는 것 | 내용 |
|---|---|
| 누구 | 이름·번호와 소속 모둠 |
| 무엇을 | 실험명, 관련 성취기준 코드와 원문 |
| 측정 | 계열별 처음·마지막·평균, 낼 수 있으면 기울기와 R² |
| 예상 | 예상을 그렸다면 예상과 실제의 차이 |
| 서술 | 보고서 답변 전문 |
| AI와 협업한 탐구 | 어떤 국면에서 무엇을 함께 따졌는지, 고른 주장과 판정·까닭(C. AI와 협업 탐구) |
| 개념 확인 | 점수와 틀린 문항 |
| 동료 평가 | 받은 별점 평균과 칭찬 문구 |
| 선생님 평가 | 기준표 항목 이름과 항목별 점수, 총점, 교사가 쓴 서술 피드백 문장(C. 항목별 채점) |
파일 맨 앞에는 Claude 에 그대로 붙여넣을 수 있는 안내 문단이 들어 있습니다 — “아래는 …수업 기록입니다. 학생별로 과목별 세부능력 및 특기사항 문장을 명사형 종결로 250자 내외로 작성해 주세요” 같은 식입니다. 모둠원 칸을 비워 둔 모둠은 “모둠 단위 기록” 한 건으로 묶여 나옵니다.
왜 필요한가요. 참여코드는 반 전체가 함께 쓰는 코드입니다. 코드만으로 쓰기까지 열어 두면, 3모둠 학생이 5모둠 화면에 들어가 남의 데이터와 보고서를 지우거나 5모둠 이름으로 별점을 보낼 수 있습니다. 장난이든 실수든 교실에서는 언젠가 반드시 생깁니다. 그래서 고치고 지우는 일에만 모둠 비밀번호 4자리를 요구합니다.
| 하는 일 | 필요한 것 |
|---|---|
| 수업 열어 보기 · 다른 모둠 그래프 보기 · 발표 화면 | 참여코드 6자리만 (비밀번호 필요 없음) |
| 쓰기 — 모둠 입장(이름·모둠원), 데이터 저장, 보고서 저장, 별점·칭찬 보내기 | 참여코드 + 우리 모둠 4자리 |
| 교사 — 단계 전환, 보고서 질문 고치기, 비밀번호 확인·초기화, 연장·삭제 | 관리코드 10자리만 |
읽기는 그대로 열어 두었기 때문에, 늦게 들어온 학생이나 발표 화면이 비밀번호 때문에 막히는 일은 없습니다.
비밀번호는 수업을 만들 때 모둠마다 자동으로 발급됩니다. 교사가 정하거나 입력할 것은 없습니다. 교사 대시보드의 모둠 비밀번호 표에서 [칠판에 크게 띄우기] 를 누르면 모둠 번호와 4자리가 큰 글씨로 뜹니다. 각 모둠이 자기 것만 적게 하고 창을 닫으면 됩니다.

0417 처럼 0 으로 시작하거나 0000 인 번호도 정상입니다. 보이는 그대로 네 자리를 적으세요.
표는 평소 ●●●● 로 가려져 있어 [보이기] 를 눌러야 드러납니다. 칠판에 띄우는 대신 [모둠 쪽지 인쇄] 로 모둠별 쪽지를 뽑아 책상에 나눠 주면, 옆 모둠 번호를 볼 일이 아예 없습니다.
교사 화면의 모둠 비밀번호 표에서 그 모둠 번호를 찾아 불러 주면 됩니다. 학생이 못 적었거나 옆 모둠에 알려져 곤란하면 그 줄의 [초기화] 를 누르세요. 새 4자리가 바로 발급됩니다.
초기화하면 옛 번호는 더 이상 통하지 않습니다. 그 모둠 기기에 저장돼 있던 번호도 막히므로 새 번호를 다시 알려 주세요. 이미 저장한 데이터·보고서는 그대로 남습니다.
맞게 넣은 비밀번호는 그 기기(브라우저)에 남아, 같은 모둠이 다시 열면 묻지 않습니다. 수업 내내 계속 입력하게 되는 일은 없습니다. 기기를 바꾸거나 시크릿 창으로 열면 한 번 더 묻습니다. 모둠 기기를 다음 반이 그대로 쓴다면 참여코드가 다르므로 새 수업에서는 새로 묻습니다.
학교마다 자기 Supabase 프로젝트를 하나 만들어 씁니다. 순서대로 하면 10분이면 끝납니다.
이 허브는 코드만 나눠 쓰고 데이터베이스는 학교마다 따로 두는 구조입니다. 이유는 두 가지입니다. 첫째, Supabase 무료 플랜의 월 전송량은 5GB인데 여러 학교가 한 프로젝트를 함께 쓰면 그 한도를 서로 갉아먹습니다. 둘째, 한 프로젝트에 여러 학교 자료가 쌓이면 우리 반 자료를 지우거나 옮길 때 남의 학교 자료까지 함께 다루게 됩니다.
프로젝트를 따로 두면 우리 학교 자료는 우리 계정 안에만 남고, 정리도 우리가 원할 때 합니다. 무료 플랜 하나면 한 학교가 쓰기에 넉넉합니다(아래 전송량 계산 참고).
supabase.com 에서 무료로 가입하고 New project 를 만듭니다. 지역(Region)은 가까운 Northeast Asia (Seoul) 을 고르고, 만들 때 정한 DB 비밀번호는 따로 보관하세요. 카드 등록은 필요 없습니다.
왼쪽 SQL Editor → New query 에 이 폴더의 schema.sql 전체를 붙여넣고 Run 을 누릅니다. 아래 여섯 테이블과 보안 정책(RLS), 자료를 주고받는 함수들이 한 번에 만들어집니다. 여러 번 실행해도 안전하고, 이미 들어 있던 수업 자료가 지워지지 않습니다.
| 테이블 | 담는 것 |
|---|---|
mbl_lessons | 수업 1건 — 참여코드, 제목, 실험 id, 학급, 보고서 양식, 데이터 입력표 규격, 단계(phase), 발표 모둠, 슬라이드 번호, 보관 기한(expires_at, 기본 60일) |
mbl_admin | 수업별 관리코드. ★ 정책이 없어 밖에서는 한 줄도 읽을 수 없습니다 |
mbl_groups | 모둠 — 번호, 이름, 모둠원 표기, 비밀번호 4자리(pin). pin 은 학생 화면으로 내려가지 않습니다 |
mbl_data | 모둠별 측정 데이터 (모둠당 1행) |
mbl_reports | 모둠별 보고서 답 (모둠당 1행, draft / done) |
mbl_feedback | 모둠 → 모둠 별점·한 줄 칭찬 |
표 이름이 모두 mbl_ 로 시작하므로, 이미 쓰고 있는 다른 프로젝트의 표와 겹치지 않습니다.

schema.sql 전체를 붙여넣고 Run. 여러 번 눌러도 안전합니다.Settings → API 에서 Project URL 과 anon / public key 를 복사해, 이 폴더의 config.js 두 줄에 붙여넣습니다. 고치는 파일은 이 하나뿐입니다.

window.MBL_CONFIG = {
SUPABASE_URL : 'https://xxxxxxxx.supabase.co',
SUPABASE_ANON_KEY: 'eyJhbGciOi...',
SCHOOL : '○○중학교',
TEACHER: '홍길동'
};
SCHOOL 과 TEACHER 는 화면 안내에 쓰이는 이름입니다. 비워 두어도 동작합니다.
schema.sql 은 모든 표의 직접 읽기를 닫아 두었습니다. 그래서 anon key 만 가진 사람은 참여코드나 관리코드를 모르면 한 줄도 못 읽습니다.Settings → API 아래쪽의 service_role(secret) 키는 그 잠금을 통째로 무시합니다. config.js 나 저장소에 넣으면 모든 자료가 그대로 열립니다. 실수로 넣었다면 같은 화면에서 즉시 Reset(재발급) 하세요.teacher.html 을 열고 [연결 확인] 을 누르세요. 무엇이 빠졌는지 한국어로 알려 줍니다.
| 나오는 안내 | 뜻과 할 일 |
|---|---|
| 정상입니다 | 주소·키·스키마가 모두 맞습니다. 바로 수업을 만들어도 됩니다. |
| 연결 정보가 없습니다 | config.js 의 두 줄이 비어 있거나 예시값 그대로입니다. |
| schema.sql 을 아직 실행하지 않았습니다 | 2단계로 돌아가 schema.sql 전체를 다시 Run 하세요. |
| anon key 가 맞지 않습니다 | 다른 프로젝트의 키이거나 복사할 때 잘린 것입니다. Settings → API 에서 다시 복사하세요. |
| 연결하지 못했습니다 | 인터넷이 끊겼거나 SUPABASE_URL 주소에 오타가 있습니다. |
그다음 실제로 한 번 돌려 봅니다. teacher.html 에서 수업을 만들어 참여코드가 나오면 성공입니다. 다른 창에서 index.html 에 그 코드를 넣어 모둠에 들어가면, 교사 화면에 그 모둠이 몇 초 안에 나타납니다.
더 확인하고 싶으면 schema.sql 맨 아래 확인용 테스트 쿼리 주석을 풀어 하나씩 실행해 보세요. 특히 6번 블록의 정책 목록 조회에서 cmd 가 SELECT 인 줄이 하나도 없어야 정상입니다.
무료 플랜의 월 전송량은 5GB 입니다. 이 허브는 한 차시에 약 10MB 를 씁니다. 한 달에 수백 차시를 해도 무료 한도 안입니다.
| 상황 | 한 차시(45분) 전송량 |
|---|---|
| 모둠 기기 7대 + 교사 + 전자칠판 | 약 3MB |
| 학생 개인 기기 30대 + 교사 + 전자칠판 | 약 10MB |
| (참고) 예전 방식 — 3초마다 전체 자료 다시 받기 | 약 620MB |
줄어든 이유는 두 가지입니다. 화면은 평소에 150바이트짜리 변경 신호만 확인하고, 정말 바뀐 것이 있을 때만 전체 자료(약 24KB)를 다시 받습니다. 그리고 데이터 수집 중에는 다른 모둠 자료를 아예 받아오지 않습니다 — 그 시간에 학생은 자기 모둠 값만 다루기 때문입니다.
신호를 확인하는 간격은 단계에 따라 다릅니다. 수집 15초 · 공유 8초 · 발표 3초 · 마무리 15초이고, 교사 대시보드만 수집 단계에서 5초로 조금 더 자주 봅니다(모둠 현황을 봐야 하므로). 탭을 다른 곳으로 넘기면 확인을 멈춥니다.
학생 자료를 다루는 도구이니, 무엇이 · 어디에 · 얼마나 오래 남는지 한 번 짚고 가겠습니다.
| 저장되는 것 | 어디에 |
|---|---|
| 모둠 이름, 모둠원 표기(번호·별명 또는 이름) | mbl_groups |
| 모둠 비밀번호 4자리 (자동 발급, 학생 화면으로는 내려가지 않음) | mbl_groups |
| 측정값과 실험 메모 | mbl_data |
| 모둠이 그린 예상 그래프 | mbl_data 의 predict 칸 |
| 보고서 답변 | mbl_reports |
| AI와 협업 탐구 기록 — 국면, 우리 해석, 보낸 프롬프트, 주장·판정·까닭 (이름은 걸러져 저장됩니다) | mbl_reports 의 answers 안 |
| 모둠끼리 남긴 별점·한 줄 칭찬 | mbl_feedback |
| 개념 확인 — 학생 번호·이름, 고른 답, 점수 (개인별) | mbl_quiz |
계정도, 학번도, 연락처도 받지 않습니다. 로그인 자체가 없어 저장할 것도 없습니다. 그리고 이 자료들은 60일 뒤 만료됩니다(아래 60일 보관 기한).
개념 확인만 개인 단위입니다. 형성평가로 쓰려면 누가 풀었는지 알아야 하기 때문입니다. 이름 대신 번호만 넣게 해도 채점과 대시보드는 그대로 동작합니다. 학생 화면으로는 남의 답도 이름도 내려가지 않고, 문항의 정답도 빠진 채 내려갑니다(C. 개념 확인).
모둠원 칸은 원래 선택이고, 학생 화면의 기본 안내도 예) 3, 11, 17 처럼 번호를 적도록 바뀌어 있습니다. 번호만 있어도 교사는 누구인지 알고, 자료에는 이름이 남지 않습니다. 이름을 그대로 쓰고 싶으면 물론 쓸 수 있습니다 — 학교 방침에 맞게 고르세요.
표를 직접 읽는 길은 전부 닫혀 있습니다. 공개된 anon key 만으로는 mbl_groups 를 한 줄도 읽지 못합니다. 자료는 참여코드 6자리나 관리코드 10자리를 정확히 아는 사람에게만, 그 수업 몫만 열립니다. 관리코드가 담긴 mbl_admin 은 프로젝트 소유자가 SQL Editor 로 볼 때만 보입니다.
참여코드는 수업이 끝나면 칠판에서 지우면 됩니다. 코드 하나가 곧 그 수업 한 건의 열쇠입니다.
수업은 만든 날부터 60일 동안만 보관됩니다. 기한이 지나면 학생이 참여코드를 넣어도 수업 보관 기간이 지났습니다. 선생님께 문의하세요. 라고만 나오고 열리지 않습니다. 학생 이름이나 모둠원 표기가 몇 년씩 남지 않도록, 따로 손대지 않아도 저절로 정리되게 해 둔 것입니다.
교사는 기한이 지나도 열 수 있습니다. 관리코드로 여는 길은 막지 않았습니다. 만료된 수업이라도 대시보드에서 열어 자료를 확인하고, 연장하거나 내려받은 뒤 지울 수 있습니다.
교사 대시보드 아래쪽 수업 보관 칸에 이 수업은 2026-10-09 까지 보관됩니다 처럼 남은 기한이 나옵니다. 기한이 가까워지면 화면 위에 알림도 뜹니다.
| 버튼 | 하는 일 |
|---|---|
| [30일 연장] | 보관 기한을 30일 뒤로 미룹니다. 여러 번 눌러 더 늘릴 수 있습니다. |
| [지금 삭제] | 이 수업과 모둠·데이터·보고서·별점을 즉시 지웁니다. 되돌릴 수 없어, 수업 제목을 그대로 입력해야 [정말 삭제] 가 눌립니다. |
Table Editor 에서 mbl_data · mbl_reports · mbl_feedback 을 Export to CSV 로 저장하면 됩니다. 한 번 지운 자료는 되살릴 수 없습니다.기한이 지난 수업은 열리지만 않을 뿐 데이터베이스에는 남아 있습니다. 실제로 비우려면 SQL Editor 에서 한 줄이면 됩니다.
select mbl_cleanup();
만료된 수업만 골라 지우므로 진행 중인 수업은 건드리지 않습니다. 여러 번 실행해도 안전하고, 지운 건수를 {"deleted_lessons":3, "groups":21, ...} 처럼 돌려줍니다. 학기 말이나 방학 시작 때 한 번씩 돌리면 충분합니다. 새 수업을 만들 때도 자동으로 한 번 정리하므로, 잊고 지나가도 조금씩 비워집니다.
특정 수업 하나만 지우려면 대시보드의 [지금 삭제] 가 가장 간단합니다. Table Editor → mbl_lessons 에서 그 줄을 지워도 되고, 모둠·데이터·보고서·별점이 함께 지워집니다(연쇄 삭제).
학년이 끝나 전부 비우고 싶다면 SQL Editor 에서 이렇게 합니다.
-- 2026년 8월 31일 이전에 만든 수업을 자료까지 모두 삭제
delete from mbl_lessons where created_at < '2026-09-01';
delete 는 되돌릴 수 없고, 만료 여부를 가리지 않고 그 날짜 이전 수업을 모두 지웁니다. 남겨야 할 자료가 있으면 먼저 Export to CSV 로 내려받은 뒤 실행하세요. 그리고 관리코드를 학생에게 보여 주지 마세요 — 관리코드가 있으면 수업 단계와 보고서 질문을 바꾸고, 수업을 통째로 지울 수도 있습니다.실험을 더하거나 고치려면 lab-data.js 한 파일만 보면 됩니다.
실험 하나는 아래 모양입니다. dataSpec 이 학생의 데이터 입력표를, questions 가 보고서 질문을 만듭니다. 새 실험을 넣을 때는 std(성취기준 코드)와 sensors[].key(센서 key)를 파일 위쪽 목록에 있는 값으로 적어야 합니다.
{
id:'sm-01', src:'seoul', grade:1, unit:'열', area:'physics',
title:'물과 식용유의 비열 비교',
std:['9과03-03'],
sensors:[{key:'temp', n:2, label:'수중 온도 센서'}],
board:'main', mode:'auto', minutes:45, level:1,
why:'...', prep:[...], steps:[...], read:'...',
// 업체별 절차 — 그 업체로 불가능한 실험이면 그 키를 아예 넣지 않습니다
stepsBy:{ ez:['1단계…','2단계…'], sc:['1단계…','2단계…'] },
setupBy:{ ez:['이지메이커 메인보드 1대','센서 연결 케이블 2개'],
sc:['무선 온도 센서 2개 (보드 불필요)'] },
dataSpec:{ x:{label:'시간',unit:'초'},
series:[{label:'물',unit:'℃'},{label:'식용유',unit:'℃'}],
rows:8, chart:'line' },
questions:[{q:'조작변인은 무엇인가요?', type:'short'}]
}
업체별 절차를 넣을 때는 stepsBy 와 setupBy 두 칸을 씁니다. 기존 steps · prep 은 지우지 마세요 — 업체를 고르지 않았을 때 쓰는 기본값입니다. setupBy 는 prep 을 대신하는 것이 아니라 거기에 덧붙는 업체 전용 준비물입니다. 그 업체가 안 파는 센서를 쓰는 실험이면 그 업체 키를 아예 넣지 마세요(가능 여부는 센서 가격표에서 자동으로 판정하므로, 절차만 남겨 두면 앞뒤가 맞지 않습니다).
브라우저 개발자 도구 콘솔에서 LAB.meta.counts 를 치면 학년별 실험 수와 업체별 가능 건수(ezOk · scOk · bothOk)가 바로 보입니다. LAB.byGrade(2), LAB.byUnit('열'), LAB.search('광합성'), LAB.sensorCost('sm-01','ezw') 와, 업체별로는 LAB.stepsFor('sm-01','sc'), LAB.prepFor('sm-01','ez'), LAB.vendorOk('sm-04','ez'), LAB.byVendor('sc'), LAB.sensorHas('force','ez') 를 씁니다.
보고서 질문은 수업 중에도 바꿀 수 있습니다. 교사 대시보드 맨 아래 보고서 질문 고치기 칸에 한 줄에 하나씩 적고 저장하면, 학생 화면이 곧바로 바뀝니다. 줄 끝에 * 를 붙이면 긴 답 칸이 됩니다.
GitHub 저장소에 올리고 Pages 를 켜면 끝입니다.
저장소에 config.js · index.html · teacher.html · present.html · manual.html · hub.js · lab-data.js · diagrams.js · graphs.js · schema.sql 과 assets/ 를 올립니다. 처음이라면 Add file → Upload files 로 끌어다 놓는 것이 가장 쉽습니다.
config.js 를 빠뜨리면 화면이 열리기는 해도 “Supabase 연결 정보를 넣어 주세요” 안내만 뜹니다.
저장소 Settings → Pages 에서 배포를 켭니다. 잠시 뒤 아이디.github.io/저장소이름/ 으로 열립니다(예: scienceisjo.github.io/mblclasshub/).

학생에게는 주소와 참여코드만 알려 주면 됩니다. 교사 화면 주소는 .../teacher.html, 발표 화면은 .../present.html?code=참여코드 입니다.
먼저 teacher.html 의 [연결 확인] 을 눌러 보세요. 아래 절반은 그 한 번으로 가려집니다.
| 이런 일이 생기면 | 이렇게 확인하세요 |
|---|---|
| “Supabase 연결 정보를 넣어 주세요” 가 뜬다 | config.js 가 같은 폴더에 있는지, 두 줄이 예시값 그대로가 아닌지 봅니다. 저장소에 올릴 때 config.js 를 빠뜨린 경우가 가장 많습니다. |
| 수업을 만들 때 오류가 난다 | [연결 확인] 을 누릅니다. schema.sql 미실행인지, 키가 다른 프로젝트 것인지 바로 알려 줍니다. |
| “수업 코드를 찾을 수 없습니다” | 참여코드 6자리를 다시 봅니다. O·0·I·1·L 은 코드에 쓰이지 않으니 0 처럼 보이면 Q 나 D 일 수 있습니다. 다른 학교 Supabase 로 만든 코드는 우리 주소에서 열리지 않습니다. |
| “모둠 비밀번호가 맞지 않습니다” | 고른 모둠 번호와 4자리가 짝이 맞는지 봅니다(옆 모둠 번호를 적어 온 경우가 많습니다). 교사 화면 모둠 비밀번호 표에서 불러 주거나, 그 모둠만 [초기화] 해 새 4자리를 주세요. 읽기는 막히지 않으니 그래프는 그대로 보입니다. |
| “수업 보관 기간이 지났습니다” | 만든 지 60일이 지난 수업입니다. 교사는 관리코드로 여전히 열 수 있으니, 대시보드에서 [30일 연장] 을 누르면 학생도 다시 들어옵니다(E. 60일 보관 기한). |
| 학생 화면 위에 “임시 저장 중” 이 뜬다 | 인터넷이 끊긴 상태입니다. 그대로 계속 적어도 됩니다. 연결되면 자동으로 다시 보냅니다. |
| 화면이 바로바로 안 바뀐다 | 변경 신호를 단계마다 다른 간격으로 확인합니다(수집 15초 · 공유 8초 · 발표 3초, 교사 화면은 수집 5초). 그 정도 기다려도 안 바뀌면 새로고침하세요. 다른 탭을 보고 있는 동안에는 확인을 멈춥니다. |
| 발표 화면의 슬라이드가 안 넘어간다 | 전자칠판 탭이 앞에 나와 있어야 합니다(숨겨진 탭은 쉽니다). 참여코드가 교사 화면의 수업과 같은지도 확인하세요. |
| 관리코드를 잃어버렸다 | 수업을 만든 그 브라우저의 이 브라우저에 저장된 수업 목록에서 찾을 수 있습니다. 목록에도 없다면 Supabase SQL Editor 에서 select * from mbl_admin; 로 확인합니다(프로젝트 소유자만 가능). |
| 실험 목록이 비어 보인다 | lab-data.js 가 hub.js 보다 먼저 읽히는지, 같은 폴더에 있는지 확인합니다. |
| 전송량이 걱정된다 | Supabase 대시보드 Settings → Usage 에서 이번 달 사용량을 볼 수 있습니다. 한 차시 10MB 안팎이니 5GB 한도까지는 여유가 큽니다. |
| CSV 를 놓았는데 표가 안 채워진다 | 미리보기에 숫자 열이 잡혔는지 봅니다. 열 이름이 실험과 달라 자동으로 못 짝지었으면 드롭다운으로 열을 직접 고르면 됩니다. 그래도 비어 있으면 그 파일에 숫자 열이 없는 것입니다(설명만 있는 머리글 파일인지 확인). |
| 표가 수백 줄이 되어 버렸다 | 행 솎아내기가 꺼져 있었던 경우입니다. 다시 불러오면서 솎아내기를 켜세요(C. CSV 불러오기). |
| 실험 안내의 절차가 우리 장비와 다르다 | 수업을 만들 때 업체를 골랐는지 봅니다. 고르지 않으면 업체를 가리지 않는 기본 절차가 나옵니다. 그래도 우리 교실과 다르면 대시보드에서 실험 절차 고치기 로 한 줄에 한 단계씩 다시 적으세요(C. 업체별 절차). |
| 하려던 실험이 흐리게 나와 눌리지 않는다 | 그 실험에 쓰이는 센서를 지금 고른 업체가 팔지 않는 경우입니다. 목록에서 감추지 않고 흐리게 두면서 어느 센서가 없어서인지 카드에 적어 줍니다. 힘 센서는 이지메이커에, 무게 센서는 사이언스큐브에 없습니다(C. 업체별 절차). |
| 연결 다이어그램·그래프 예시가 안 보인다 | 그 실험에 아직 그림이 없거나, diagrams.js · graphs.js 를 저장소에 올리지 않은 것입니다. 그림이 없으면 자리도 생기지 않습니다. |
| 학생 화면에 개념 확인 이 안 보인다 | 교사가 문항을 아직 만들지 않은 것입니다. 문항이 없으면 그 영역은 일부러 나타나지 않습니다. |
| 학생 화면에 AI와 협업 탐구 가 안 보인다 | 데이터 실험실 탭이 꺼져 있으면 함께 사라집니다(일부러 묶어 두었습니다). 실험실이 켜져 있는데도 없으면 대시보드의 [AI와 협업 탐구 켜기] 를 확인하세요. 모둠에 들어가야 보이는 것도 실험실과 같습니다(C. AI와 협업 탐구). |
| [프롬프트 복사] 가 눌리지 않는다 | 고장이 아니라 일부러 잠근 것입니다. ②번 우리 생각 칸에 10글자 이상 적으면 풀립니다. 국면을 바꾸면 그 국면의 칸을 새로 적어야 합니다. |
| 복사했다는데 붙여넣기가 안 된다 | 기기가 클립보드를 막은 경우입니다. 글이 저절로 모두 선택되어 있으니 그 상태에서 Ctrl+C(맥은 ⌘+C)를 누르면 됩니다. |
| 발표 화면에 예상 vs 실제 장이 없다 | 그 발표 모둠이 예상을 그리지 않았거나 저장하지 않았습니다. 예상이 없으면 그 장은 건너뛰고 세 장 그대로 넘어갑니다. |
| 간편 모드인데 모둠 공유·발표 화면이 없다 | 고장이 아닙니다. 서로 다른 기기의 자료를 모아야 되는 일이라 간편 모드에서는 성립하지 않아, 버튼을 감추고 까닭을 한 줄로 알립니다. 필요하면 D. Supabase 설치 를 한 번 해 두세요(A. 두 가지 쓰는 법). |
| 꾸러미를 올렸는데 “수업 꾸러미 파일이 아닙니다” | 교사가 [수업 꾸러미 내려받기] 로 만든 .json 이 맞는지 봅니다. 작업 파일(.html)을 올린 경우가 가장 많습니다 — 그것은 [이어서 하기] 자리입니다. |
| 이어서 하기 로 올렸는데 안 열린다 | 내려받은 .html 을 다른 앱(한글·워드)으로 열었다가 다시 저장하면 안쪽 기록이 깨집니다. 브라우저로만 열고, 파일은 받은 그대로 두세요. |
| 학생이 파일을 안 내려받고 나가 버렸다 | 그 기기의 같은 브라우저로 다시 들어가면 자동저장본이 남아 있어 [불러오기] 로 되살릴 수 있습니다. 다른 기기이거나 기록을 지웠다면 되살릴 방법이 없습니다 — 다음부터 띠가 초록인지 확인시켜 주세요(A. 저장 상태 띠). |
| 합치기에서 어떤 파일이 빠졌다 | 형식이 아닌 파일은 건너뛰고 까닭을 함께 적어 줍니다. 같은 모둠 파일이 둘이면 저장 시각이 늦은 것만 씁니다(그 사실도 알려 줍니다). |
| 제출된 파일을 PDF 로 받고 싶다 | 작업 파일을 브라우저로 열고 Ctrl+P(맥 ⌘+P) → PDF 로 저장. 인쇄용 스타일이 들어 있어 그래프까지 그대로 나옵니다. |
브라우저 개발자 도구 콘솔에서 await Hub.diagnose() 를 치면 [연결 확인] 과 같은 진단을 직접 볼 수 있습니다.
문의: 해누리중학교 조승재(과학이조선생).
실험 도감 49건은 아래 자료들을 참고해 다시 쓴 것입니다. 어디서 왔는지 분명히 밝힙니다.
| 자료 | 서지 사항 |
|---|---|
| 실험 사례 · 수업 설계 | 『2026 교구 및 디지털 도구 활용 과학 교수학습자료(중등 과학)』 서울특별시교육청 창의미래교육과, 2026년 7월. 집필 김지연 · 이승윤 · 이차은 · 오유리 · 최효석 |
| 센서 실험 절차 | 『AI-STEAM 교육을 위한 디지털 과학실험 따라하기 — 이지메이커 수업사례집(중학 합본 V1)』 최효석(영서중학교) |
| 교과서 수록 탐구 · 센서 기초 측정법 | 『사이언스큐브 무선센서 카탈로그 v9』의 2022 개정 중등교과서 수록 탐구목록, 클래스보드 무선·유선 기초 측정 자료, 최효석(영서중학교) 공기압 연수 자료 |
| 성취기준 87개 | 2022 개정 교육과정 과학과 성취기준 — 교육부 고시 제2022-33호 [별책 9] |
실험 절차와 해설은 위 자료를 참고해 다시 쓴 것이며, 원문을 그대로 옮기지 않았습니다. 어떤 센서로 무엇을 재는 실험인지, 어느 성취기준에 닿는지를 참고한 뒤, 중학생이 읽을 문장과 이 허브의 데이터 입력표·보고서 질문 형식에 맞게 새로 작성했습니다. 자료집의 사진·표·문장을 복사해 넣은 곳은 없습니다. 성취기준은 고시 원문 그대로이며(공공저작물), 코드와 원문을 함께 표시해 출처를 알 수 있게 했습니다.
실험 하나하나의 출처는 lab-data.js 의 src 값(seoul = 서울시교육청 자료집, ez = 이지메이커 수업사례집, cb = 교과서 수록표·클래스보드 자료, own = 자료집에 없어 새로 구성한 실험)으로 남아 있습니다. 두 자료집에 함께 실린 실험은 src:'seoul' 로 합치고 altSrc:'ez' 를 남겨 두 곳을 모두 표시합니다. 학생 화면의 실험 도감과 상세 시트에도 이 정식 명칭이 한 줄로 나옵니다.
실험마다 srcRef 에 원자료에서의 위치(예: 이지메이커 사례집 19번)를 적어 두었고, 도감 상세에 자료집에서 찾기 한 줄로 나옵니다. 자료집을 손에 들고 같은 실험을 바로 펴 보시라는 뜻입니다. 실험 id 의 번호(ez-19 의 19)는 이 앱의 일련번호일 뿐 사례집 번호가 아니므로, 자료집을 찾을 때는 반드시 이 줄을 보세요.
이 허브는 해누리중학교 조승재가 학교 수업 목적으로 만들었습니다. 상업적 목적이 없고, 어느 업체와도 관계가 없습니다. 화면·코드(index.html · teacher.html · present.html · manual.html · hub.js · schema.sql)의 저작권은 제작자에게 있으며, 다른 학교가 자기 수업에 쓰는 것은 환영합니다(H. 다른 학교에 배포하기).
이 설명서 곳곳에는 화면 사진이 들어갈 자리가 미리 잡혀 있습니다. 지금은 파일이 없어 자리째 보이지 않을 뿐이고, assets/ 폴더에 아래 이름 그대로 저장하면 고친 곳 없이 자동으로 나타납니다. 필요한 것만 넣어도 되고, 넣지 않은 자리는 계속 보이지 않습니다.
| 파일 이름 | 무엇을 찍나 | 어디에 나오나 |
|---|---|---|
assets/shot-code.png | 수업을 만든 직후 참여코드·관리코드가 나온 교사 화면 | C. 수업 만들기 |
assets/shot-pin.png | [칠판에 크게 띄우기] 를 누른 모둠 비밀번호 화면 | C. 모둠 비밀번호 |
assets/shot-join.png | 학생이 처음 만나는 참여코드 입력 화면 | C. 모둠 입장 |
assets/shot-lab.png | 데이터 실험실 — 변환을 걸기 전과 건 뒤 | C. 데이터 실험실 |
assets/shot-present.png | 전자칠판 발표 화면 | C. ③ 발표 |
assets/shot-sql.png | Supabase SQL Editor 에서 Run 을 누르는 화면 | D. schema.sql 실행 |
assets/shot-api.png | Supabase Settings → API 화면 | D. config.js 채우기 |
assets/shot-pages.png | GitHub 저장소 Settings → Pages 화면 | G. 배포 |
찍을 때. 가로로 넓게(1200px 안팎) 찍고 .png 로 저장하면 충분합니다. 화면에 실제 참여코드·관리코드·학생 이름이 들어가지 않도록, 연습용으로 만든 수업에서 찍거나 가린 뒤 저장하세요. Supabase 화면을 찍을 때는 키 값이 그대로 보이지 않게 가려 주세요.