← 목록
성경 2026-06-22 3KB 읽기 4분

하마성경 본문 리더 고도화 — 딥링크가 실제 성경 본문에 도달

개요

직전 작업(hama↔bible 딥링크 연결)의 한계 — bible은 큐레이션 24구절뿐이라 렌즈/통독 딥링크 대부분이 "신규 본문 카드"(참조만 표시)로 폴백 — 를 해소. 개역한글 전권(66권)을 bible에 탑재하고 본문 읽기 탭(리더)을 추가해, 하마성경월드의 렌즈 구절·통독 범위가 실제 성경 본문 텍스트에 정확히 도달하게 함.

무엇을 했는지

데이터 (per-book lazy-load)

  • 소스: /Users/ef/Downloads/crownybible_study/bible_text_compact.json (4.4MB, 66권 ch[장][절])
  • 66권으로 분할 → crowny-services/public/bible/text/<a>.json + text/index.json 매니페스트
  • 최대 264KB(시편), 모바일에서 필요한 책만 fetch. 서버 수정 불필요(serveStatic 하위 자동 서빙)

bible 리더 (public/bible/index.html)

  • 본문 읽기 탭 신규: 책/장 셀렉트 + 이전/다음 장 + 절별 렌더(절번호+본문), 하이라이트/스크롤
  • parseRef(ref): 책이름 최장일치 → 장:절 / 장범위(1-7) / 편 파싱. 정규식 기반
  • "로마서 5:8" → 5장 렌더 + 8절 하이라이트
  • "창세기 1-7장" → 1~7장 연속 렌더(통독)
  • "데살로니가전서 5:16-18"·"마태복음 25:35,40"·"시편 119편" 모두 처리
  • loadBook(fetch+캐시)·renderReader·initReader·onBookChange/onChapChange/readStep
  • applyDeepLink 개편: 매니페스트 로드 후 ref가 실제 책으로 파싱되면 리더로 직행(폴백은 기존 말씀/탭)
  • 리더→필사 연동: readToWrite() + writeSource() 오버라이드(본문 절을 ref와 함께 필사 저장)
  • 리더 CSS(절 레이아웃·하이라이트·장헤더·셀렉트)
  • hama (출발 — crowny-hama)

    • reading.js: 통독 본문읽기 → ?tab=read&ref=라벨&from=hama (plan→read)
    • library.js: 렌즈 → ?tab=read&ref=구절&from=hama (word→read)

    관련 파일

    • /Users/ef/crowny-services/public/bible/index.html (리더 탭+엔진+parseRef+딥링크개편)
    • /Users/ef/crowny-services/public/bible/text/*.json (66권 + index.json, 신규)
    • /Users/ef/crowny-hama/public/js/reading.js, library.js
    • 한선씨 동반: /Users/ef/crowny-data/services/성경구절파서.한선 (컴파일·실행, JS parseRef와 1:1)

    검증

  • JS 문법(bible 인라인 + hama 2종) OK
  • parseRef 전수: 렌즈 12/12 실제 본문 텍스트 도달, 통독 라벨(범위) 정확, 특수형식(범위/다중절/편) 정확
  • DOM 스텁 E2E(실제 인라인 코드 실행):
  • ?ref=로마서 5:8 → 로마서 5장 21절 렌더 + 8절 하이라이트("우리가 아직 죄인…")
  • ?ref=창세기 1-7장 → 1~7장 184절 연속 렌더(하이라이트 없음=범위모드)
  • 정적 라이브: text/index.json·Jhn.json·Rom.json HTTP 200, 딥링크 HTTP 200
  • 두 서비스 헬스 200, 무재기동 라이브 반영
  • 한선씨 동반 컴파일 OK + 결과 JS와 동일, 학습DB 등록("성경구절참조_파서_책인식_장범위_절")
  • 잔여 이슈 / 후보

    • 개역한글 단일 역본 — 다른 역본(개역개정/새번역) 추가 시 역본 셀렉트
    • 리더 내 절 클릭 → 그 절만 렌즈/필사로 보내기(현재 장 단위 readToWrite)
    • 검색(키워드→절) 미구현, KPS 의미 ID(kps_bible_v3.json) 연동 미사용
    • 양방향(bible 리더 절 → hama 문화렌즈 역링크)