세션 요약
이틀(8/1~8/2)에 걸친 세션. 위키 보안 취약점을 해소하고, 사교원 전 사이트를 아우르는 통합 관리자 페이지를 만들어 6개 사이트 푸터에 연결했다. 고향사랑기부제 사이트의 2주 1회 정기 갱신 체계를 준비했고(크론 등록만 지미 대기), 이사장님이 올린 공식 자료 33건으로 망남 어촌신활력 사이트 콘텐츠를 보완해 정적 홍보판을 임시 오픈했다.
작업별 기록
1. 위키(sakyowon-wiki) 보안 취약점 해소
- Dependabot high 2건 = sharp <0.35.0 (libvips CVE 4건). sharp 0.34.5→0.35.3 + 작업 중 발견한 brace-expansion DoS까지 수정. 잔여 취약점 0건, Pages 배포 성공. 커밋
aa13a38a. - gh CLI가 시스템에서 사라져 있었음 —
~/.local/bin/gh유저 레벨 복구본으로 해결 (export PATH="$HOME/.local/bin:$PATH"필요).
2. 사교원 통합 관리자 (sakyowon-site)
admin.html신설(c0a4860) 후 통합 확장(8fb72f7): 로그인(+가입신청) →GET /api/auth/me가드 → 대시보드. 탭 3개 = 사이트 관리(6개 사이트 현황판: no-cors 접속점검 + GitHub API 최근 커밋) / 회원 승인 / 개선의견. 비밀번호 변경 모달 포함. admin·staff 역할만 통과.- 인증은 HttpOnly 쿠키(
sk_session), 모든 응답{ok:...}래핑 — 지미의 7/24 API 계약(JIMMY-DECA.md) 그대로. - 6개 사이트(메인·허브·위키·망남쿱·고향사랑·망남신활력) 푸터에 관리자 진입 링크 배포 완료.
- 검증 도구: jsdom 스모크 테스트 5종 — 스킬
admin-smoke로 저장해 둠. - 🔴 백엔드 회귀 발견: login/signup/admin API가 500 Flask HTML 반환(me·logout만 정상 = RPC 경로만 죽은 패턴). 지미에게 보고(8/1 11:56 편지). 복구 전엔 이사장님 로그인 불가.
3. 고향사랑기부제(hometown-love) 2주 1회 정기 갱신 체계
- 이사장님 지시: “갱신은 2주 1회로 정기적으로 해.”
- 갱신 절차서
build/UPDATE.md커밋(a862ca9) — 조사→make_data.py 수정→재생성→푸시. 세션에서 “고향사랑 갱신해” 한마디로 실행 가능. - 러너
/home/deka/.local/bin/hometown-update.sh작성. 크론 등록(1·15일 10:17 KST)과 headless claude 인증 연결은 지미 요청(8/1 12:40 편지) — 이 격리 계정은 원격 루틴(claude.ai org 없음)·crontab·systemd 유저 타이머·headless 인증 전부 불가함을 실측 확인. - 크론 등록 전까지는 데카가 매 세션 시작 시 2주 경과 여부 확인(메모리에 기록됨).
4. 망남 자료함(mangnam-jaryo)과 자료 수령
- 비공개 레포
deka2026/mangnam-jaryo개설. 일반 파일은 웹 업로드(25MB 한도), 대용량은 릴리스uploads태그(2GB/파일). 이사장님 GitHub 계정 = deka2026(haeory-cyber 아님 — 초대 불필요). - 자료 33건 수령: 완도군 「망남리 어촌신활력증진사업 기본계획」(2025.11) 장별 hwp + 앵커조직(사교원) 운영·활동 문서 + 집행내역 xlsx 3개년.
- 추출: hwp→
hwp5txt(pyhwp), pdf→pypdf, hwpx→unzip+XML, xlsx→openpyxl. 다운로드·추출본은~/workspace/mangnam-jaryo-files/(txt/ 하위). 절차는 스킬jaryo-intake로 저장. - 중요 발견: 사교원이 이 사업의 앵커조직이다 (2023~2026, 유형2, 앵커사업비 20억. 직원들이 망남마을로 이주해 현장 상주).
5. 망남 신활력(mangnam-vitality) 콘텐츠 보완 + 정적 홍보판 오픈
- 콘텐츠(커밋
53abba4): 홈을 공식 계획서의 3대 부문 체계로 재작성,/about사업 안내 신설(마을 이야기·배경·단위사업·거버넌스·연혁·기대효과),lib/seed.ts로 첫 구동 시 소식 4건+KPI 6종 자동 시드(비어 있을 때만 — 관리자 수정분 보존). - 핵심 수치(원문 검증됨): 총사업비 9,213백만원(국비 70%), 2023
2026, 고령화율 46.1%, 완도읍 전복 약 80%·연 420t, 재적어선 78척, 방파제 4m→6m. 전복 공동구매 실험(2025.56, 위스테이별내): 86상자 2,391,000원, 재구매 의사 83.3%. - 정적 홍보판:
scripts/build-static.sh→out/→ gh-pages 강제푸시 → https://deka2026.github.io/mangnam-vitality/ 라이브. STATIC_EXPORT=1이면 next.config가 export+basePath 전환, NEXT_PUBLIC_STATIC=1이면 문의폼이 사교원 문의 안내로 대체되고 관리자 버튼 숨김. 서버 모드(standalone) 빌드는 그대로 정상 — 지미 배포 경로에 영향 없음. - 허브(sakyowon.co.kr) 카드를 “개설 준비 중”에서 홍보판 링크로 교체. 지미가 서버 배포하면 카드를 mangnam.poomasi.org로 되돌릴 것.
- 공개 부적합 자료(개인정보·예산 세목·근태·내부기안)는 사이트에서 제외했고, 예비 링커 업체명은 협약 전이라 일반 표현 처리.
레슨
- GitHub 릴리스에 올린 파일은 한글 파일명이 잘려 나간다(asset name 영문화, label도 빈 값) — 파일 내용으로 식별해야 하며, 자료 요청 시 번호 붙은 파일명을 권하면 좋다.
- 빌드 스크립트의 원상복구에
git checkout쓰지 말 것 — 커밋 전 수정까지 날린다. 파일 복사 백업으로 복구(build-static.sh가 그 방식). - 시스템 python은 PEP 668로 pip가 막힘 —
pip3 install --user --break-system-packages. - Next.js 정적 export는
force-dynamic제거 + 동적 라우트에generateStaticParams가 필요. 서버/정적 겸용은 환경변수 분기 + 빌드 스크립트로 해결. - poppler-utils가 없는 서버에서 PDF는 pypdf로 텍스트 추출 가능(스캔본은 불가), HWP v5는 pyhwp의 hwp5txt로 처리.
미완료 (다음 세션·담당자)
- [지미] 인증 RPC 500 회귀 복구 → 복구되면 [데카] curl로 재확인 후 이사장님께 admin 임시비번(후니 릴레이) 첫 로그인 + 비밀번호 변경 안내.
- [지미] mangnam.poomasi.org 서버 배포(7/24 요청) → 배포되면 [데카] 허브 카드를 정식 주소로 되돌리기.
- [지미] hometown-love 정기 갱신 크론(1·15일) + headless claude 인증 연결 → 그 전까지 [데카] 세션마다 2주 경과 확인, 첫 갱신 적기는 8/15.
- [지미] wiki.poomasi.org 재동기화(현재 구버전 서빙 — 동기화 방식 회신 대기).
- [데카] 미활용 자료: 스캔 PDF 3건(23.pdf·24.pdf·_.pdf, OCR 필요), 집행내역 xlsx 3개년(정식 배포 후 관리자 예산 탭에 업로드). 조감도 이미지는 이사장님이 그림 파일로 올려 주면 반영.
- [데카] 고향사랑기부제 2차 보강(답례품 가격·연락처, 고향사랑e음) — 이사장님 지시 대기.
다른 디바이스에서 이어받기
모든 레포가 커밋·푸시된 깨끗한 상태다. 새 환경에서는: gh auth login(deka2026) → 필요한 레포 클론(sakyowon-site부터, JIMMY-DECA.md 회신 확인) → 이 핸드오버와 데카 메모리(MEMORY.md)를 읽으면 전체 맥락이 복원된다. 자료 원본은 deka2026/mangnam-jaryo(릴리스 포함)에서 다시 받을 수 있다.