바이브코딩으로 만드는 역사수업 웹앱
진행: 동쌤(김동은 선생님). 오늘은 도구 하나를 골라 작은 퀴즈를 만들고, 직접 고친 뒤 인터넷 주소로 공유해 봅니다.1쪽 · 어떤 역사 웹앱을 만들까요?
처음 오셨다면 여기부터 시작하세요
오늘 사용할 도구 하나만 골라 주세요
코드를 읽거나 영어 명령어를 외우지 않아도 됩니다. 도구 선택 → 예제 만들기 → 한 가지 수정 → 배포 → 작품 공유 순서로 진행합니다. 처음이라면 설치 없이 쓰는 Gemini로 시작하기 좋습니다.
- 노트북이나 PC에서 Chrome 또는 Edge를 열었나요?
- 선택한 도구에 로그인하고, 명령을 입력하는 칸을 열 수 있나요?
- 진행자가 수업방 번호를 알려 주었다면 위쪽 메뉴에서 입장했나요? 수업방 없이도 혼자 실습할 수 있습니다.
프롬프트, 웹앱, 배포가 무슨 뜻인가요?
- 프롬프트
- AI에게 보내는 부탁입니다. 무엇을 만들고 싶은지 문장으로 적습니다.
- 웹앱
- 인터넷 브라우저에서 쓰는 퀴즈나 타이머 같은 도구입니다.
- 미리보기
- AI가 만든 화면을 내 화면에서 먼저 눌러 보는 것입니다.
- 배포
- 다른 기기에서도 주소를 눌러 사용할 수 있도록 인터넷에 올리는 것입니다.
- Canva와 Canvas
- Canva는 디자인 서비스이고, Canvas는 Gemini 안에서 앱이나 문서를 만드는 작업 공간입니다.
아래에는 선생님의 경험을 적는 칸이 있습니다. 2~5쪽에서 작품을 둘러보고 생각을 정리한 뒤 6쪽에서 직접 만들어도 좋습니다.
2쪽 · 동쌤 작품 둘러보기
동쌤이 바이브코딩으로 만들어 수업에 쓰고 있는 웹앱 16편이에요. 누르면 새 탭에서 바로 열려요.
















동쌤(김동은 선생님)의 수업 웹앱 모음입니다. 마음에 드는 작품을 골라 직접 체험해 보세요.
3쪽 · 학생이 되어 해 보기
이제 학생이 되어 볼게요. 먼저 임시정부 체험판(약 12분)을 해 보고, 시간이 남으면 나머지 두 개도 열어 보세요. 3D 게임이라 노트북이나 태블릿이 편해요.

임시정부 : 광복을 위한 꿈 체험판
대한민국 임시정부가 한 일을 직접 걸어 다니며 알아보는 3D 역사 RPG예요. 선생님들이 12분 안에 해 볼 수 있게 줄였어요.
임시정부 체험판 시작 ↗

