요즘 교사를 위한
웹앱 만들기 with 바이브 코딩

맥락을 잡아가며, 친절히 설명하는 바이브 코딩 기반 웹앱 개발 시작을 위한 최고의 지침서

저자: 이상선 · 김진관 · 이대형 · 윤신영 · 김삼섭 지음 | 출판: 한빛미디어 (2026)
실습 프로젝트
요즘 교사를 위한 웹앱 만들기 with 바이브 코딩
  • 우리 반 '칭찬 보드' 앱 만들기
  • 학생 이름만 넣으면 되는 '급식 알리미' 앱 만들기
  • 우리 반 '글쓰기 SNS' 만들어 학생과 나누기
  • 모둠이 함께 쓰는 '실시간 협업 보드' 만들기
  • 사진 찍으면 알려주는 'AI 학습 앱' 만들기
도서 서문 Author's Note

저자의 말: 개발을 몰라도 괜찮아!

이 책은 실제 저자들이 수많은 선생님을 대상으로 AI 코딩, 혹은 바이브 코딩 강의를 진행하며 마주한 한 가지 본질적인 질문에서 시작되었습니다.

선생님들의 가장 본질적인 질문
‘코딩이나 웹 서비스 개발에 대한 지식이 전혀 없는데, 그 기초는 대체 어디서부터 어떻게 배워야 할까?’

시중에는 입문자부터 중급 이상 독자를 위한 바이브 코딩 개발서가 많이 나와 있습니다. 하지만 대부분 AI 통합 개발 도구(AI IDE)의 기능을 소개하거나 MCP, Skill 같은 최신 개념을 다루는 데 초점을 맞추고 있습니다. 그래서 책과 영상은 넘쳐나지만, 정작 개발을 처음 시작하는 사람이 궁금해하는 가장 기본적이고 본질적인 개념을 차근차근 익힐 수 있는 자료는 마땅히 찾기 어려운 것이 현실입니다.

현장에서 만난 생생한 목소리들
  • "선생님, 바이브 코딩으로 웹 서비스를 만들고 싶은데, 웹 서비스가 뭔지 좀 쉽게 설명해 주세요."
  • "바이브 코딩으로 뭔가 만들긴 했는데, 이게 어떻게 돌아가는지 전혀 모르겠어요."
  • "러버블로 바이브 코딩을 하는데, 비용이 너무 많이 나와요."
  • "코딩 기초를 공부하려고 책을 샀는데, 너무 어려워요."

이 책은 바로 이런 질문에서 출발했습니다. 바이브 코딩을 이제 막 시작한 분들은 물론, 어느 정도 익숙해진 분들도 여전히 풀지 못했던 의문에 답하기 위해 이 책을 썼습니다. 개발자가 아닌 선생님이 왜 바이브 코딩을 배워야 하는지, 웹 앱과 웹 서비스를 이해하는 데 꼭 필요한 기초는 무엇인지, 그리고 전문 개발자들은 실제로 어떤 방식으로 개발하는지 하나씩 살펴봅니다.

이 책을 천천히 읽으며 따라 하다 보면, 지금까지 막연하게 느껴졌던 웹 서비스와 코딩의 기본 개념이 조금씩 연결되고, 앞서 품었던 여러 의문도 어느새 자연스럽게 풀리는 경험을 하시게 될 것입니다. 어렵게 생각하지 마시고, 지금 바로 시작해 보세요. 코딩을 처음 접하는 선생님도 하나씩 따라 하다 보면 어느새 자신만의 웹 서비스를 만들어 볼 수 있습니다.

도전하는 선생님께 이 책이 든든한 길잡이가 되어 드리기를 바랍니다.
2026년 8월 저자 일동 (이상선, 김진관, 이대형, 윤신영, 김상섭)

프롤로그 P-1 소요 시간: 약 4분

P-1. 코딩, 아직도 어렵게만 느껴지시나요?

1. 학교 현장의 디지털 역설: 도구는 많은데 왜 내 일은 늘어날까?

우리는 지금 그 어느 때보다 화려한 디지털 교육 환경 속에 살고 있습니다. 교실마다 전자칠판이 놓이고, 학생들에게는 1인 1태블릿이 보급되었으며, 나이스(NEIS)를 비롯한 각종 행정 시스템, 에듀테크 서비스들이 날이 갈수록 고도화되고 있습니다. 수많은 기업들이 "이 앱만 쓰면 선생님의 업무가 줄어듭니다"라고 광고하며 새로운 도구들을 쏟아냅니다. 하지만 역설적이게도 선생님들의 실질적인 업무 강도는 낮아지지 않았습니다. 오히려 관리해야 할 데이터와 익혀야 할 인터페이스, 관리해야 할 아이디와 비밀번호만 늘어난 기분이 들 때가 많죠.

사실 원인은 명확합니다. 상용 개발업체가 제작한 대부분의 디지털 도구는 '범용성'을 목적으로 만들어졌기 때문입니다. 수만 명, 수십만 명의 교사를 동시에 만족시키기 위해 만들어진 서비스는, 정작 '우리 반 혜심이가 오늘 제출한 독후감에서 나타난 독특한 감정 키워드를 추출해서 내일 상담에 활용하고 싶다'는 선생님의 아주 특수하고 구체적인 요구를 해결해주지 못합니다.

