현재 버전
v2.4.0
2026년 10월 5일 · main 브랜치
회사 NAS에서 Vercel로 이전
배포 · 저장소
- Vercel — 서버가 Vercel(도쿄 리전)에서 실행.
main push 시 자동 배포. NAS docker 배포 삭제
- 데이터 — 학생·샘플·스타일 분석을 Upstash Redis에 암호화 저장 (기존 NAS 데이터 이전)
- 일괄 작성 — 5분 단위로 나눠 이어서 실행. 서버가 중간에 재시작돼도 이어서 진행
NEIS 글자수 규칙 통일, 관리 화면 전면 정리
기능
- NEIS 글자수 — neis-counter 규칙 적용 (한글 3byte, 엔터 2byte 등). 행발 900B · 세특·창체 1500B
- 분량 표시 — 항목 헤더에
공백 제외 N자, 공백 포함 N자, N바이트
- AI 모델 — 모든 Gemini 호출(작성·샘플 분석·메모 파싱) Pro 단일 모델
- 로컬 개발 —
SGB_DEV=1 + scripts/dev-local.sh 실행 시 더미 학생(dev-demo, 김테스트) 자동 시드
UI
- 사용자 가이드 —
/admin/guide 전용 페이지 (Microsoft 지원 문서 스타일). 기존 사용법 모달 제거
- 헤더·푸터 — 상단은 브랜드·가이드·테마만. 개인정보·패치 노트·버그 신고·로그아웃은 하단으로
- 스타일 학습 — 파일 선택·업로드·분석 시작 한 줄 툴바. 샘플 목록 페이지네이션(10/30/50)
- 학생 등록 — 고급 입력(AI·TSV) 제거. 학년 세그먼트 선택 코너 깨짐 수정
- 일괄 AI 작성 — 영역 세그먼트 컨트롤 + 전체 너비 CTA로 재디자인
- 검토 목록 — 체크박스·학생명·상태·검사 배지·열기/삭제 버튼 세로 중앙 정렬
- 상세 편집 — textarea 10줄, 에디터를 검사 패널 위로. 검사 문구
지적→검토, 결과 UI 컴팩트화
- 패치 노트 — 푸터 링크·페이지 제목을
패치 노트로 통일
정리
- Flash(보조) 모델·티어 분기 제거 — Pro만 사용
- 봉사 활동 UI·일괄 작성 항목에서 제거
- 일괄 작성 인원 제한·검토
전체 선택·개발용 runLog 제거
- 항목별
다시 쓰기·맞춤법·분량 맞추기·AI 수정 버튼 제거 (v2.2.0에서 추가됐던 항목 편집 액션)
작성 후 수정 UX, 검사기→수정 루프
기능
- 상세 편집 — 항목별 다시 쓰기·맞춤법·분량 맞추기·AI 수정
- 검사 루프 — 지적 사항 클릭 시 해당 항목으로 이동·하이라이트
- AI 수정 — 검사 이슈가 있는 항목에만 버튼 표시
정리
- NEIS·엑셀 붙여넣기 UI 제거 (API는 유지)
프로토타입(v1.0)부터 현재까지 전체 업데이트 내역 페이지 추가
문서
- 패치 노트 —
/admin/changelog 페이지, 헤더·툴바 버전 링크
학생 등록 UI 정리, 맞춤법 팝업, NAS 배포 안정화
UI
- 이름·학년·반·번호 한 줄 4열 동일 너비
- 학년 세그먼트 버튼 선택 테두리 넘침 수정
- 맞춤법 검사 팝업 중복 문구 제거
- 반·번호 드롭다운 클릭 전 숨김 버그 수정
배포 · NAS
--full-build / NAS-업데이트-API.bat 실제 API 재빌드
- git sync 후 repo 배포 스크립트 재실행
- 8787 포트 충돌·orphan gateway 정리
- 배포 실패 시 점검 플래그(
maintenance.on) 자동 해제
NAS-업데이트-API-로컬.bat (사무실 LAN)
src/ 변경 시 자동 rebuild 감지
AI 맞춤법 검사, 배포 점검 페이지, 반·번호 선택 UI
기능
- AI 맞춤법 검사 — 작성 직후 맞춤법·띄어쓰기 자동 교정
- 미작성 일괄 작성 — 기존 세특 스킵, 브라우저 초안 반영
- 스마트 배포 — UI만 변경 시 재빌드 생략, 터널 불필요 재시작 감소
UI · 인프라
- 반·번호 타일/드롭다운 (1~15반, 1~30번, 직접 입력)
- 작성 팝업 프로그레스바 정리
- 배포 중 점검 페이지 (502 대신 안내)
sgb-gateway nginx + Cloudflare sgb-gateway:8787
정리
- dead code·구형 배포 스크립트 제거 (#20)
검사기, 비동기 일괄 작성, 개인정보·암호화 기반
기능
- 생기부 검사기 — 세특 1500byte, 확인 필요 항목 체크리스트·스킵
- 비동기 일괄 작성 — job 큐, 진행 팝업, 다중 학생·항목
- NEIS 붙여넣기 — 탭 구분·【항목】 블록 → 메모 반영
- 봉사·진로 창체 UI, 등록 후 메모 수정
- 교육과정 기준(curriculum) API, 작성 가이드 인라인 표시
보안 · 데이터
- 학생 JSON AES 암호화 저장·로드 시 복호화
- PII 마스킹 옵션
- 관리자 로그인 새로고침 후 유지
- 고스트 학생(id/파일명 불일치) 정리
UI · 버그 수정
- 학년·반·번호 라벨 정렬
- 로그인 응원 메시지
- 모델 표시·세특 키 오류 수정
- 학생 추가 500, F5 Internal Server Error 수정
- 샘플 목록·stale 토큰·patterns 읽기 오류 수정
- NEIS용 복사·미사용 export/import 제거
NAS 실서비스 배포, 행발/세특 분리, 학생 관리 확장
기능
- 행발·세특 분리 작성 + 섹션 선택기
- 학생 등록 시 작성 항목 (행발·세특·창체) 선택
- 세특 메모 세분화 — 과목명·진로·수행평가·주제·활동
- 학생 삭제, 작성본 초기화, 엑셀 추출
- 교육과정·개인정보 모드·데이터 암호화 도입
- 사용법 가이드 모달
배포 · NAS
- sgb.mansejin.com 라이브 배포 (Cloudflare Tunnel)
SGB_HOST=0.0.0.0 — 터널 502 해결
- NAS git 없을 때 alpine/git docker sync
- curl bootstrap 배포 스크립트, DSM 작업 스케줄러
- Synology docker sudo·비밀번호 SSH 배포
- SMB sync 충돌 → git reset --hard 정리
UI · 로컬 개발
- AI 작성 중 busy 오버레이 (모델명·경과 시간)
- 샘플 일괄 삭제, 고스트 샘플 목록 수정
- Windows 로컬 dev 스크립트 (
DEV-로컬테스트.bat 등)
- Store Python stub 거부, 기본 ADMIN_PASSWORD
교사용 4단계 UI, NAS 원클릭 도구, 자동 배포
기능
- 4단계 흐름 — ① 스타일 학습 → ② 설정 → ③ 학생 등록 → ④ 작성·검토
- AI 학생 등록 (자연어 파싱)
- 무료 플랜 스캐폴드 (
SGB_PLAN, 월 생성 한도)
- 샘플 삭제 API·UI 테이블
NAS · PC 도구
nas-pc.ps1 — SSH/SMB 원클릭 (Tailscale + 로컬 IP)
NAS-업데이트.bat, nas-connect-*.bat, nas-install-key.bat
- GitHub Actions NAS 자동 배포 + DSM 스케줄러
- SMB 드라이브 자동 탐색 (T/Y/Z/K:)
- PowerShell 5.1·SSH config 권한 수정
만세진 사이트 연동, 샘플 업로드 확장
연동
- mansejin.com → API 리다이렉트 (수동 HTML 복사 제거)
- tools-site GitHub Actions 자동 sync
- GitHub Pages CSS 경로 분리 (깨짐 수정)
기능
- 샘플 업로드 — xlsx·docx·다중 파일
- 지원하지 않는 형식 차단 (클라이언트·API)
- 업로드 실패 사유 화면·서버 로그
- 파일 탐색기 기본 «모든 파일»
생기부 작성 머신 최초 프로토타입
핵심
- 생기부 자동 작성 엔진 — Gemini, 행발·세특·창체 생성
- 관리자 웹 — FastAPI + 정적 admin UI
- 과거 생기부 샘플 업로드 → 스타일 가이드 학습
- 학생 TSV/간단 등록, 일괄 작성
- 엑셀 생기부 샘플 import 스크립트
배포 · 문서
- Docker / Railway 배포 가이드
- Synology NAS
docker-compose
web/admin 볼륨 마운트 — UI는 git pull만으로 반영
- Tailscale 원격 접속 가이드
- 베타 TSV 템플릿 (현윤·윤사)
- admin 파일 선택 UI·체크박스 레이아웃
저장소 시작 — 디디딧 대본 도구 (별도 제품)
포함
- Google Sheets 동기화 CLI (
cli.py)
- OAuth·서비스 계정 인증
- Cursor 에이전트용 시트 수정 워크플로
같은 monorepo이나 생기부 작성 머신과는 별도 도구입니다.