30개 독서록 파일이 1초에 하나로 — AI Rules 기반 파이썬 취합 봇 완전 정복
📚 학급 드라이브에 모인 개별 독서록·일기장 텍스트 파일을 파이썬 봇이 1초 만에 학생 번호순으로 정렬·병합하고, 미제출자 명단까지 자동 추출합니다. 교탁 PC에서 배치 파일(batch file) 더블클릭 한 번으로 끝납니다.
비결은 AI Rules(에이전트 규칙 파일) — 파일명 규칙·출력 서식·원칙을 규칙 문서에 심어두면, AI로 코드를 고칠 때마다 같은 규칙을 지킵니다. 규칙의 재현성(reproducibility)입니다. 독서록은 학생 저작물이므로, 취합은 교탁 PC에서 로컬로만 처리하고 외부 전송은 0입니다.
📖 한 줄 정의
심기 모드(데이터 임베딩): API 데이터를 미리 받아 HTML 파일 안 상수로 박아두는 방식(앱 실행 중 외부 통신 0).
학내망 원칙: 학교 배포 웹앱은 개인정보 수집·저장·전송 없음(외부 CDN·API 호출 0, 단일 파일) — 학생은 학내망에서 교사 PC 서버에 접속.
1. 3대 핵심 분석 비교표
| 무엇이 바뀌었나요? / 영역 | 초보자를 위한 쉬운 설명 | 이렇게 한번 써보세요! |
|---|---|---|
| 운영 시나리오 | 금요일 독서록 취합 10~30분 수작업 → 더블클릭 1초. 남은 시간은 학생 피드백에 씁니다. | 배치 파일 더블클릭 → 취합 파일 열기. |
| AI Rules 규칙판 | 파일명 규칙(예: 03_김이레_독서록.txt)·출력 서식·원칙을 규칙 문서 5줄로 정리. AI에게 함께 제공하면 수정할 때마다 규칙을 지킵니다. |
규칙 5줄을 학급 회의에서 확정. |
| 번호 추출 | 정규식(regular expression)으로 파일명 앞 두 자리를 번호로 읽어 정렬합니다 — 이름 오탈자와 무관하게 번호로 묶습니다. | 정규식 한 줄로 30개 파일 분류. |
| 병합·미제출 명단 | 1~30번 중 파일이 없는 번호를 '미제출'로 자동 추출 — 점검이 문답이 아닌 목록으로 끝납니다. | '미제출: 07, 19' 한 줄 확인. |
| 원칙·안전 | 로컬 처리 전용(읽기·합치기·저장), 외부 전송 0. 학생 저작물은 교사 피드백용으로만. | 규칙 문서에 원칙 한 줄 상시 기록. |
2. 핵심 아키텍처 해설 — 규칙판이 먼저, 코드는 나중에
① AI Rules 규칙 파일 양식
# AI Rules — 우리 반 독서록 취합 봇
1. 파일명 규칙: 번호 2자리_이름_독서록.txt (예: 03_김이레_독서록.txt)
2. 출력: 취합_독서록_YYYY-MM-DD.txt, 첫 줄에 날짜·총 인원·미제출 수
3. 미제출자는 마지막에 '미제출: 번호, 번호' 목록으로 붙인다
4. 원칙: 이 봇은 파일을 읽고 합칠 뿐 — 외부로 전송하지 않는다
5. AI와 함께 수정할 때는 이 규칙 파일을 먼저 제공한다
이 규칙 파일은 두 가지 역할을 합니다: 학생·교사에게는 약속 문서, AI에게는 설계 명세. AI Rules의 본질은 '규칙을 글로 남겨 코드와 함께 두는 것'입니다.
② 번호 추출: 정규식(regular expression)
import os, re, glob
pattern = re.compile(r"^(\d{2})_") # 파일명 앞의 두 자리 번호
records = {}
for path in glob.glob("독서록/*.txt"):
m = pattern.match(os.path.basename(path))
if m:
records[int(m.group(1))] = path
③ 병합과 미제출 명단
missing = []
merged_lines = ["취합 일시: " + today, "총 인원: 30"]
for n in range(1, 31):
if n in records:
merged_lines.append("=== " + str(n) + "번 ===")
merged_lines.append(open(records[n], encoding="utf-8").read())
else:
missing.append(n)
merged_lines.append("미제출: " + (", ".join(str(n) for n in missing) or "없음"))
파일명 규칙이 지켜지지 않은 파일은 '규칙 불일치' 경고 목록에 담아 알려줍니다 — 조용히 건너뛰지 않습니다.
④ 배치 파일(batch file): 더블클릭 실행
@echo off
python 취합봇.py
pause
메모장에 3줄을 저장하고 취합봇.bat로 저장하면, 교탁 PC에서 더블클릭 한 번이 됩니다.
⑤ 운영 원칙
- 로컬 전용: 파일을 읽고 합치고 저장 — 외부 전송 0(학내망 원칙 정합).
- 파일명 규칙 교육: 규칙을 학급 회의에서 정하고 학생과 약속 — 학급자치와 자연 연결.
- 규칙 갱신: 출력 서식을 바꾸려면 규칙 파일을 먼저 고친다 — 코드는 규칙을 따른다.
3. 초보자를 위한 바이브 코딩 실전 사용 예시
- 프롬프트 복사 — 아래 '제미나이 전용 에러 제로 프롬프트' 전체를 Gemini에 붙여넣습니다.
- 역질문 답변 — 인원수, 파일명 규칙, 출력 서식 세 질문에 답합니다.
- 배치 실행 — 규칙 파일과 봇 코드, 배치 파일을 받아 교탁 PC에서 더블클릭.
제미나이 전용 에러 제로 프롬프트 (파이썬판)
[🚨 에러 방지 기본 안전장치]
1. 표준 라이브러리만 사용한다(os, re, glob, datetime) — pip 설치가 필요한 것은 없다.
2. 모든 파일은 encoding="utf-8"으로 읽고 쓴다(한글 깨짐 방지).
3. 파일명 규칙에 맞지 않는 파일은 건너뛰지 말고 '규칙 불일치' 경고 목록에 담아 마지막에 보여준다.
4. AI Rules 규칙 파일(rules.txt)까지 함께 생성해 준다 — 코드는 규칙을 따라 쓴다.
5. 결과 파일이 이미 존재하면 날짜를 붙여 새 파일로 저장한다(덮어쓰기 금지).
6. 이 봇은 외부로 데이터를 전송하는 기능을 만들지 않는다(학내망 원칙).
7. // TODO, pass 등 미완성 코드 금지 — 끝까지 완성한다.
[❓ 역질문 유도]
코드를 바로 만들지 말고, 아래 3가지를 먼저 나에게 질문한 뒤 내 답변으로 설계를 확정한다.
Q1. 총 인원은 몇 명으로 볼까? (미제출 판정 기준)
Q2. 파일명 규칙은 어떻게 할까? (번호 2자리_이름_독서록.txt 기본)
Q3. 출력 서식은? (첫 줄 날짜·총 인원·미제출 수 + 번호별 구분선)
🎯 에디터 한줄평
'취합 시간'이 '피드백 시간'으로 — 교사의 1시간이 아이들에게 그대로 돌아갑니다. 규칙을 문서로 심는 AI Rules는 '약속을 글로 남기는 것'의 기술 버전입니다. 파일명 규칙을 학급 회의에서 정하는 것부터 자치이고, '규칙 불일치' 목록을 조용히 넘기지 않는 설계가 교육적 신뢰를 만듭니다.
📚 기술·교육 참고 링크
- 파이썬 공식 사이트 : 교탁 PC 설치 — 학년 초 1회
- 파이썬 정규식(re) 공식 문서 : 번호 추출 한 줄의 정체
- 교육과정 연계: 창의적 체험활동·학급자치(약속 문서 만들기), 실과 SW(자동화의 원리)와 함께 활용