대중적인 에듀테크 도구들은 '평균적인 학생'과 '일반적인 교실'을 가정합니다. 하지만 교육은 평균이 아닌 '개별성'의 영역입니다. 우리는 결국 범용 도구의 빈틈을 메우기 위해 엑셀을 켜고, 데이터를 복사해서 붙여넣기를 반복하며, 결국 아날로그보다 더 아날로그 같은 디지털 노동의 늪으로 다시 빠져듭니다.

2. 우리가 그동안 코딩을 포기할 수밖에 없었던 이유

그동안 "코딩 한번 배워볼까?" 하고 마음먹었던 선생님들을 가로막았던 것은 세 가지 거대한 벽이었습니다.

첫째는 '문법의 벽'입니다. 기존의 코딩 입문서는 '변수', '함수', '클래스' 같은 용어부터 시작해 파이썬이나 자바스크립트의 문법을 외우게 합니다. 이는 마치 외국어를 배울 때 인사말도 하기 전에 고전문학의 문법적 구조와 16세기 고어를 배우는 것과 같습니다. 점 하나, 세미콜론 하나만 틀려도 에러 메시지를 내뱉으며 작동을 멈추는 컴퓨터의 예민함에 우리는 금방 지치고 맙니다.

둘째는 '맥락의 부재'입니다. 예제 파일들은 대개 '구구단 출력하기'나 '별 찍기' 같은 수학적인 내용들입니다. 이런 예제들은 논리력 향상에는 도움이 될지 몰라도, 내일 아침 1교시에 아이들에게 보여줄 '무작위 발표자 추첨기'를 만드는 데는 아무런 영감을 주지 못합니다. 나에게 당장 필요한 실용성이 느껴지지 않는 공부는 금세 동력을 잃고 맙니다.

셋째는 '설정의 지옥'입니다. 코딩을 시작하기도 전에 파이썬을 설치하고, 환경 변수를 설정하고, 편집기를 다운로드하다가 하루가 다 갑니다. 터미널에 알 수 없는 명령어들을 입력하다 보면 결국 포기 선언을 하게 됩니다.

조금 더 쉽게
과거의 코딩 공부가 '자동차 엔진의 연소 원리와 변속기 기어 비율'을 밑바닥부터 공부하는 과정이었다면, 이제는 'AI라는 든든한 내비게이션과 자율주행 기능'을 갖춘 신형 자동차에 올라타 일단 운전대를 잡아보는 것으로 패러다임이 바뀌었습니다. 목적지(교육적 의도)만 명확하다면, 엔진이 어떻게 돌아가는지는 차근차근 알아가도 좋습니다.

3. 지침(Guide)이 곧 개발(Development)인 시대

2025년 이후 우리가 마주한 개발의 본질은 더 이상 '타이핑 노동'이 아닙니다. 이제 코딩은 '논리적인 사고를 바탕으로 AI에게 명확하게 목적하는 바를 안내하고, 지시하는 과정'으로 재정의됩니다.

교사는 본질적으로 이미 훌륭한 안내자입니다. 학생들에게 수행평가의 기준을 설명하고, 활동 순서를 1번부터 5번까지 안내하며, 다양한 상황에 대해 지침을 주는 일상적인 행위가 프로그래밍의 핵심 논리(조건문, 반복문, 함수)와 정확히 일치합니다.

여러분이 동료 선생님들에게 "우리 반 아이들의 수학 평균보다 20점 가량 낮은 학생들을 위해 맞춤형 학습지를 만들어보면 어떨까요?"라고 말할 수 있으시다면, 여러분은 이미 앱을 만들 준비가 80% 이상 끝난 것입니다. 나머지 구현은 AI가 담당하기 때문입니다.

프롤로그 P-2 소요 시간: 약 4분

P-2. '바이브 코딩', 문제의식에서 출발하는 개발

1. 인공지능 거장의 고백: "나는 이제 코딩하지 않고, 바이브에 맡긴다"

소프트웨어 역사상 가장 드라마틱한 변화가 지금 이 순간 일어나고 있습니다. 테슬라의 자율주행(Autopilot) 팀을 이끌고 오픈AI의 창립 멤버이자 수석 과학자였던 안드레이 카파시(Andrej Karpathy). 그는 수십 년간 전 세계에서 가장 정교한 코드를 짜온 권위자입니다. 그런 그가 최근 자신의 SNS에 올린 짧은 문장은 전 세계 테크 업계를 큰 충격에 빠뜨렸습니다.

Andrej Karpathy의 바이브 코딩 선언
"저는 '바이브 코딩(Vibe Coding)'이라는 새로운 코딩 방식을 좋아합니다. 즉, 분위기에 완전히 몰입하고, 기하급수적인 증가를 받아들이고, 코드가 존재한다는 사실조차 잊어버리는 거죠. (There's a new kind of coding I call 'vibe coding', where you fully give in to the vibes, embrace exponentials, and forget that the code even exists.)"

이 말은 무슨 뜻일까요? 수억 줄의 코드를 읽어내던 그가 왜 코딩 대신 '바이브'라는 추상적인 단어를 선택했을까요? 이유는 간단합니다. 이제 AI가 인간보다 훨씬 더 빠르고 정확하게 코드를 작성할 수 있게 되었기 때문입니다.

카파시는 이제 컴퓨터와 대화할 때 '어떤 문법을 써서 기능을 구현할까' 고민하는 대신, '이 소프트웨어가 어떤 느낌으로 작동해야 하는지, 어떤 흐름으로 사용자와 상호작용해야 하는지'라는 본질적인 의도(Vibe)를 AI에게 전달하는 데 대부분의 시간을 씁니다.

