코드 고도화, 게이미피케이션 이론, 그리고 웹 배포
Vibe 코딩을 활용하여 수평 잡기 시뮬레이션의 기본 HTML/CSS/JS 뼈대를 단일 파일로 생성하고 VS Code로 확인했습니다.
이미지 파일명: images/week3_obj.png
Prompt: A split screen illustration. Left side shows a balance scale simulation. Right side shows a glowing rocket launching a website to the cloud
“Gamification is the use of game design elements in non-game contexts.”
- Deterding et al. (2011, p. 9) -
자연 현상을 모방하여 조작하는 환경
시뮬레이션에 목표, 제약, 보상을 부여
왜 굳이 과학 탐구에 ‘게임’ 요소를 넣어야 할까요?
어려운 과학 공식을 단순 암기하는 것이 아니라, 미션을 클리어하기 위한 ‘무기’로 인식하게 만들어 자발적인 학습 동기를 유발합니다. (Kapp, 2012)
게임에서의 ‘Game Over’는 심리적 유예(Psychosocial moratorium)를 제공하여, 오답을 두려워하지 않고 끊임없이 가설을 세우고 검증(Trial & Error)하게 합니다. (Gee, 2003)
점수, 랭킹, 시각적 보상 시스템은 수동적으로 수업을 듣던 학생들을 화면 앞으로 끌어당겨 실험 조작에 적극적으로 참여하게 만듭니다. (Hamari et al., 2014)
가장 기초적이고 대표적인 게임화 설계 요소 (Werbach & Hunter, 2012)
행동주의(Behaviorism) 심리학의 조작적 조건형성(외재적 보상)에 이론적 기반을 둠
학습자의 행동(문제 풀이, 실험 성공)에 대한 즉각적이고 정량적인 보상. 진행 상황을 시각화합니다.
특정 목표 달성(예: 10회 연속 수평 맞추기) 시 부여되는 시각적 증표. 컬렉션 욕구를 자극합니다.
자신의 위치를 타인과 비교. 사회적 경쟁과 협력을 유도합니다. (DB 연동 시 구현 가능)
이미지 파일명: images/sdt_theory.png
Prompt: A diagram showing Self-Determination Theory with three overlapping circles: Autonomy, Competence, Relatedness.
정해진 답을 외우는 것이 아니라, 학생 스스로 변수를 통제하고 실험 방향(물체의 위치와 개수)을 결정할 수 있는 환경 제공
점진적으로 어려워지는 미션과 즉각적인 피드백(정답 확인)을 통해 “내가 해냈다”는 성취감과 통제력 부여
추후 DB 연동 시 랭킹 시스템이나 친구들의 기록을 공유하며 학습 공동체 소속감 증진
학습자가 과제에 온전히 빠져드는 ‘몰입(Flow)’ 상태는 과제의 난이도(도전)와 학습자의 수준(능력)이 적절히 균형을 이룰 때 발생합니다. (Csikszentmihalyi, 1990)
이미지 파일명: images/flow_theory.png
Prompt: A chart showing Flow theory by Csikszentmihalyi, X-axis Skills, Y-axis Challenges, with Anxiety, Flow, and Boredom zones
앞서 배운 4가지 이론을 AI 프롬프트 작성 시 어떻게 적용해야 할까요?
점수(PBL)를 남발하지 마세요. 과학 원리(수평 맞추기)를 이해하는 것 자체가 의미 있는 경험(구성주의)이 되도록 프롬프트를 설계하세요.
정해진 미션만 풀게 하지 말고, 언제든 학생들이 원하는 무게와 거리를 마음대로 조작해 볼 수 있는 '자유 탐구 모드'를 반드시 포함하세요.
AI에게 “레벨 1은 한 개의 추만, 레벨 2는 두 개의 추를 사용하는 등 점진적으로 난이도가 올라가는 랜덤 문제 시스템을 만들어줘”라고 지시하세요.
틀렸을 때 단순히 “Game Over” 처리만 하면 학생은 좌절(Flow 이탈)합니다. “오른쪽이 너무 무겁네요! 거리를 줄여볼까요?”와 같이 심리적 유예를 돕고 재도전을 유도하는 피드백을 프롬프트에 넣으세요.
AI가 만들어준 초기 코드는 작동은 하지만 교육 현장에 바로 쓰기에는 투박하고 논리적 허점이 있을 수 있습니다. 학생의 눈높이에서 불편한 점을 찾아 AI에게 수정을 요청해야 합니다.
User: "오른쪽 물체의 조작 슬라이더가 왼쪽에 있어서 직관적이지 않아. 오른쪽 슬라이더는 화면 오른쪽에 배치해줘."
AI: "네, 알겠습니다. CSS의 Flexbox를 수정하여 양쪽 조작 패널을 좌우로 분리했습니다. 코드는 아래와 같습니다..."
AI에게 "더 예쁘게 해줘"라는 모호한 말보다, 구체적인 메타포와 요구사항을 주어야 합니다.
기존의 수평 잡기 시뮬레이션 코드의 논리는 그대로 유지하되, 초등학생들이 좋아할 만한 디자인으로 UI를 전면 개편해 줘.
- 전체 배경은 따뜻한 파스텔 톤으로 변경
- 버튼은 입체적이고 둥근 모양(Glassmorphism 스타일)으로 적용하고 호버 애니메이션 추가
- 화면 상단 중앙에 현재 왼쪽과 오른쪽의 "무게 × 거리 = 값" 공식을 실시간 텍스트로 보여주는 대시보드 추가
- 모든 폰트는 귀여운 고딕 스타일 적용
이미지 파일명: images/game_ui_concept.png
Prompt: A user interface design for an educational physics game about a balance scale, showing score, a timer, and a 'Mission' text box.
자유 탐구 모드와 더불어, '문제 풀이 모드(미션)'를 추가해 달라고 AI에게 요청합니다.
난이도를 점진적으로 올리는 문제 출제 로직 추가
“왼쪽 3번 칸에 2개의 상자가 있습니다. 수평을 맞추세요!”
정답을 맞추면 10점 획득, 시각적인 폭죽(Confetti) 이펙트 추가
60초 안에 최대한 많은 수평을 맞추도록 긴장감 부여
"게임 기능 추가해줘"라고만 하면, AI가 기존의 물리 로직이나 힘들게 맞춰놓은 디자인을 제멋대로 덮어씌워 멀쩡하던 기능이 고장 나는 경우가 많습니다.
코드가 에러 없이 돌아간다고 끝이 아닙니다. 실제 교실에서 초등학생이 이 화면을 봤을 때 직관적으로 무엇을 해야 할지 알 수 있는지 점검하세요.
이미지 파일명: images/student_playtest.png
Prompt: A young student looking at a laptop screen with a bright smile, interacting with a physics game
지금까지 만든 HTML 파일은 '내 노트북'에서만 열립니다. 학생들에게 주려면?
C:\Users\Desktop\index.html
파일을 USB에 담아 학생 태블릿에 하나하나 옮겨야 함. (현실성 0%)
https://my-science.pages.dev
인터넷 창에 주소만 치면 세상 누구나 접속 가능!
웹을 배포하는 수많은 서비스(GitHub Pages, Vercel 등) 중 교사를 위한 최고의 선택
대규모 트래픽 무제한(Unlimited) 지원. 학급 전체가 동시에 접속해도 끄떡없이 평생 무료로 사용 가능합니다.
올리기만 하면 자동으로 자물쇠 마크(보안)가 붙어 까다로운 학교 네트워크 방화벽에 막히지 않습니다.
복잡한 터미널 명령어(Git) 없이 폴더를 마우스로 끌어다 놓기만 하면 즉시 배포됩니다.
다음 주부터 배울 DB 연동(D1, Workers)을 같은 플랫폼 안에서 가장 쉽게 구현할 수 있습니다.
dash.cloudflare.com/sign-up 접속 후 이메일 가입
가입한 메일함에서 링크를 클릭하지 않으면 배포가 막힙니다.
우측 상단 프로필(지구본 아이콘) 클릭 → Language를 한국어로 변경합니다. (이후 실습은 한국어 메뉴 기준)
좌측 사이드바 Compute 섹션 아래 [Workers 및 Pages]를 클릭합니다.
한국어 언어 설정 스크린샷 자리
images/cf_lang_setting.png
Workers 및 Pages 메뉴 스크린샷 자리
images/cf_menu_pages.png
index.html 파일이 들어있는 폴더를 올립니다.
index.html이 들어있는 폴더 전체를 끌어다 놓습니다. 파일 목록에 index.html이 보이면 성공!크롬 브라우저 상단에서 우클릭하여 '이 페이지의 QR 코드 만들기' 활용. TV 화면에 띄우기
학급 게시판에 링크만 올려두면 아이들이 태블릿으로 바로 클릭하여 진입
방금 만든 링크를 카카오톡 단톡방에 올려 옆자리 동기의 게임을 핸드폰으로 플레이해봅시다.
"게임을 새로고침하면 점수가 자꾸 0점으로 초기화돼요!"
우리가 만든 웹은 기본적으로 기억력이 없습니다. 하지만 웹 브라우저가 가진 고유의 저장 공간인 'Local Storage'를 활용하면 내 컴퓨터에 점수를 보관할 수 있습니다.
사용자의 브라우저 캐시에 데이터(점수) 저장
학교 태블릿에서 100점을 받아도, 집에 있는 PC로 접속하면 점수가 연동되지 않고 0점입니다.
학생이 브라우저 앱을 지웠다 깔거나 방문 기록(캐시)을 삭제하면 저장된 점수가 즉시 날아갑니다.
데이터가 각 학생의 기기 안에만 갇혀 있어, 교사가 학급 전체의 성취도를 한눈에 확인할 수 없습니다.
데이터를 각자의 컴퓨터가 아닌 '서버(Cloud)'의 한 공간에 안전하게 모으는 방법 (5~6주차 예정)