우리 손으로 지키는 매일 아침 등굣길! — 초등 우리 동네 안전 통학로 & 위험 구역 안내 디지털 지도 웹앱
🚸 초등 3~4학년 사회 '우리 고장의 환경과 안전' 및 창체 안전 교육 단원 — 학생들이 매일 걷는 학교 주변 통학로에서 발견한 공사 현장, CCTV 사각지대, 파손된 보도블록 등 위험 요소를 직접 조사하여 지도 위에 주의 마커(Marker)로 찍고, 안전 지킴이 쉼터와 비상벨 위치를 함께 엮어 학급 전체가 완성하는 디지털 안전 지도입니다.
📖 한 줄 정의
심기 모드(데이터 임베딩): API 데이터를 미리 받아 HTML 파일 안 상수로 박아두는 방식(앱 실행 중 외부 통신 0).
학내망 원칙: 학생 개인정보(실명·의견·성적·상담 기록)의 외부 수집·저장·전송 금지(쿼리에 학생 데이터가 담기는 외부 API 호출 포함) — 일반 공개 쿼리의 외부 호출은 허용하며, 학생 배포본은 심기 폴백(EMBED 상수)을 항상 내장한다.
1. 3대 핵심 분석 비교표
| 무엇이 바뀌었나요? / 영역 | 초보자를 위한 쉬운 설명 | 이렇게 한번 써보세요! |
|---|---|---|
| 종이 안전 점검표 vs 인터랙티브 지도 | 체크리스트에 글씨만 쓰던 수업에서 벗어나, 학교 주변 약도 위에 핀을 꽂고 사진과 제보 내용을 팝업으로 확인합니다. | 지도 상의 빨간 핀을 누르면 "횡단보도 신호등 고장!" 제보 상세 확인. |
| 외부 지도 키 없이 순수 SVG 캔버스 맵 | 카카오맵/구글맵 API 키 발급이나 결제 없이, 학교 주변 약도를 가벼운 인라인 SVG 벡터 도로망으로 렌더링합니다. | 인터넷이 차단된 교실이나 야외 태블릿에서도 더블클릭 즉시 구동. |
| 주의 등급별 3색 신호등 핀 | 단순 위치 표시를 넘어 주의(노랑), 경고(주황), 위험(빨강) 3단계로 심각도를 직관적으로 시각화합니다. | 위험 구역을 피해서 걸을 수 있는 '추천 안전 통학로' 경로 표시선 제공. |
2. 핵심 아키텍처 해설
① 학교 주변 안전 데이터: SAFETY_POINTS 상수
const SAFETY_POINTS = [
{
id: "p1",
title: "정문 앞 사거리",
type: "안전", // 안전(초록), 주의(노랑), 위험(빨강)
coords: { x: 250, y: 180 },
icon: "🟢",
desc: "녹색어머니회 및 교통안전 도우미 상주 구역 (안전 횡단보도)"
},
{
id: "p2",
title: "후문 빌라 골목길",
type: "위험",
coords: { x: 120, y: 310 },
icon: "🔴",
desc: "CCTV 사각지대 및 불법 주정차 심함, 보차 분리 안 됨"
},
{
id: "p3",
title: "아람문구점",
type: "쉼터",
coords: { x: 380, y: 220 },
icon: "🏪",
desc: "아동 안전 지킴이집 (비상 시 도움 요청 가능)"
}
];
학교 주변의 주요 도로 좌표와 위험/안전 거점 8~10곳을 코드 상단에 심어두는 심기 모드(데이터 임베딩) 구조로 언제나 0.1초 만에 지도가 펼쳐집니다.
② 순수 SVG 도로망 및 인터랙티브 핀 렌더링
function renderMap(points) {
const pins = points.map(p => `
<g class="map-pin" transform="translate(${p.coords.x}, ${p.coords.y})" onclick="showDetail('${p.id}')">
<circle r="14" class="pin-bg pin-${p.type}" />
<text text-anchor="middle" dy="5" font-size="12">${p.icon}</text>
</g>
`).join("");
return `<svg viewBox="0 0 500 400" class="town-map">${ROAD_PATHS}${pins}</svg>`;
}
무거운 외부 맵 타일 라이브러리(Leaflet 등) 없이 경량 SVG 벡터 패스로 도로를 그리고 마커 클릭 이벤트를 바인딩해 터치에 즉각 반응합니다.
③ 개인정보 0 안전한 크라우드소싱
학생의 집 주소나 개인 통학 경로는 일절 입력받지 않으며, '우리 동네 공공 통학로의 객관적 도로 환경'만을 취급하여 개인정보 노출 위험을 원천 차단합니다.
3. 초보자를 위한 바이브 코딩 실전 사용 예시
- 프롬프트 복사 — 아래 '제미나이 전용 에러 제로 프롬프트'를 복사합니다.
- 역질문 답변 — 제미나이가 묻는 학교 주변 주요 거점(정문, 후문, 육교 등)에 답합니다.
- HTML 파일 실행 — 메모장에 붙여넣고
안전통학로지도.html로 저장 후 더블클릭합니다.
제미나이 전용 에러 제로 프롬프트
[🚨 에러 방지 기본 안전장치]
1. 단일 HTML 파일 완결성: 카카오맵 등 외부 지도 API나 CDN 없이 인라인 SVG 약도와 순수 바닐라 HTML/CSS/JS로 완성한다.
2. 심기 모드(데이터 임베딩): const SAFETY_POINTS = [...] 상수에 학교 주변 안전 쉼터, 주의 구역, 위험 지점 6~8곳의 상대 좌표와 설명을 내장한다.
3. 3단계 위험도 필터: 상단에 '전체보기 / 🔴 위험구역 / 🟢 안전쉼터' 필터 버튼을 두어 원하는 핀만 골라볼 수 있게 한다.
4. 마커 상세 모달: 지도 위 마커를 클릭/터치하면 하단에 제보 제목, 위험 사유, 안전 행동 요령 카드가 매끄럽게 떠오르도록 한다.
5. 학생 개인정보 0: 학생 개인의 집 위치나 실명 저장을 금지하며, 공공 통학로 시설물 정보만 다룬다.
6. // TODO, /* 생략 */ 등의 미완성 코드는 절대 넣지 말고 끝까지 완성한다.
[❓ 역질문 유도]
코드를 즉시 작성하지 말고, 기획을 구체화하기 위한 다음 3가지 질문을 먼저 나에게 던져줘:
1. 우리 학교 주변 약도에 표시할 대표 건물 3~4곳(예: 학교 본관, 문구점, 사거리, 놀이터)은 무엇인가요?
2. 지도 테마 색상은 산뜻한 그린/아이보리 톤과 도시적인 슬레이트 그레이 톤 중 어느 것으로 할까요?
3. 학생들이 새로운 위험 구역을 지도에 직접 찍어보는 '새 핀 제보 모드'도 포함할까요?
🎯 에디터 한줄평
"안전 교육은 '조심해라'는 백 마디 잔소리보다, 내가 매일 걷는 골목길의 위험을 스스로 지도 위에 찍어보는 순간 완성됩니다. 아이들이 직접 발굴한 안전 핀들이 모여 한 장의 지도가 될 때, 교실은 마을을 지키는 든든한 방재 센터가 됩니다."
📚 기술·교육 참고 링크
- 커뮤니티 매핑(Community Mapping) 시민 참여 지도 만들기 방법론
- 교육과정 연계: 초등 3~4학년 사회(우리 고장의 환경과 안전), 창의적 체험활동(안전·환경 교육)