2. 바이브 코딩의 3단계 순환 프로세스: See - Say - Run

1. See (관찰하기)

현재 내가 만든 앱의 상태와 화면을 냉철하게 확인합니다.

2. Say (설명하기)

관찰한 내용을 바탕으로 AI에게 사람의 언어로 논리적으로 지시합니다.

3. Run (실행하기)

결과물을 브라우저에서 실행해 보고 다시 다음 단계로 순환합니다.

프롤로그 P-3 소요 시간: 약 4분

P-3. 이 책을 통해 만들게 될 것들, 그리고 얻게 될 것들

상상을 실제 도구로 바꾸는 4가지 파트의 디지털 여정

이 책의 모든 챕터는 실제 교실 현장에서 겪는 고충을 해결하는 결과물을 직접 만드는 과정을 담고 있으며, 바이브 코딩으로 서비스를 만들어가는 각 개념을 체계적으로 설명합니다.

[Part 1] 문제 발견 — 내 불편함이 앱이 되기까지

스마트 출석 체크 단일 파일 웹앱 · 학급 전용 글쓰기 타임라인 SNS 프로토타입

[Part 2] 앱에 지식을 더하다 — 구글 AI Studio & API 연동

나이스 공공데이터 급식 조회 앱 · 실시간 사물인식 영어학습 튜터 · 학생 글쓰기 AI 피드백

[Part 3] 앱에 클라우드 기능을 심다 — Supabase 클라우드 DB 연동

날짜별 To-Do 일정 관리 웹앱 · Supabase Auth 사용자 로그인 및 보안 인증

[Part 4] 진짜 개발자처럼 일하기 — Antigravity IDE & MCP 환경

나만의 HTML 프로필 페이지 · MCP로 Supabase 실시간 협업 칭찬 보드 완성

Part 1. 문제 발견 Ch 4 도구: LLM 채팅 (ChatGPT, Claude, Gemini)

Ch 4. 개발자의 개발법, PRD(제품 요구사항 문서) 쉽게 써보기

PRD가 완성되면 AI에게 PRD 전체를 복사해 붙여넣으며 대화를 시작합니다.

시작 대화 프롬프트: "안녕, 나는 이런 PRD를 가지고 앱을 만들려고 해. 먼저 첫 번째 기능을 구현해 줄래?"

PRD_Smart_Attendance.txt PRD 템플릿
Product Requirements Document (PRD) 예시

1. 제품 이름 (Project Name)
스마트 출석 체크 (Smart Attendance Check)

2. 배경과 목적 (Why)
교실에서 출석 확인은 반복적이고 시간이 소요되는 업무임.
특히 빠르고 정확한 출석 기록과 누적 확인이 필요함.
- 간편한 입력
- 실시간 출석 현황 확인
- 자동 기록 저장
이를 통해 교사의 업무 부담을 줄이고 효율적인 학급 운영을 돕는 것을 목표로 함.

3. 핵심 기능 (User Stories)
- 기능 1: 학생 이름 입력 및 출석 처리
  사용자는 화면 중앙 입력창에 학생 이름을 입력함
  '출석 완료' 버튼 클릭 시 출석이 기록됨
- 기능 2: 출석 기록 리스트 생성
  버튼 클릭 시 아래와 같은 형식으로 기록 추가
  👉 OOO 학생 출석 완료! (시간: hh:mm:ss)
  기록은 시간 순으로 계속 누적됨
- 기능 3: 실시간 출석 인원 카운트
  화면 상단에 현재 출석 인원 표시 👉 예: 출석 인원: 12명
  출석 처리 시 즉시 업데이트됨
- 기능 4: 데이터 로컬 저장
  출석 데이터는 브라우저의 Local Storage에 자동 저장됨
  페이지 새로고침 후에도 데이터 유지됨
- 기능 5: 감성 UI 디자인
  전체 UI는 파스텔톤 색상 기반
  깔끔하고 따뜻한 느낌 유지
  가독성 높은 폰트 사용 (예: Pretendard, Noto Sans KR)

4. 사용자 환경 (Context)
사용자: 초등학교 교사
사용 장소: 교실, 교무실
사용 기기: 데스크톱, 태블릿
사용 시점: 등교 직후, 수업 시작 전

5. 성공의 정의 (Success Metrics)
출석 처리 시간 단축 (기존 대비 50% 이상)
클릭 1회로 출석 등록 가능
새로고침 후 데이터 유지 성공률 100%
사용자 만족도 (직관성, 편의성) 높음
Part 1. 문제 발견 Ch 6 도구: LLM 채팅 (ChatGPT, Gemini 등)

Ch 6. LLM으로 만들어보는 단일 파일 웹앱 (출석 체크 프로그램)

HTML 파일 하나만으로 동작하는 스마트 출석체크 웹앱 제작 프롬프트입니다.

prompt_single_file_attendance.txt 단일 파일 웹앱
안녕! 나는 중학교 선생님이야. 우리 반 학생들을 위한 '스마트 출석 체크 웹앱'을 만들고 싶어.
복잡한 설치 없이 HTML 파일 하나만으로 작동하게 해줘.