아직 오지 않은 광복 · 한국광복군 추리 게임
한국광복군을 주제로 한 역사 추리 게임을 체험하고, 자료와 단서를 수업 활동에 어떻게 활용할지 생각해 봐요.
광복군 추리 게임 시작 ↗해 보면서 ‘내 수업에서는 어디에 쓸까?’를 생각해 두세요. 4쪽에서 이야기 나눠요.
4쪽 · 해 보니 어땠나요?
5쪽 · 만들 때 조심할 점
6쪽 · 도구를 골라 만들고 고치기
먼저 아래 예제로 작동하는 퀴즈 하나를 만들어 보세요. 익숙해지면 ‘내 수업에 맞는 프롬프트 만들기’를 펼쳐 주제와 기능을 바꿉니다. 한 번에 모든 도구를 배우지 않아도 됩니다.
내 수업에 맞는 프롬프트 만들기
예제를 한 번 완성한 뒤 사용하세요. 교과·단원·주제를 쓰고 필요한 기능을 고르면 아래 완성된 프롬프트에 즉시 반영됩니다. 위의 역사 퀴즈는 첫 실습용 고정 예제입니다. 입력 조건을 바꾸면 프롬프트가 다시 만들어지며, 직접 수정한 내용은 이전 프롬프트 복원으로 되돌릴 수 있습니다.
7–9쪽 · 인터넷에 올리고 함께 보기
배포는 다른 사람도 내 웹앱을 주소로 열 수 있게 하는 일입니다. 선택한 도구에 맞는 방법부터 안내합니다. 끝낸 단계에 체크하고, 다른 기기에서도 열리는지 확인하세요.
아래에서 선택한 방법 하나만 완료하면 됩니다. AI 도구의 구독료와 웹사이트 호스팅 요금은 별개입니다. 각 서비스의 무료 한도와 계정 설정을 확인하세요.
게시 메뉴가 없거나 Canva Code를 쓸 수 없어요
현재 계정의 기능 제공 상태와 학교·팀의 AI 설정을 먼저 확인하세요. 설치나 결제를 반복하지 않아도 됩니다. 6쪽에서 Gemini로 바꾸면 같은 주제로 새 퀴즈를 만들어 실습을 이어갈 수 있습니다.
메모장에서 HTML 저장하기 / 404 화면 해결하기
Windows 메모장에 HTML 전체를 붙여 넣고 ‘다른 이름으로 저장’을 누르세요. 파일 이름은 index.html, 파일 형식은 ‘모든 파일’, 인코딩은 UTF-8로 정합니다. index.html.txt로 저장되지 않았는지 확인하세요. Mac 텍스트 편집기는 ‘일반 텍스트로 만들기’를 먼저 선택합니다.
코드 앞뒤의 백틱 3개는 넣지 마세요. 404가 나오면 올린 폴더 맨 위에 index.html이 있는지 확인하세요. React나 여러 파일로 된 프로젝트는 완성된 배포용 폴더가 필요합니다. 첫 실습은 HTML 파일 하나로 만들어 달라고 요청하세요.
수정 후에는 같은 사이트의 Deploys 화면에 수정한 폴더를 다시 올리세요. 새 사이트를 매번 만들지 않아도 됩니다.
동쌤의 웹앱들도 이 방법으로 올렸어요. 주소가 내가 정한 이름.web.app으로 깔끔하고, 나중에 학생 답을 실시간으로 모으는 데이터베이스(Firestore)도 같은 곳에 붙일 수 있어요. 첫 실습은 정적 웹페이지만 올립니다. Firebase의 무료 요금제(Spark) 한도 안에서 진행하고, 결제가 필요한 기능은 추가하지 않습니다.
이 작업 폴더의 웹앱을 Firebase Hosting에 배포해 주세요. 먼저 파일이 실제로 실행되는지 확인하고 배포할 프로젝트 ID를 알려 주세요. 기존의 다른 사이트는 바꾸지 말아 주세요. 로그인과 승인이 필요한 단계는 제가 직접 진행할 수 있게 안내해 주세요. 첫 실습은 무료 한도 안의 정적 웹사이트로만 배포하고, 완료 후 실제 접속 주소와 직접 확인한 내용을 알려 주세요.아래는 직접 진행할 때의 순서입니다. AI와 진행하더라도 로그인 계정, 프로젝트 ID, index.html 위치를 함께 확인하세요.
처음 한 번만: 컴퓨터 준비하기- 설치 권한 오류가 나면 오류 문구를 복사해 강사나 사용 중인 코딩 도구에 보여 주세요. 설정을 임의로 바꾸기보다 HTML 파일 배포 방법으로 실습을 이어가도 됩니다.
npm install -g firebase-tools firebase login
- Mac에서는 터미널에
cd를 입력한 뒤 폴더를 끌어다 놓고 Enter를 누르세요. 폴더 경로가 입력됩니다. firebase init hosting- Please select an optionUse an existing project를 고르고 방금 만든 프로젝트 선택
- public directory?. (마침표 하나, 현재 폴더)를 입력하고 Enter
- single-page app?N
- GitHub automatic builds?N
- Overwrite index.html?직접 만든 파일이 있다면 N을 선택해 보관합니다.
- 나중에 고칠 때는 my-class-app 폴더의 index.html을 수정한 뒤
firebase deploy --only hostingfirebase deploy --only hosting을 다시 실행하면 같은 주소에 바로 반영돼요.
지금은 갤러리가 이 기기에만 저장돼요. 수업방에 들어오면 모든 선생님의 갤러리에 함께 올라가요.
눌러서 해 보고, 마음에 들면 ♥ 좋아요를 눌러 주세요.
10쪽 · 마무리 퀴즈
오늘 배운 내용을 가볍게 확인해 봐요. 보기를 누르면 바로 정답과 풀이가 나와요.
11쪽 · 연수 만족도
이름은 들어가지 않아요. 복사해서 진행자가 알려 준 설문 칸에 붙여 넣어 주세요.