홈에서 코드(Code) 또는 Canva AI → 코드를 찾습니다. 프레젠테이션 편집 화면의 일반 텍스트 입력칸과는 다릅니다.
02
명령어 입력창 찾기
이 단계가 끝나면: AI에게 만들 내용을 부탁할 준비가 됐습니다.
홈의 코드를 누릅니다. 화면에 따라 Canva AI에서 코드 만들기를 선택할 수도 있습니다.
만들고 싶은 것을 설명하는 입력칸이 보이는지 확인합니다.
처음에는 새 작업을 열고, 아래 예제 하나만 만들어 봅니다.
교사에게는 보이는데 학생에게는 코드 메뉴가 없어요
교육용 팀의 AI 이용 설정, 연령 및 계정 권한, 기능 제공 상태가 다를 수 있습니다. 새로고침 후 로그인 계정과 팀을 확인하고, 학교나 팀 관리자에게 코드 기능 허용 여부를 확인하세요. 원인을 단정하거나 유료 결제를 먼저 진행하지 마세요. 연수 실습은 교사 본인의 허용된 계정 또는 Gemini로 이어갑니다.
03
작게 기획하기
이 단계가 끝나면: 처음 만들 기능을 세 가지로 정했습니다.
처음부터 학급 전체 관리 시스템을 만들 필요는 없습니다. 5문항 퀴즈로 시작해 보세요.
누가 쓰나요? 중학생
언제 쓰나요? 수업 마무리 5분
무엇이 필요한가요? 답 고르기, 해설 보기, 다시 풀기
첫 작품은 학생별 성적 수집 없이 혼자 풀어 보는 형태로 만듭니다. 아래 프롬프트는 교과와 주제만 바꾸어 재사용할 수 있습니다.
04
첫 웹앱 만들기
이 단계가 끝나면: 눌러 볼 수 있는 퀴즈 화면이 생겼습니다.
아래 내용을 복사해 코드 입력창에 붙여넣고 생성을 누르세요. 완성된 화면을 클릭해 첫 문제를 풀어 봅니다.
복사해서 AI에게 보내세요
중학생이 수업 마무리에 풀 수 있는 「세계사 핵심 개념 퀴즈」 웹앱을 만들어 주세요.
객관식 5문항을 한 문제씩 보여 주고, 답을 고르면 정답 여부와 한 문장 해설을 표시해 주세요.
예시 문항은 산업 혁명의 시작 지역, 프랑스 혁명의 시작 연도, 제1차 세계 대전의 발발 연도, 르네상스의 시작 지역, 냉전의 두 중심 국가로 구성해 주세요. 사실관계를 확인할 수 있도록 문항과 정답 목록도 함께 적어 주세요.
마지막에는 5문제 중 맞힌 개수와 다시 풀기 버튼을 보여 주세요.
한국어로 표시하고 휴대폰에서도 버튼과 글자가 잘 보이게 해 주세요. 이름 입력, 로그인, 서버 저장, 외부 AI 호출은 넣지 마세요.
긴 설명을 읽기보다 먼저 한 번 실행해 보세요. 정답과 해설은 교사가 교과서나 수업 자료와 대조한 뒤 사용합니다.
05
직접 눌러 보고 말로 고치기
이 단계가 끝나면: 퀴즈를 끝까지 풀고 불편한 점 하나를 고쳤습니다.
일부러 오답을 골라 해설이 맞는지 확인합니다.
5문제를 모두 푼 뒤 점수가 맞는지 확인합니다.
다시 풀기를 누르면 첫 문제와 점수가 초기화되는지 확인합니다.
화면을 좁혀 글자와 버튼이 잘리는지 살펴봅니다.
복사해서 AI에게 보내세요
정답 확인 버튼을 눌러도 다음 문제로 넘어가지 않습니다.
답 선택 → 정답과 해설 표시 → 다음 문제 버튼 순서로 동작하게 고쳐 주세요.
마지막 문제에서는 결과 화면으로 이동하게 해 주세요. 문항 내용과 현재 색상은 유지해 주세요.
문제가 다르다면 첫 문장을 실제 증상으로 바꾸세요. 예: “휴대폰에서 다음 문제 버튼이 잘립니다. 버튼을 한 줄 아래로 옮겨 주세요.”
06
Canva에서 웹사이트로 게시하기
이 단계가 끝나면: 편집 화면 밖에서도 열리는 웹사이트 주소를 얻었습니다.
코드 창 오른쪽 위 게시(Publish) 또는 웹사이트 게시를 선택합니다.
사이트 주소와 제목을 확인합니다. 무료 Canva 주소를 선택하고, 유료 도메인 구매는 건너뜁니다.
설정을 확인한 뒤 게시를 누릅니다.
완료 화면의 라이브 주소를 복사합니다. 디자인 편집 링크를 복사하지 않도록 주의하세요.
‘게시’ 대신 ‘디자인에 사용’이 보여요
‘디자인에 사용’에서 웹사이트 형식을 선택하고, 편집기에 들어가 미리보기로 확인한 뒤 ‘웹사이트 게시’로 진행하세요. 화면이 공식 안내와 다르거나 게시 메뉴가 없다면 아래 도움말에서 현재 계정의 지원 상태를 확인합니다.
학교 계정은 관리자 설정에 따라 Canvas나 공개 공유 기능이 제한될 수 있으니 메뉴가 보이는지 먼저 확인하세요.
교사용 실습입니다. 학생에게 동일한 계정 접근이나 공유 권한이 있다고 가정하지 마세요. 오늘은 설치, API 키, 결제 정보가 필요 없습니다.
02
Canvas 켜기
이 단계가 끝나면: 채팅 옆에서 앱 화면을 볼 준비가 됐습니다.
새 채팅의 입력창 주변에서 Canvas를 선택합니다. 화면에 따라 ‘도구’ 또는 더보기 안에 있을 수 있습니다.
다음 단계의 요청을 입력하면 채팅 옆에 제작 공간이 열립니다.
문서만 나오면 “문서가 아니라 버튼을 눌러 실행하는 웹앱으로 만들어 주세요”라고 요청합니다.
03
한 화면짜리 결과물 정하기
이 단계가 끝나면: 배포하기 쉬운 작은 웹앱을 정했습니다.
첫 작품은 Canva 코스와 같은 5문항 퀴즈입니다. 나중에 독립 웹사이트로 배포할 수 있도록 HTML 파일 하나로 만들어 달라고 요청합니다.
HTML: 브라우저가 읽는 웹페이지 파일입니다.
미리보기: 아직 다른 사람에게 공개하지 않고 눌러 보는 화면입니다.
배포: 다른 기기에서도 주소로 접속하도록 인터넷에 올리는 일입니다.
04
Canvas에서 만들고 미리보기
이 단계가 끝나면: 퀴즈가 실행되고 단일 HTML 코드도 준비됐습니다.
아래 프롬프트를 Canvas 채팅에 보내고, 오른쪽 미리보기에서 실행해 보세요.
복사해서 AI에게 보내세요
중학생이 수업 마무리에 풀 수 있는 「세계사 핵심 개념 퀴즈」 웹앱을 만들어 주세요.
객관식 5문항을 한 문제씩 보여 주고, 답을 고르면 정답 여부와 한 문장 해설을 표시해 주세요.
예시 문항은 산업 혁명의 시작 지역, 프랑스 혁명의 시작 연도, 제1차 세계 대전의 발발 연도, 르네상스의 시작 지역, 냉전의 두 중심 국가로 구성해 주세요. 사실관계를 확인할 수 있도록 문항과 정답 목록도 함께 적어 주세요.
마지막에는 5문제 중 맞힌 개수와 다시 풀기 버튼을 보여 주세요.
한국어로 표시하고 휴대폰에서도 버튼과 글자가 잘 보이게 해 주세요. 이름 입력, 로그인, 서버 저장, 외부 AI 호출은 넣지 마세요.
독립 배포할 수 있도록 CSS와 JavaScript를 모두 포함한 index.html 파일 하나로 작성해 주세요. React, npm, 설치, API 키, 외부 라이브러리 없이 브라우저에서 바로 실행되게 해 주세요. Canvas에서 미리보기도 보여 주세요.
미리보기에서만 실행되고 HTML 파일을 못 찾겠어요
“지금 앱을 기능 그대로 유지한 단일 index.html 전체 코드로 다시 제공해 주세요. 생략하지 말고 파일로 저장해 바로 열 수 있게 해 주세요.”라고 요청합니다. React나 여러 파일을 그대로 복사하면 다음 단계의 간단한 배포 방식으로 실행되지 않을 수 있습니다.
05
오류 수정과 저장 연습하기
이 단계가 끝나면: 동작을 점검하고 내 PC에서도 실행했습니다.
정답, 오답, 마지막 결과, 다시 풀기를 차례로 눌러 봅니다.
코드 또는 콘솔에서 오류를 확인할 수 있습니다. 어려우면 오류 문구를 그대로 복사해 채팅에 보내세요.
수정 후 코드 화면에서 전체 HTML을 복사합니다. 앞뒤의 코드 블록 표시(백틱 3개)는 제외하세요.
Windows 메모장에서 ‘다른 이름으로 저장’ → 파일 이름 index.html, 파일 형식 ‘모든 파일’, 인코딩 ‘UTF-8’로 저장합니다. Mac은 텍스트 편집기에서 ‘일반 텍스트로 만들기’ 후 저장합니다.
파일을 두 번 눌러 브라우저로 엽니다. index.html.txt가 되지 않았는지 확인하세요.
복사해서 AI에게 보내세요
정답 확인 버튼을 눌러도 다음 문제로 넘어가지 않습니다.
답 선택 → 정답과 해설 표시 → 다음 문제 버튼 순서로 동작하게 고쳐 주세요.
마지막 문제에서는 결과 화면으로 이동하게 해 주세요. 문항 내용과 현재 색상은 유지해 주세요.
06
공유 링크 만들기 → 독립 사이트 배포하기
이 단계가 끝나면: 공유 링크와 웹사이트 주소의 차이를 알고 배포했습니다.
A. 가장 빠르게: Canvas 링크 공유
Canvas 오른쪽 위 공유 및 내보내기 → 공유를 누릅니다.
앱 정보와 공유 대상을 확인하고 링크를 복사합니다. 학교 계정은 조직의 공유 정책이 적용됩니다.
다른 기기에서 링크를 열어 봅니다. 로그인이나 권한 요청 여부는 대상 계정으로 직접 확인하세요.
B. 독립 웹사이트: 무료 GitHub Pages
GitHub 무료 계정을 준비합니다. 오른쪽 위 + → New repository를 선택합니다.
저장소 이름을 my-class-quiz로 적고 Public, Add README를 선택한 뒤 만듭니다. 저장소는 웹앱 파일을 보관하는 폴더라고 생각하세요.
Add file → Upload files에서 index.html을 올리고 Commit changes로 저장합니다. 파일이 없다면 ‘Create new file’에 index.html을 입력하고 HTML 전체를 붙여넣어도 됩니다.
Settings → Pages로 갑니다. Source에서 Deploy from a branch, Branch에서 main, 폴더는 /(root)를 고른 뒤 Save를 누릅니다.
배포가 끝나면 Pages 화면의 Visit site를 누릅니다. 주소는 https://내아이디.github.io/my-class-quiz/ 형태입니다. 반영까지 최대 10분 정도 걸릴 수 있습니다.
기본 정적 페이지는 무료 공개 저장소로 배포할 수 있습니다. 올린 코드도 공개되므로 실명 명단이나 비밀 키는 넣지 마세요.
404 또는 빈 화면이 나와요
index.html이 저장소 맨 위에 있는지, 파일 이름의 대소문자가 정확한지, Pages에서 main과 /(root)를 선택했는지 확인하세요. 앱 코드가 React나 외부 파일을 요구한다면 4단계의 ‘단일 HTML’ 요청으로 다시 만든 뒤 파일을 교체하세요. 새로 배포되는 동안 잠시 기다렸다가 다시 확인합니다.
GitHub Pages 주소를 시크릿 창과 휴대폰에서 열어 봅니다. 내 PC의 file:// 주소를 공유하면 다른 사람은 열 수 없습니다.
퀴즈를 끝까지 풀어 정답과 해설, 결과를 확인합니다.
아래 QR 도구로 주소를 바꾸고 휴대폰 카메라로 찍어 봅니다.
수정할 때는 원래 Gemini 대화에서 고친 전체 HTML을 받아 같은 저장소의 index.html을 교체하고 Commit changes로 저장합니다. 배포가 끝나면 같은 주소를 다시 확인하세요.
Canvas 링크를 공유한 경우에도 원본 수정이 기존 링크에 반영됐다고 가정하지 말고, 공유 화면과 대상 계정에서 확인하세요. 필요하면 새 공유 링크를 만듭니다.
완성한 주소를 QR로 바꾸세요
미리보기나 편집 링크가 아닌, 확인을 마친 게시 주소 또는 공유 링크를 넣어 주세요.
다음에는 다른 주제로 바꿔 보세요
퀴즈를 만들었다면 다음 실습은 모둠 활동 타이머나 개념 뒤집기 카드가 좋습니다. 아래 요청을 복사하고 필요한 숫자와 주제를 바꾸어 보세요.
복사해서 AI에게 보내세요
모둠 활동용 5분 타이머 웹앱을 만들어 주세요. 시간 설정, 시작, 일시정지, 초기화 버튼을 넣고 남은 시간을 크게 보여 주세요. 휴대폰에서도 쓰기 쉽게 만들고, 로그인과 서버 저장은 넣지 마세요. Gemini에서는 CSS와 JavaScript를 포함한 index.html 하나로 작성하고 미리보기를 보여 주세요.
메뉴가 달라졌다면 공식 안내를 확인하세요
확인일: 2026.10.27. 화면과 이용 한도는 계정 및 서비스 업데이트에 따라 달라질 수 있습니다.
프로젝트 만들기를 누르고 이름을 영문으로 짓습니다. (예: my-first-webapp-2026)
Google 애널리틱스는 꺼 두셔도 됩니다. 오늘 실습에는 필요 없습니다. “사용 안 함”으로 두고 넘어가세요.
프로젝트가 만들어지면 프로젝트 이름을 메모해 두세요. 잠시 뒤에 고릅니다.
console.firebase.google.com
프로젝트 만들기
프로젝트 이름: my-first-webapp-2026
이 프로젝트에 Google 애널리틱스 사용사용 안 함
가장 쉬운 방법
② Codex에게 배포를 부탁하세요
아래 문장을 복사해 Codex 입력칸에 붙여넣으세요. 필요한 설치와 명령어는 Codex가 대신 진행합니다.
Codex에게 보낼 말
지금 만든 index.html 웹앱을 Firebase Hosting으로 배포해 줘. Node.js나 Firebase CLI가 없으면 필요한 것부터 설치해 줘. 내가 로그인하거나 선택해야 할 때는 한 번에 하나씩 쉬운 한국어로 알려 줘. 기존 index.html은 절대 덮어쓰지 마.
설치 허용을 물으면 ‘허용’을 누릅니다.
구글 로그인 창이 열리면 Firebase 프로젝트를 만든 계정으로 로그인합니다.
프로젝트를 고르라고 하면 조금 전에 만든 프로젝트 이름을 알려 줍니다.
Hosting URL이 나오면 배포 성공입니다.
선택 사항 · 직접 터미널 명령어로 배포하기
강사가 직접 명령어를 입력하라고 했을 때만 펼치세요. 먼저 Node.js가 설치되어 있어야 합니다.
터미널 — ② Firebase 도구 설치
$ npm install -g firebase-tools
터미널 — ③ 구글 계정 로그인
$ firebase login? Allow Firebase to collect CLI and Emulator Suite usage...? (Y/n)→ 브라우저가 열리면 구글 계정을 고르고 [허용]을 누르세요.✔ Success! Logged in as 선생님계정@gmail.com
터미널 — ④ 준비(init)
$ firebase init hosting
여기서 물어보는 것과, 무엇을 고를지
화살표 키(↑↓)로 고르고 Enter로 선택합니다. 아무것도 안 치고 엔터만 누르면 기본값이 선택됩니다.
터미널이 묻는 말
이렇게 고르세요
Please select an option (프로젝트를 어떻게 할까요)
Use an existing project → 조금 전 콘솔에서 만든 프로젝트 이름을 고릅니다
What do you want to use as your public directory? (어느 폴더를 인터넷에 올릴까요)
. 또는 public → index.html이 폴더 바로 아래 있으면 점 하나(.)를 치고 엔터
Configure as a single-page app? (한 화면짜리 앱인가요)
N (아니오)
Set up automatic builds with GitHub? (깃허브 자동 배포를 쓸까요)
N (아니오)
File index.html already exists. Overwrite? (index.html이 이미 있습니다. 덮어쓸까요)
프로젝터 화면이 작거나 흐릴 때 그렇습니다. 전면 송출하기 버튼으로 화면 가득 키우시고, 교실 조명을 조금 낮춰 보세요.
③ 학생 기기에 인터넷이 없습니다.
배포된 앱은 인터넷이 있어야 열립니다. 학교 와이파이 비밀번호를 함께 안내하시거나, 모둠에 한 대씩만 접속하게 하는 방식으로 운영해 보세요.
문제 해결
자주 막히는 곳 10가지
연수 현장에서 실제로 가장 많이 나온 질문들입니다. 해당하는 항목을 눌러 펼쳐 보세요.
1. Codex에 글을 보냈는데 아무 반응이 없어요.
먼저 입력칸 오른쪽의 보내기(↑) 버튼을 눌렀는지 확인하세요. 화면에 ‘작업 중’ 표시가 보이면 정상입니다. 5분 넘게 같은 화면이면 “지금 어디까지 했어?”라고 한 번 더 보내세요.
2. 선택한 터미널 방식에서 command not found가 떠요.
“그런 이름의 프로그램을 못 찾겠습니다”라는 뜻입니다. 대부분 설치 직후 터미널을 새로 열지 않아서 생깁니다. 터미널 창을 완전히 닫고 새로 연 뒤 다시 쳐 보세요. 그래도 같다면 설치 명령어를 한 번 더 실행해 주시고, 설치할 때 오류 메시지가 없었는지 확인해 주세요.
3. 선택한 터미널 방식에서 한글이 깨져 보여요.
글자 저장 방식이 달라서 생기는 표시 문제입니다. 작업 자체에는 지장이 없습니다. Windows에서는 명령 프롬프트(cmd) 대신 Windows 터미널이나 PowerShell을 쓰시면 대부분 해결됩니다. 웹앱 화면의 한글이 깨진다면 그건 다른 문제이니, 도구에게 “한글이 깨져. 문자 인코딩을 UTF-8로 맞춰 줘. 다른 건 바꾸지 마.”라고 말씀하세요.
4. AI가 엉뚱한 걸 고쳤어요.
지시 범위가 넓었기 때문입니다. 먼저 “방금 수정 전으로 되돌려 줘.”라고 하신 뒤, 이번에는 고칠 곳을 하나만 집어 “○○만 바꿔 줘. 나머지는 그대로 둬.”라고 다시 요청하세요. 5단계의 범위 지정 원칙이 바로 이 문제를 막기 위한 것입니다.
5. 배포했는데 옛날 화면이 그대로 보여요.
캐시 때문입니다. 브라우저가 “아까 본 화면”을 저장해 두었다가 그대로 보여 주는 것입니다. WindowsCtrl+Shift+R · macOS⌘+Shift+R 로 강력 새로고침해 보세요. 시크릿 창에서 열어 보시면 확실합니다. 학생들에게 안내하실 때도 이 방법을 알려주시면 좋습니다.
6. 학교 와이파이에서 설치나 로그인이 안 돼요.
학교·교육청 망이 외부 접속을 막는 경우가 많습니다. 가장 빠른 해결책은 휴대폰 핫스팟입니다. 설치와 로그인만 핫스팟으로 끝내고 다시 학교 와이파이로 돌아오셔도 됩니다. 계속 쓰셔야 한다면 정보부 선생님께 해당 주소의 차단 해제를 요청해 보세요.
7. 크레딧(사용량)이 떨어졌다고 나와요.
도구마다 일정 시간 동안 쓸 수 있는 양이 정해져 있습니다. 연수 중이라면 강사에게 알려 주세요. 혼자 하실 때는 잠시 뒤 다시 시도하시거나 구독 상태를 확인해 주세요. 아껴 쓰는 요령은 한 번에 하나씩, 짧고 구체적으로 요청하는 것입니다. 같은 지시를 여러 번 반복하는 것이 가장 많이 소모합니다.
8. 되돌리고 싶어요.
가장 간단한 방법은 도구에게 말하는 것입니다. “방금 수정 전으로 되돌려 줘.” 한 문장이면 됩니다. 중요한 순간에는 Codex의 변경 내역을 확인하거나 결과 파일을 따로 내려받아 보관하세요. 기존 폴더를 연결해 작업했다면 잘 되던 버전을 복사해 백업해도 됩니다.
9. 오늘 다 못 했는데, 다음에 이어서 하려면요?
다음에 ChatGPT 앱을 열고 → Codex를 고르고 → 최근 작업에서 오늘 작업을 다시 열면 이어서 할 수 있습니다. 기존 폴더를 연결했던 작업은 같은 프로젝트에서도 찾을 수 있습니다. 설치와 로그인은 다시 하지 않으셔도 됩니다. 이 페이지의 진도 체크도 같은 브라우저에서 여시면 그대로 남아 있습니다.
10. 학생에게 써도 되나요? 개인정보가 걱정됩니다.
오늘 만든 것처럼 로그인이 없고 개인정보를 저장하지 않는 앱은 위험을 크게 줄일 수 있습니다. 그래도 학교의 개인정보·정보보안 지침을 먼저 확인하고, 다음 세 가지를 꼭 지켜 주세요. ① 학생 실명·사진·연락처를 서버로 보내지 않기, ② 주소는 누구나 열 수 있으므로 민감한 내용을 넣지 않기, ③ 학교에서 정식으로 운영하실 때는 정보부·관리자와 사전 협의하기. 걱정되는 기능이 있다면 아예 넣지 않는 쪽이 언제나 낫습니다.
마무리
60분 완주 체크리스트
일곱 개를 모두 채우셨다면 오늘 목표를 달성하신 것입니다.
60분, 완주하셨습니다!
선생님은 방금 기획 → 제작 → 수정 → 배포 → 공유를 혼자 힘으로 한 바퀴 돌았습니다.
이제 같은 방법으로 다른 단원, 다른 과목의 앱도 만드실 수 있습니다.
다음 단계 추천
· 심화편 예고 — 학생 응답을 데이터베이스에 쌓고, 교사 화면에서 실시간으로 확인하는 방법을 다룹니다.
· 에듀테크 교사 연구회에 오세요 — 만든 것을 나누고 함께 고쳐 가는 자리가 열려 있습니다. 참여 코드는 dongssam입니다.