기능 요구사항
1. 화면 중앙에 학생 이름을 입력하는 칸과 '출석 완료' 버튼이 있어야 해.
2. 버튼을 누르면 아래에 'OOO 학생 출석 완료! (시간: hh:mm:ss)'라는 메시지가 리스트로 쌓여야 해.
3. 전체 출석 인원을 실시간으로 카운트 해서 위쪽에 보여줘.
4. 저장된 데이터는 브라우저의 저장소에 저장해줘.
5. 디자인은 파스텔톤으로 깔끔하고 따뜻하게 하고 폰트는 가독성이 좋아야 해.
Part 1. 문제 발견 Ch 11 도구: Lovable (러버블)

Ch 11. Lovable을 이용한 서비스 개발 맛보기

Lovable의 클라우드 기능 및 Supabase 연동으로 완성하는 '글쓰기 타임라인 SNS' 프롬프트입니다.

prompt_lovable_sns.txt Lovable SNS
우리 반 학생들이 본인이 쓴 글을 제출하고 SNS 형태로 보여지는 '글쓰기 타임라인 SNS' 앱을 만들고 싶어.
러버블의 클라우드 기능을 활성화하고 데이터베이스(Supabase)를 연동해서 실제 데이터가 저장되도록 해줘.

1. 데이터베이스 구조 (Supabase)도 앱의 구동 방식을 고려해서 정확히 설계하고 생성해줘.
2. 화면 구성 (UI)
   - 전체 화면이 트위터(현재 X) 형태의 모습으로 구현되며, 오른쪽 상단에 + 버튼으로 포스트 작성을 할 수 있는 작성 버튼을 추가해줘.
   - 포스트 작성 버튼을 누르면 이름, 내용, 비밀번호(숫자 4자리)를 입력하는 모달(Modal) 폼이 나타나고 '게시하기', '취소' 버튼이 있어야 해.
   - 게시된 포스트들은 타임라인 형태 SNS 레이아웃으로 최신 글이 가장 위에 예쁜 컬러로 배열되어야 해.
   - SNS 앱 왼쪽 상단에는 "글쓰기 타임라인 SNS"라는 이름을 표시해줘.
   - 오른쪽에는 새로 고침 버튼이 있어야 해.
   - 학생들이 업로드한 포스트 하단 왼쪽에는 좋아요 버튼도 있어야 해.
3. 기능 (Logic)
   - '게시하기'를 누르면 데이터베이스에 저장하고 즉시 SNS 피드에 반영해줘.
   - 각 글 카드에는 '수정', '삭제' 버튼이 있어야 해.
   - 수정/삭제 버튼을 누르면 비밀번호 입력 팝업을 띄우고, 작성 시 입력한 비밀번호와 일치할 때만 수정/삭제가 되도록 해줘.
   - 새로고침 버튼을 누르면 최신의 글을 모두 가져와 표시해야 해.
   - 글 목록은 10개씩 표시하고, 하단에 페이지별 바로가기 페이지네이션 버튼을 추가해줘.
Part 2. AI Studio & API Ch 3 도구: 구글 AI Studio (Build)

Ch 3. Open API를 활용한 급식 조회 앱 만들기 (+개선 3종)

나이스(NEIS) 교육정보 개방포털 API를 연동하여 학교별 급식을 조회하는 프롬프트 모음입니다.

1. 급식 조회 앱 기본 제작 프롬프트

01_meal_app_basic.txt 기본 제작
전국 초중고등학교의 오늘 급식 메뉴를 보여주는 웹앱을 만들어줘.
화면 상단에 '나이스 API 키 입력칸'을 만들고, 그 아래에 '학교 이름 검색창'을 만들어 줘.

학교를 검색하면 나이스(NEIS) 학교기본정보 API와 급식식단정보 API를 연결해서
오늘 메뉴(중식)를 예쁜 카드 모양으로 띄워줘.

2. 기능 개선: 알레르기 유발 식자재 번호 표시

02_allergy_info.txt 기능 개선 1
메뉴 이름 뒤에 알레르기 유발 식자재 번호를 함께 표시해줘. 그리고 화면 하단에는 번호별 의미를 보기 쉽게 정리한 안내 영역을 추가해줘. 메뉴 글자는 너무 복잡해 보이지 않게 유지하고, 전체 UI는 깔끔하게 정돈해줘.

3. 기능 개선: 날짜 이동 슬라이더 추가

03_date_slider.txt 기능 개선 2
오늘 날짜를 기준으로 이전 날과 다음 날 급식을 확인할 수 있도록 날짜 이동 슬라이더를 추가해줘. 슬라이더를 움직이면 해당 날짜의 급식 데이터가 자동으로 다시 불러와지게 하고, 데이터가 없는 날짜는 기존 예외 처리 문구가 나오도록 연결해줘. 모바일에서도 누르기 쉽고 보기 쉬운 형태로 만들어줘.

4. 포커스 모드: 날짜 이동 바 디자인 수정

04_focus_mode_design.txt 포커스 모드
이 날짜 이동 바만 수정해줘. 좌우 화살표와 달력 아이콘이 지금보다 훨씬 더 눈에 띄게 보이도록 바꿔줘. 화살표 버튼은 채워진 원형 버튼으로 만들고, 달력 아이콘은 크기를 키워 날짜 앞에서 시각적 중심 역할을 하게 해줘. 날짜 텍스트는 굵기를 높이고, 전체 바는 현재보다 더 짧고 단단한 느낌으로 정리해줘. 버튼을 눌러 조작하는 UI라는 인상이 분명하게 보이도록 해줘.
Part 2. AI Studio & API Ch 7 도구: 구글 AI Studio (Builder)

