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

하마성경월드 2차 고도화 — 묵상·필사·문화렌즈상세·영상찜·커뮤니티

개요

"다 하자" 지시로 남은 공백 기능을 전부 구현. 1차(통독 180일+회원)에 이어 묵상 저널 · 말씀 필사 · 문화렌즈 상세+노트 · 영상 즐겨찾기/이어보기 · 커뮤니티(묵상 나눔)를 기존 회원/게스트 토대 위에 통합 per-user 스토어로 얹음. programs.json의 6개 프로그램이 이제 전부 실제 동작 기능이 됨.

구현

백엔드 (server.js)

  • 통합 per-user 스토어 data/mestore/<token>.json = {journal, transcribe, lensNotes, videoFav, videoRecent}.
  • 커뮤니티 공개 피드 data/community.json (최근 500개 회전).
  • 엔드포인트: GET /api/me/store, POST /api/me/journal(+공유), /journal/delete, /transcribe,
/lensnote, /videofav, /videorecent, GET /api/community(공개).
  • 회원가입 시 게스트 스토어(guestStore) 병합 — 묵상/필사/노트/찜이 가입과 함께 이전.
  • writeAtomic 영속화. 401 인증 가드(requireUser).

콘텐츠

  • data/contents.json 12개 문화렌즈에 scripture(핵심 구절)·lesson(성경 렌즈 해설)·reflect(묵상 질문) 추가.
레미제라블/바흐 수난곡/렘브란트 탕자/나부코/벤허/헨델 메시아/미켈란젤로/나니아/Amazing Grace/고흐/이집트왕자/모차르트 레퀴엠.

프런트 (public/)

  • index.html: nav(통독·묵상·필사·문화렌즈·영상·나눔·소개), #practice(필사+묵상), 렌즈 상세 모달, #community 섹션, 영상 "♥내 보관함" 필터.
  • js/reading.js: 인증 상태 전역 노출 window.HamaAuth + hama-auth-change 이벤트 + 가입 시 guestStore 병합/정리.
  • js/library.js (신규): 묵상·필사·렌즈노트·영상찜·커뮤니티 통합. 회원=서버 API, 게스트=localStorage(hama_guest_store), 로그인 시 자동 reload. 필사 정확도=레벤슈타인 유사도 90%↑ 완료, 토스트 알림.
  • js/app.js: 렌즈 카드 클릭→HamaLens.open, 영상 카드 하트(HamaVideo.toggleFav)+이어보기 기록(openVideo)+보관함 필터+로그인 후 하트 갱신.
  • css/style.css: 2차 컴포넌트 전체(+73줄).

한선씨 동반

  • crowny-data/services/묵상필사.한선 — 필사정확도(위치매칭 일치율)·완료판정(90%↑)·통계. 컴파일+실행 검증(완전일치100/완료1, 부분46/완료0). 학습 필사정확도_위치매칭_완료판정.
(library.js는 레벤슈타인; 한선씨는 2D배열 제약으로 위치매칭 간이판 — 개념 동반)
  • 1차 통독진도.한선과 함께 핵심 로직 한선씨 병행.

검증 (E2E, 로컬+공개)

  • 가입+게스트스토어 병합 → journal1/transcribe2 ✓
  • 묵상 저장+커뮤니티 공유 → journal2, 피드에 노출 ✓
  • 필사 → count3 ✓ · 렌즈노트+북마크 → lensNotes1 ✓ · 영상찜 → videoFav1 ✓
  • 공개 /api/community 피드 ✓ · /api/contents 12개 모두 lesson+scripture ✓
  • 공개 페이지 마커 6/6 노출, library/reading/app.js 200 ✓
  • 테스트 유저/스토어/커뮤니티 정리 완료 (잔여 0)

관련 파일

  • /Users/ef/crowny-hama/server.js, data/contents.json
  • data/mestore/, data/community.json (런타임 생성)
  • public/{index.html, js/library.js, js/reading.js, js/app.js, css/style.css}
  • /Users/ef/crowny-data/services/{통독진도.한선, 묵상필사.한선}

잔여 이슈 / 다음 후보

  • bible.crowny.org 딥링크 포맷 확인 시 통독 "본문 읽기"·렌즈 구절 정밀 연결.
  • 문화렌즈 youtube 필드 비어있음 → 실제 하마성경 영상 매핑 시 모달에 영상 노출.
  • 커뮤니티 좋아요/댓글, 통독 그룹(함께 읽기), 멤버십 결제 연동(현재 이메일 수집까지)은 향후.
  • 한선씨 HTTP 서버 한계로 프로덕션은 Node 유지(영상 21KB 등 큰 응답).