← 목록
기타 2026-06-21 2KB 읽기 3분

hama.crowny.org 하마성경월드 복원

개요

정은수 소장 하마성경월드(hama.crowny.org:9862) 공개 사이트의 "내용이 사라진" 장애를 복원.

진단

  • hama.crowny.org → :9862 (crowny-hama), bible.crowny.org → :9860 (crowny-bible) — 별개 서비스.
  • :9862 백엔드가 죽어있었음 (LISTEN 없음, 공개 503). 자동 기동(LaunchAgent/supervisor) 미등록 상태.
  • 데이터/HTML은 전부 온전 (/Users/ef/crowny-hama/data/*.json, public/index.html).
  • 근본 원인 추정: 실제 내용을 서빙하는 Node server.js 대신, API가 {"status":"ok"} 스텁만 반환하는
한선씨 버전(crowny-data/services/hama.한선bin/hama.toau)이 켜졌을 가능성. 스텁은 /api/contents·videos·daily를 빈/잘못된 형태로 반환 → 프런트가 내용을 못 그림 = "내용 사라짐".

조치

  1. Node server.js 기동 + 영속화: ~/Library/LaunchAgents/com.crowny.hama.plist 신규 (KeepAlive=true, RunAtLoad).
launchd가 :9862 소유(PID 88721). 재부팅/크래시 자동 복구.
  1. 한선씨 동반본 수정: crowny-data/services/hama.한선 스텁 → 실제 data/ JSON을 읽기()로 서빙하도록 개선.
컴파일 성공(186KB), bin/hama.toau 갱신. 단 videos.json(21KB)은 한선씨 단일 읽기() STR 한계(16KB) 초과로 Node 전용임을 명시 → 프로덕션은 Node 유지가 정답.
  1. 학습DB에 셀서버_JSON파일_서빙 패턴 등록.

검증 (공개)

  • GET / → 200, 14219B
  • /api/videos → 119편
  • /api/contents → 12건
  • ttfb 0.07s (워밍 후)

관련 파일

  • /Users/ef/crowny-hama/server.js (프로덕션, Node/express)
  • /Users/ef/crowny-hama/{public,data}/ (HTML + 콘텐츠 JSON)
  • /Users/ef/Library/LaunchAgents/com.crowny.hama.plist (신규, KeepAlive)
  • /Users/ef/crowny-data/services/hama.한선 (한선씨 동반, 개선) → bin/hama.toau

잔여 이슈

  • 한선씨 셀서버의 큰 응답(>16KB) 처리 한계 → 영상 등 대형 JSON은 Node 백엔드가 담당. 한선씨 HTTP 서버 프로덕션 성숙은 별도 과제.
  • 다른 서비스도 동일하게 supervisor/LaunchAgent 미등록 시 재발 가능 → 점검 권장.