Ch 7. 실시간 사물 인식 AI 영어 학습 앱 제작하기 (+확장 2종)

Gemini 2.5 Flash 모델의 Vision 및 음성 TTS 기능을 결합한 사물 인식 영어 학습 앱입니다.

1. PRD를 활용한 제작 프롬프트

01_snap_and_learn_prd.txt PRD형
다음 PRD를 참고하여 모든 요구사항을 반영한 서비스를 개발해줘.

1. 제품 이름 (Project Name)
찰칵! 영어 선생님 (Snap & Learn English)

2. 배경과 목적 (Why)
배경: 키보드 타자 입력이 어렵거나 영어를 처음 접하는 학생(저학년, 유아 등)은 검색을 통한 단어 학습에 한계가 있음.
목적: 텍스트 입력 없이 주변 사물을 카메라로 찍기만 하면, 즉각적으로 영어 단어와 발음을 알려주어 언어 학습의 장벽을 낮추고 학생들의 호기심을 충족시키기 위함.

3. 핵심 기능 (User Stories)
1) 앱 제목 (Header): 화면 최상단 중앙에 "찰칵! 영어 선생님 (Snap & Learn English)"이라는 앱 이름을 크고 귀여운 폰트로 표시할 것
2) 카메라 (Camera): 제목 아래 화면에 웹캠 화면을 실시간으로 꽉 차게 나타나야 함(초기 실행 시 카메라 권한 요청 필수).
3) 캡처 (Capture): 화면 하단 중앙에 학생들이 쉽게 누를 수 있는 '찰칵' 버튼을 표시.
4) AI 분석 (Vision): 초등학교 1학년 학생이 '찰칵' 버튼을 누르면 현재 화면을 캡처해서 Gemini API (gemini-2.5-flash)에게 보내야 함. 이미지를 분석해서 사진 속에 있는 가장 중요한 중심 사물의 이름을 영어 단어로 딱 하나만 알려달라고 요청해야 함. (예: 화면 중앙에 사과가 있다면 배경은 무시하고 'Apple'만 추출)
5) 음성 출력 (TTS): AI가 단어를 찾아내면, Gemini 모델의 TTS(Text-to-Speech) 기능을 사용해서 그 단어를 원어민 발음으로 즉시 읽어줄 것.
6) 화면 표시 (UI): 동시에 화면 중앙에 초등학교 1학년 학생이 잘 볼 수 있도록 단어를 크고 예쁜 폰트로 표시.

4. 사용자 환경 (Context)
누가: 키보드 입력이 서툴거나 영어 단어에 호기심이 많은 학생이
어디서: 교실이나 집에서 태블릿, 스마트폰 또는 웹캠이 달린 노트북을 활용하여
언제: 주변의 물건(시계, 책상, 지우개 등)의 영어 이름이 궁금해질 때마다 즉각적으로 사용함

5. 성공의 정의 (Success Metrics)
사용성: 학생들이 교사나 부모의 도움 없이 스스로 사물을 촬영하고 음성을 듣는 과정을 수행할 수 있는가?
응답 속도: 촬영(찰칵) 후 AI가 사물을 인식하여 음성을 출력하기까지의 지연 시간이 짧아(예: 3초 이내) 즉각적인 피드백이 이루어지는가?
정확도: 일상적인 교실/집 안 사물을 AI가 오작동 없이 정확한 영단어로 판별해 내는가?

2. 확장 1: 실시간 발표자 선정 도우미 앱

02_presenter_picker.txt 확장 1
실시간 발표자 선정 도우미 앱을 만들어줘.
1. 앱 제목: 화면 최상단에 '두근두근 우리 반 발표자 뽑기'라고 적어줘.
2. 카메라 & 캡처: 웹캠 화면을 보여주고 하단에 '누가 발표할까?' 버튼을 만들어줘.
3. AI 분석 (Vision): 버튼을 누르면 화면을 캡처해서 Gemini에게 보내. 사진 속에 있는 학생들 중에서 무작위로 딱 한 명을 선택해 줘. 그리고 그 학생의 인상착의(옷 색깔, 안경 유무 등)를 한국어로 묘사해 줘. (예: '파란색 티셔츠를 입고 안경을 쓴 친구가 당첨!')
4. 음성 출력 (TTS): AI가 선택한 학생의 묘사를 한국어 음성으로 신나게 읽어줘.
5. 화면 표시: 화면 중앙에 당첨된 학생의 특징을 큰 글씨로 보여줘.

3. 확장 2: 실시간 감정 인식 영어 학습 앱

03_emotion_learner.txt 확장 2
실시간 감정 인식 영어 학습 앱을 만들어줘.
1. 앱 제목: 화면 최상단에 'How do you feel?'이라고 적어줘.
2. 카메라 & 캡처: 웹캠 화면을 보여주고 하단에 '표정 찰칵' 버튼을 만들어줘.
3. AI 분석 (Vision): 버튼을 누르면 화면 속 인물의 표정을 분석해 줘. 그 표정에 가장 잘 어울리는 영어 감정 단어(Happy, Sad, Angry, Surprised 등)를 딱 하나만 알려줘.
4. 음성 출력 (TTS): 찾아낸 감정 단어를 원어민 발음으로 읽어주되, 그 감정을 살려서 실감 나게 읽어줘. (예: Sad는 슬픈 목소리로, Happy는 경쾌한 목소리로)
5. 화면 표시: 화면 중앙에 감정 단어를 아주 크고 굵은 폰트로 보여주고, 배경색도 감정에 맞춰 바꿔줘 (예: Angry는 빨강, Sad는 파랑).
Part 2. AI Studio & API Ch 8 도구: 구글 AI Studio, Gemini

