핸드오버 2026-08-26 — 통합 계정 · 햇소자 · 허브 정식 오픈 준비

세션 요약

이틀(8/25~26)에 걸친 큰 세션. ① 사교원 통합 계정(SSO) 시스템을 자체서버에 구축해 라이브 가동시켰고, ② 햇빛소득 업무자동화 사이트를 “햇소자”로 리브랜딩하며 기획안 v1.1의 플랫폼 구조로 업그레이드해 정식 주소(sakyowon.co.kr/hatsoja)로 이전했고, ③ 허브 정식 오픈을 위한 전 사이트 점검·보안 보강·연락처 확정·텔레그램 접수 알림 구축까지 마쳤다. 이사장님이 서버 명령을 직접 실행하는 협업 방식이 완전히 자리잡았다.

1. 사교원 통합 계정(SSO) — 구축 완료, 라이브 가동

  • 지시: “허브 접속자는 연대지능 위키를 제외하고 하나의 계정으로 모두 접속가능하도록”
  • 백엔드: sakyowon-site server/app.py(커밋 839b8db, 미러 deka2026/sakyowon-server 791f8cf)에 /api/auth/signup|login|logout|me|change-password + /api/admin/members|feedback 구현. users(승인제, 역할 member/staff/admin) + sessions(토큰 해시 저장), pbkdf2 비밀번호, 로그인 분당 8회 제한.
  • SSO 원리: HttpOnly 쿠키 sk_sessionDomain=.sakyowon.co.kr로 심어 apex+전 하위도메인이 로그인 공유. 다른 출처(poomasi 등)에서는 기술적으로 불가 — 그래서 사이트들을 sakyowon.co.kr 아래로 모으는 흐름이 됨.
  • 통합 관리자 이전: admin.html 캐노니컬이 deka2026/deka2026.github.io(허브 레포) 로 이동, sakyowon.co.kr/admin.html 서빙. sakyowon-site 쪽은 리다이렉트 스텁. 역할 변경 UI(일반/직원/이사장) 추가. admin-smoke 스킬의 경로·카드 수(8개) 갱신됨.
  • 계정 부트스트랩: signup에 admin_key(=SAKYOWON_ADMIN_KEY) 동봉 시 즉시 승인+admin. 이사장님 계정 kimilyoung 생성 완료(비밀번호는 이사장님이 변경함). ⚠️ 첫 시도에서 플레이스홀더(“아이디”/“비밀번호8자이상”)가 그대로 계정이 되는 사고 → 삭제 후 무작위 임시비번 방식으로 재생성한 레슨 있음.
  • 사이트 연동: 신청·문의·피드백 조회 API가 세션 인정(키 방식 병행) / mangnam-coop 마을학교 관리자 자동 인식(85174f2) / mangnam-vitality isAdmin 비동기화로 SSO 인정(99da79c, 기본 비번은 이사장님이 무작위로 잠금) / bid-helper /api/auth/sso 추가(1cfa855, 단 본부 서빙본은 반영 전).
  • 미통합: academy-site·teamlearning-site(Supabase 공유)·mangnam-site(별도 Supabase) — 서비스키 브리지 필요, 별도 프로젝트로 남김.

2. 햇소자 — 리브랜딩·기획 반영·실연동

  • 명칭: 이사장님 확정 “햇소자”(햇빛마루 명칭 사용 금지). 캐노니컬 = 허브 레포 hatsoja/index.html, 정식 주소 sakyowon.co.kr/hatsoja. 구주소(sakyowon.poomasi.org/sunvillage-auto.html)는 리다이렉트 스텁(66fbd67). 본진 홈·푸터 링크도 교체.
  • 기획안: 이사장님 hwpx(햇빛마루 v1.0) 문제점 분석 → 수정안 v1.1 작성(예산·법률·거버넌스·추진체계 4개 장 신설, docs/사회적경제모델자료/에 HTML+docx, 커밋 0563342·8c97c59). 이 v1.1이 햇소자 기능 설계의 근거 문서.
  • 기능 업그레이드(4b5f7de): 공개 신청·진단 퍼널(후보지 자가진단→수익계산기→주민동의 데모→신청서 초안), 생애주기 7단계 스테퍼, 설립·건설(내비게이터·구좌청약—“접수 도구” 법률 보수 표현), 발전·정산·배당, 마을비즈니스, 연합체, 관리자 공모·심사(역할분리 명시), 마을별 자료실·운영 리포트 자동생성, 마이페이지.
  • 실연동(3292ba2): 통합 계정 로그인+SSO 자동 로그인, 상담(/api/inquiries)·참여신청(/api/applications) 실접수, AI 상담(/api/ai/chat — 서버 키 투입 시 실동작), 가입 신청 폼 내장. REAL_API 플래그로 sakyowon.co.kr 외 출처에서는 데모 폴백.
  • 외부 진단 반영(2bd86d2): 모바일 햄버거 메뉴, 개인정보처리방침 페이지+3곳 수집동의 체크박스, OG태그·파비콘(카톡 미리보기), D-day 지난 일정 “지남” 처리, 푸터 404 절대주소화, 모달 자동닫힘, 데모 배지.
  • 테스트: jsdom 스모크 3벌 35케이스 — hatsoja-smoke 스킬로 보존(수정 시 필수 실행).

