인쇄비 0원으로 축제를 열자 — '학교 축제 & 방과후학교 전시회 모바일 디지털 팜플렛'
🎪 초등 행사 행정 — 학교 축제, 방과후학교 전시회, 체육대회 등 학부모가 참여하는 행사 안내장을 종이에서 반응형 디지털 웹사이트로 전환합니다. 학급별 공연 순서, 부스 위치, 전시 작품 소개, 화장실 위치까지 한 화면에서 확인할 수 있으며, 행사 당일 실시간으로 일정 변경도 반영할 수 있습니다.
📖 한 줄 정의
심기 모드(데이터 임베딩): API 데이터를 미리 받아 HTML 파일 안 상수로 박아두는 방식(앱 실행 중 외부 통신 0).
학내망 원칙: 학생 개인정보(실명·의견·성적·상담 기록)의 외부 수집·저장·전송 금지(쿼리에 학생 데이터가 담기는 외부 API 호출 포함) — 일반 공개 쿼리의 외부 호출은 허용하며, 학생 배포본은 심기 폴백(EMBED 상수)을 항상 내장한다.
1. 3대 핵심 분석 비교표
| 무엇이 바뀌었나요? / 영역 | 초보자를 위한 쉬운 설명 | 이렇게 한번 써보세요! |
|---|---|---|
| 인쇄비 100% 절감 | 매년 수십만 원이 드는 종이 안내장을 디지털 웹사이트로 대체합니다. | 학부모 스마트폰에서 QR코드 스캔으로 즉시 접속. |
| 실시간 일정 수정 | 비가 와서 실내로 옮기거나 공연 시간이 늦춰지면, 파일의 상수를 바꿔 다시 배포하면 즉시 반영됩니다. | "3반 공연 → 실내 체육관으로 이동" 알림 배너 상단 고정. |
| 모바일 최적화 반응형 | 360px 화면에서도 가로 스크롤 없이 세로 카드 그리드로 자동 배치되어 학부모가 편하게 확인합니다. | 부스 위치는 SVG 약도 위 핀 마커로 시각화. |
2. 핵심 아키텍처 해설
① 행사 일정 상수: EVENT 상수
const EVENT = {
name: "제 42회 교육의 날 축제",
date: "2026-09-06",
notice: "비 예보 — 실내 체육관에서 진행됩니다.",
stages: [
{ time: "10:00", act: "개회식 — 체육관", emoji: "🎤" },
{ time: "10:30", act: "3반 합창단 — 체육관 무대", emoji: "🎵" },
{ time: "11:00", act: "미술 전시 — 도서관 1층", emoji: "🎨" },
{ time: "12:00", act: "방과후 무용 발표 — 체육관", emoji: "💃" }
],
booths: [
{ name: "과학 실험 부스", loc: "과학실", emoji: "🔬" },
{ name: "독서 감상 부스", loc: "도서관", emoji: "📖" },
{ name: "만들기 워크숍", loc: "실과실", emoji: "✂️" }
]
};
행사 전 일정과 부스 정보를 상수에 정리하면 파일 하나만 수정해도 즉시 전체 팜플렛이 갱신됩니다.
② 반응형 카드 그리드 & 부스 약도 핀
function renderStages() {
const list = document.getElementById("stages");
EVENT.stages.forEach((s) => {
const card = document.createElement("div");
card.className = "stage-card";
card.innerHTML = `${s.time} ${s.emoji} ${s.act}`;
list.appendChild(card);
});
}
행사 순서는 세로 타임라인 카드로, 부스 위치는 SVG 약도 위 핀 마커로 렌더링되어 학부모가 스마트폰으로 한눈에 찾아갈 수 있습니다.
③ QR코드 배포 루틴
팜플렛 HTML을 교사 PC에서 로컬로 열거나 학내망 링크로 배포하는 것만으로 QR코드(무료 생성기 사용)를 인쇄하여 학부모 안내장에 첨부할 수 있습니다.
3. 초보자를 위한 바이브 코딩 실전 사용 예시
- 프롬프트 복사 — 아래 '제미나이 전용 에러 제로 프롬프트'를 복사합니다.
- 역질문 답변 — 제미나이가 묻는 행사 종류(축제/전시회/체육대회)와 공연 개수에 답합니다.
- HTML 파일 실행 — 메모장에 붙여넣고
축제팜플렛.html로 저장하여 QR코드를 인쇄합니다.
제미나이 전용 에러 제로 프롬프트
[🚨 에러 방지 기본 안전장치]
1. 단일 HTML 파일 완결성: 외부 서버, CDN 없이 순수 HTML/CSS/JS로 완성한다. 학부모 스마트폰에서 열면 즉시 확인 가능.
2. 행사 정보 심기 모드: const EVENT = {...} 상수에 행사명, 날짜, 공연 일정, 부스 위치, 알림 배너를 미리 넣어둔다.
3. 반응형 카드 그리드: 360px 화면에서도 가로 스크롤 없이 세로 카드 뷰로 배치되어 학부모가 편하게 읽는다.
4. 부스 위치 표시: 학교 건물 SVG 약도 위에 핀(마커) 이모지를 배치하여 위치를 시각화한다.
5. 학생 개인정보 0: 학생 실명 대신 '학급명 + 출품작명'만 표기하며 얼굴 사진은 일절 사용하지 않는다.
6. // TODO, /* 생략 */ 등의 미완성 코드는 절대 넣지 말고 끝까지 완성한다.
[❓ 역질문 유도]
코드를 즉시 작성하지 말고, 아래 3가지를 먼저 나에게 질문한 뒤 내 답변으로 설계를 확정한다.
Q1. 행사 종류는 무엇인가요? (축제 / 전시회 / 체육대회 / 방과후 발표회)
Q2. 공연 및 부스 총 개수는 몇 개인가요?
Q3. 상단 배너 색상 톤을 판타지 핑크와 우드 브라운 중 어느 것으로 할까요?
🎯 에디터 한줄평
"수십만 원의 인쇄비와 몇 시간의 전단지 배포 노동력을 학부모 휴대폰 화면으로 대체하는 것은 단순한 절약이 아닙니다. 비가 와도 공연이 옮겨졌다는 것을 순간적으로 알려주는 시스템이 학부모 신뢰를 만들고, 교사에게는 행사 당일 소통 피로를 획기적으로 줄여줍니다."
📚 기술·교육 참고 링크
- 학교 행사 전산화 및 디지털 홍보 가이드
- 교육과정 연계: 초등 창체(행사 운영 참여), 실과(정보통신기기 활용)