Ch 8. 학생 글쓰기 AI 피드백 시스템 구축하기

AI 페르소나 설정, 공책 사진 OCR 기능, 그리고 메타 프롬프팅으로 고도화된 프롬프트 모음입니다.

1. 기본 골격 프롬프트

01_writing_tutor_basic.txt 기본 골격
1. 설정: 화면 상단에 Google Gemini API Key를 입력하는 칸을 만들어줘. (입력 후 로컬 스토리지에 저장)
2. 입력: 학생들이 글을 입력할 수 있는 큰 텍스트 박스(Textarea)를 중앙에 배치해줘.
3. 기능: '피드백 받기' 버튼을 누르면 Gemini API를 호출해서 피드백을 생성해줘.
4. AI 페르소나: 너는 초등학교 4학년에게 글쓰기를 가르치는 선생님이야. 학생의 글을 읽고 '잘한 점 1가지', '고칠 점 1가지', 그리고 '수정된 문장 추천' 형식으로 다정하게 답변해야 해.

2. 공책 사진 OCR(글자인식) 추가 프롬프트

02_ocr_feature.txt OCR 기능
우와 정말 대단해! 여기에 기능 하나만 더 추가해줘. 텍스트 입력창 위에 '공책 사진 찍기' 버튼을 만들어줘. 버튼을 누르면 카메라가 켜지거나 파일을 업로드할 수 있게 해줘. 그리고 업로드된 이미지에서 Google Gemini의 Vision 기능을 이용해 글자를 추출(OCR)해서 텍스트 박스에 자동으로 채워지도록 코드를 수정해줘.

3. 고도화된 완성형 개발 프롬프트

03_advanced_writing_tutor.txt 고도화 프롬프트
## 고도화된 개발 프롬프트

### [Role: 역할 정의]
너는 초등 교육용 웹 애플리케이션 개발에 특화된 시니어 풀스택 개발자이자 UX 디자이너야. 사용자가 입력한 요구사항을 바탕으로 깨끗하고 기능적인 코드를 작성하며, 특히 보안(API Key 관리)과 사용자 경험을 중요하게 생각해야 해.

### [Mission: 임무]
초등학교 4학년 학생들이 글쓰기 피드백을 받을 수 있는 'AI 글쓰기 도우미 웹앱'의 전체 코드(HTML/CSS/JS)를 작성하라.

### [Step-by-Step: 실행 절차]
1. 환경 설정 (Setup): 화면 최상단에 Google Gemini API Key 입력란을 배치하고, 브라우저의 localStorage를 활용해 한 번 입력하면 유지되도록 구현해.
2. UI 구성 (Layout): 중앙에는 학생들이 긴 글을 편하게 작성할 수 있는 넓은 Textarea와 하단에 눈에 잘 띄는 '피드백 받기' 버튼을 배치해. (초등학생 타겟에 맞는 깔끔한 디자인 적용)
3. API 연동 (Logic): 버튼 클릭 시 gemini-1.5-flash 모델을 호출하는 비동기 함수를 작성해.
4. 결과 출력 (Output): AI가 생성한 피드백을 텍스트 상자 아래의 별도 영역에 보기 좋게 출력해.

### [Constraints: 제약 조건 및 프롬프트 주입]
* 보안: API Key는 클라이언트 사이드 코드에서 직접 노출되지 않도록 입력 필드로 관리하며, 로컬 스토리지에 안전하게 저장/조회해야 함.
* AI 시스템 프롬프트: 앱 내부에서 Gemini API를 호출할 때 아래의 페르소나를 시스템 프롬프트로 반드시 설정해.
* 페르소나: "너는 초등학교 4학년 학생들을 가르치는 다정한 선생님이야. 학생이 작성한 글을 읽고 다음 세 가지 요소를 포함해 답변해줘.
  1. 칭찬할 점 1가지
  2. 개선할 점 1가지
  3. 더 나은 문장 추천
  (친절하고 격려하는 말투를 사용할 것)"
* 에러 핸들링: API Key가 입력되지 않았거나 호출에 실패했을 경우, 사용자에게 친절한 안내 메시지를 띄워야 함.
Part 3. Supabase DB Ch 3 도구: 구글 AI Studio, Supabase

Ch 3. Supabase를 활용한 To-Do 일정 관리 앱 만들기

클라우드 데이터베이스에 날짜별 할 일을 영구 저장하고 관리하는 풀스택 프롬프트입니다.

prompt_supabase_todo.txt Supabase To-Do
당신은 친절한 '풀스택 웹 개발자'입니다. 아래 사항을 확인하여 사용자가 "날짜별 투두(To-Do) 리스트"를 관리할 수 있는 일정 관리 웹앱"을 제작해주세요.

백엔드 데이터베이스는 'Supabase'를 사용합니다. 아래의 요구사항을 정확히 반영해 주세요.

1. Supabase 설정 정보
코드 내에서 Supabase를 연동할 때 아래 정보를 사용하세요.
- Project URL: https://xxxxx.supabase.co (여기에 본인 URL 입력)
- Publishable key: sb_publishable.. (여기에 본인 Key 입력)