3. 허브 정식 오픈 준비

  • 전수 점검: 연결 15개 주소 전부 200(bid.sakyowon.co.kr만 DNS 미등록 — 예정 상태). 레포 전수 조사로 실데이터 필요 항목·미완 기능·외부 연결 목록화(→ 미완료 절).
  • 정비(2f9ea3f 등): 허브 카드 현행화(햇소자·어촌신활력 본편 직결·입찰메이트 준비중 해제), 관리자 현황판 8카드, sitemap 7경로, 본진 LONLO 개편으로 죽었던 course-1 앵커 6개 수리.
  • 보안(5fd683b·0984a02): 공개 접수 API IP당 분당 10회 제한(11번째 429 검증), Caddy 보안 헤더 4종(HSTS·nosniff·X-Frame·Referrer — 라이브 확인).
  • 연락처 확정: 대표전화 070-4196-4677, 이메일 sakyowon@sakyowon.co.kr (hello@poomasi 폐기). 본진·햇소자 반영, 라이브 확인. ※ poomasi는 Cloudflare email-protection이 이메일을 감싸므로 curl 검증 시 평문이 안 보이는 게 정상.
  • 텔레그램 접수 알림: 이사장님이 봇 생성(가짜 BotFather 소동 있었음), chat 55676976(이사장님 1:1). 서버 env 등록 후 테스트 접수(INQ-260826-155839-706)로 끝까지 검증. 절차 전체를 위키 연대지능아카데미/사이트-접수-알림을-텔레그램-봇으로-받기로 문서화.
  • 본진 문구 수정들: sunvillage-auto 사업소개(“분양형” 삭제→“전국적으로”), 자동화 필요성 두 문장 추가+볼드, 이용 대상 3항목, 가입 절차 1·2·4단계 개편 — 전부 현 hatsoja에 승계됨.

레슨

  1. 이사장님께 드리는 명령은 자기완결형으로. 플레이스홀더(“아이디”)는 그대로 실행된다. 무작위 값 자동 생성(openssl rand)+화면 출력, 삭제→재생성을 한 블록으로 묶어 몇 번을 실행해도 안전하게 설계할 것. 여러 줄 복붙이 겹치는 사고(>>echo 기형 줄)도 실제 발생 — 중요한 줄은 “한 줄만 단독으로” 명시.
  2. 푸시 ≠ 반영. sakyowon.co.kr 정적은 deploy-www.sh 수동 실행이 필요하고, 반영 후에도 브라우저 캐시(Ctrl+F5)·Next 재배포 직후의 옛 탭(빈 화면)이 “안 됐다”로 보인다. 원격 curl로 서버 상태를 먼저 확정하고 안내할 것.
  3. SSO 쿠키는 같은 사이트에서만. SameSite=Lax + Domain 쿠키 특성상 poomasi 출처에서는 sk_session이 동작할 수 없다 — REAL_API 플래그로 도메인별 실연동/데모 폴백을 나누는 패턴이 답이었다.
  4. 가짜 BotFather 사칭 봇 존재. 인증 체크마크·정확한 아이디 확인법을 반드시 안내에 포함할 것.
  5. jsdom 테스트에서 location.hash 변경 후에는 hashchange 이벤트 정착을 기다려야 재렌더에 결과가 씻겨나가지 않는다(120ms 대기). 실코드에도 pending 요소 널 가드 필요.
  6. 본진 리디자인(LONLO SPA) 시 하위 페이지의 루트 앵커가 조용히 죽는다 — 리디자인 후에는 하위 페이지 nav 링크 전수 점검.

미완료

  1. [이사장님] AI 키 투입(선택): /etc/sakyowon-api.envSAKYOWON_ANTHROPIC_KEY 추가 + systemctl restart sakyowon-api → 햇소자 AI 상담 실동작.
  2. [이사장님] deploy-www.sh 1회 — 텔레그램 가이드 위키 문서·이 핸드오버 라이브 반영분.
  3. [이사장님→데카] 콘텐츠 자료 확정 대기: 양성과정(course-1) 기수·일정, 망남쿱 마을식당 메뉴·가격, 초록·연두교실 참가비, 크라우드펀딩 일정, 아카데미 교육일정.
  4. [이사장님 결정] ① 입찰메이트 bid.sakyowon.co.kr 이전 여부(본부 서빙본은 SSO 이전 버전 — 이전해야 통합 계정 동작, 결정 시 데카가 지미 편지 작성) ② 아카데미·팀러닝 Supabase 계정의 통합 계정 편입 여부 ③ 서남해 그랜드 도메인.
  5. [이사장님] 공공데이터포털 G2B 키 신청(입찰메이트 공고 자동수집), 알리고 문자 키(선택).
  6. [데카] 고향사랑기부제 정기 갱신 — 2026-08-29 예정(UPDATE.md 절차).
  7. [데카] 햇소자 회원 영역 실데이터화(마을·문서 DB) — 기획안 로드맵 2단계, 별도 세션 과제.
  8. [지미] 당장 요청할 것 없음. 입찰메이트 이전 결정 시 데이터 인계 요청 예정.