2. 프론트엔드 요구사항 (화면 구성)
사용자가 할 일을 날짜별로 관리할 수 있는 직관적인 UI를 만들어주세요.
- 입력 폼:
  - 할 일 내용 (Text 입력)
  - 목표 날짜 (Date Picker, 달력 선택)
  - '추가하기' 버튼
- 리스트 영역:
  - 저장된 할 일들을 카드 형태로 보여주세요.
  - 중요: 할 일들은 '목표 날짜'별로 그룹화해서 보여주거나, 날짜순으로 정렬해서 보여주세요.
  - 각 할 일 옆에는 '완료' 체크박스와 '삭제' 버튼이 있어야 합니다.

3. 백엔드 기능 요구사항 (데이터 처리)
Supabase에 관련 데이터베이스 관련 테이블을 생성하고 연동할 예정이니, 데이터베이스 테이블 생성과 관련된 내용을 문서화하고, 별도의 실행 가능한 SQL 쿼리문으로 작성해주세요. 쿼리 명령어 이름은 setup.sql로 생성해주세요.
Part 3. Supabase DB Ch 4 도구: 구글 AI Studio, Supabase Auth

Ch 4. 허용된 사용자만 접근 가능한 앱으로 변경하기 (Auth 인증)

Supabase Auth 기능을 연결해 로그인한 사용자만 일정 앱을 이용할 수 있도록 보안을 강화합니다.

prompt_supabase_auth.txt Supabase Auth
슈파베이스 데이터베이스에 접근 사용자 비밀번호를 저장하고, 앱 실행시 이 비밀번호를 입력하고 정확히 일치하여야 앱이 실행되도록 수정해줘.

1. 모달 창으로 비밀번호 입력 페이지를 구현하고, 비밀번호를 입력받도록 해줘.
2. 사용자 이메일은 admin@planner.vibe(변경 가능) 비밀번호는 VibeCoder2026! (변경 가능)으로 설정해줘.

프론트코드에서 비밀번호를 검증하는 것이 아니라 Supabase의 Auth 기능으로 사용자를 인증하도록 해줘. Supabase Auth 기능의 사용법도 함께 알려줘.
Part 4. 로컬 개발 Ch 1 도구: Antigravity IDE

Ch 1. Antigravity IDE 시작하기 — 나만의 HTML 프로필 페이지

에이전트 패널에서 첫 명령어로 연한 파란색 배경의 자기소개 페이지를 완성합니다.

산출물 라이브 데모

설치 없이 브라우저에서 완성된 HTML 프로필 페이지를 확인하세요.

prompt_profile_page.txt 프로필 페이지
안녕! 나를 소개하는 HTML 프로필 페이지를 만들어줘. 이름은 [여기에 본인 이름 입력], 직업은 초등학교 교사야. 좋아하는 것은 독서와 여행이고, 간단한 자기소개 문장도 넣어줘. 배경색은 연한 파란색으로 해줘. 예쁘게 꾸며줘!
Part 4. 로컬 개발 Ch 4 도구: Antigravity IDE + MCP + Supabase

Ch 4. MCP로 Supabase 실시간 협업 칭찬 보드 만들기 (3단계)

React + Vite + Supabase Realtime을 결합해 실시간으로 동기화되는 인터랙티브 보드입니다.

산출물 라이브 데모 (우리 반 실시간 칭찬 보드)

브라우저 창 2개를 나란히 열면 실시간 동기화를 바로 체험할 수 있습니다.

1단계: PRD 작성 프롬프트

step1_praise_prd.txt 1단계 PRD
우리 반 실시간 칭찬 보드 앱의 PRD(제품 요구사항 문서)를 작성해줘.

앱 설명:
- 학생 이름과 칭찬 메시지를 입력할 수 있는 폼이 있다
- 입력하면 칭찬 카드가 보드에 추가된다
- Supabase를 사용해 데이터를 저장한다
- Supabase Realtime 기능으로 여러 브라우저 창에서 동시에 칭찬이 실시간 반영된다
- React + Vite로 개발한다
- 디자인은 깔끔하고 밝은 느낌으로 (교육 환경에 맞게)

문서는 PRD.md 파일로 프로젝트 루트에 저장해줘.

2단계: MCP로 Supabase 테이블 생성 프롬프트

step2_create_table_mcp.txt 2단계 테이블 생성
Supabase에 칭찬 보드 앱을 위한 테이블을 만들어줘.

테이블 이름: praises
필드:
- id: UUID, 기본 키, 자동 생성
- student_name: TEXT, 필수
- message: TEXT, 필수
- created_at: TIMESTAMP WITH TIME ZONE, 기본값 now()

그리고 이 테이블에 Supabase Realtime을 활성화해줘.
Row Level Security는 일단 비활성화해줘 (테스트 목적).

3단계: React 앱 전체 구현 프롬프트

step3_implement_app.txt 3단계 앱 구현
@PRD.md 를 참고해서 실시간 칭찬 보드 앱을 만들어줘.

기술 스택:
- React + Vite (현재 프로젝트)
- Supabase (이미 설정된 MCP로 연결된 상태)

구현 내용:
1. App.jsx 메인 화면 구성
   - 학생 이름 입력 필드
   - 칭찬 메시지 입력 필드
   - 칭찬 추가 버튼
   - 칭찬 목록 표시 영역 (카드 형태)

2. Supabase 연동 (src/supabaseClient.js 파일 생성)
   - supabase-js 패키지 사용
   - 환경 변수로 URL과 key 관리

3. 실시간 기능
   - Supabase Realtime 구독으로 새 칭찬 즉시 반영

4. 스타일
   - App.css에 깔끔하고 밝은 디자인 적용

환경 변수 파일(.env)도 만들어줘. 변수명은:
- VITE_SUPABASE_URL
- VITE_SUPABASE_ANON_KEY
에필로그 E-1 소요 시간: 약 4분

E-1. 바이브 코딩, 무엇을 느끼셨나요?

막연한 두려움이 설렘으로 바뀌는 순간

처음 이 책을 펼치셨을 때를 떠올려보세요. '코딩'이라는 단어가 주는 막연함, 검은 화면에 대한 두려움이 분명 있으셨을 겁니다. 다양한 연수나 강의에서 강사 선생님들이 본인이 만든 프로그램으로 화면을 시연할 때, '어떻게 저런 걸 직접 만드시지?' 하던 마음, '내가 개발을 어떻게 해? 아무런 배경지식이 없는데...' 하던 생각들이 이제는 많이 달라지셨을 것입니다.

작은 성공의 경험들
  • "어? 이게 진짜 되네?"
  • "내 아이디어를 AI한테 한국어로 말하니까 진짜 웹앱으로 만들어주네!"

이 책을 하나씩 따라 하시면서 배우고 만드셨던 작은 성공의 경험들이 모여, 이제는 새로운 기술을 접할 때 두려움보다는 "이걸로 우리 반 아이들에게 뭘 해줄 수 있을까?" 하는 설렘이 더 크실 것입니다.

지금까지 우리는 누군가 만들어 놓은 에듀테크 도구를 단지 소비하는 입장이었습니다. 하지만 이제 선생님은 인공지능과 더불어 메이커(Maker)이자, 제품 개발자(Product Builder)가 되셨습니다.

  • 필요한 기능이 없으면? 직접 만들면 됩니다.
  • 우리 반 상황에 안 맞으면? 내 의도대로 수정하면 됩니다.

이 책에서 선생님들께 강조 드리고 싶었던 가장 큰 역량은 AI 시대에서의 주도성(Agency)이었습니다. '나도 무엇이든 만들 수 있어'라는 주도성의 회복이야말로 바이브 코딩이 선생님께 드리는 가장 값진 선물입니다.

에필로그 E-2 소요 시간: 약 4분

E-2. 교실을 넘어: 내 일상의 문제를 해결하는 개발자로 거듭나기

교실 밖을 벗어난 바이브 코더

지금까지 우리는 교실의 문제를 해결하고 학생들을 돕기 위한 앱 개발에 집중했습니다. 하지만 코딩이라는 도구를 다루게 된 이상, 그 사용처를 학교라는 공간에만 한정할 필요는 없습니다. 선생님의 개인적인 삶, 가족, 취미를 위해서도 우리가 배웠던 다양한 기술을 활용할 수 있습니다.

가계부 웹앱

우리 집 소비 패턴에 맞춘 맞춤형 가계부

독서 아카이브

감명 깊은 구절과 책 표지를 보관하는 앱

여행 동선 플래너

가족 여행 코스를 지도에 그리고 기록하는 사이트

1/N 식사비 정산기

동료들과의 회식 비용을 나눠 메신저로 전송

일상 속 확장 아이디어

  • 자산 관리 & 대시보드: API를 활용해 현재 주가를 자동으로 불러와 평단가와 비교하고 수익률을 계산하는 대시보드 제작
  • 식재료 유통기한 관리: 구매한 식재료 유통기한을 자동 등록하고 남은 재료 기반 요리 레시피를 AI에게 추천받기
  • 운동 루틴 트래커: 부위별 운동 기록과 신체 변화 과정을 체계적으로 기록하고 시각화
에필로그 E-3 소요 시간: 약 5분

E-3. 앞으로의 여정을 위한 로드맵과 학습 자료 안내

1. 지금 바로 시작할 수 있는 추천 프로젝트

초급 (반나절~하루)

자리 바꾸기 프로그램 · 학급 맞춤형 타이머 · 점심 급식 메뉴 토너먼트 투표

중급 (3일~1주일)

학급 화폐 은행 (Supabase 연동) · 실시간 온라인 알림장 · 실시간 단어 퀴즈 배틀

고급 (방학 프로젝트)

우리 반 교우관계망 그래프 분석기 · 우리 학교 위키(Wiki) 백과사전 · 지능형 자동 반편성 도구

2. 심화 학습 키워드

TypeScript

안정적인 코드 작성

React Native

스마트폰 모바일 앱 제작

SQL & RLS 보안

안전한 학생 데이터 관리

Teacher is the best Creator
"세상에서 가장 창의적인 직업이 바로 선생님이라고 믿습니다."
매일 개성 넘치는 아이들과 소통하며 새로운 배움을 만들어내는 여러분은 이미 훌륭한 창조자입니다.

선생님들의 교육적 역량 위에 '바이브 코딩'이라는 날개를 달아드렸으니, 이제 마음껏 교실 속 아이디어를 구현해 보세요. 선생님의 첫 번째 앱이 세상에 나오는 날을 진심으로 응원합니다.

— 집필진 일동 (이상선, 김진관, 이대형, 윤신영, 김상섭)