이어봄
오늘지나온 나기록함께나
새 묵상
이어봄
오늘지나온 나새 묵상기록함께나
← 개발노트

eobom 절별 연관성구 + 장 배경 — QA 보고서

3.3 설정

  • `package.json` `build`에 `cp -r data/reference/* .next/standalone/data/reference/` 추가 — 운영 누락 해소, 빌드 후 standalone 150M 복사 검증
  • `package.json` scripts: `sync:reference`, `build:reference-db`
  • `.gitignore`에 `data/reference/*.sqlite-shm`, `*.sqlite-wal` 추가

4.1 테스트 스위트

  • **명령:** `bun run pretest && bun test tests/` (FTS 재생성 포함)
  • **결과:** 403 pass / 0 fail (49 files, 1,198 expect) — 기존 회귀 없음
  • **신규:** `tests/reference.test.ts` 6 pass — CSV 헤더/`source_ref`/`license`, 678,162 lines, `GEN 1:1=123`, 라이선스 혼합, by-verse 29,383, `ko 1,171/en 1,189`
  • **주의:** `node:sqlite`는 bun 미지원이라 `crossrefs.ts` 직접 테스트는 불가 — CSV/JSON 파일 검증으로 대체하고 `node -e`에서 `DatabaseSync` 카운트(123/197)로 교차 검증

4.2 타입·린트·빌드

  • `npx tsc --noEmit` 0, `npm run lint` 0
  • `next build` 1회 실패 → 수정 후 성공:

4.5 UI·접근성·취향

  • `entries/[id]/page.tsx` — `excerpt` 단일 `<p>` → `ScripturePassageCard`로 `verse 번호(mono text-label-xs) + text-body-lg` per-verse 분해, 각 절 내부가 아니라 passage 단위 `PassageAnnotationList` 1회로 grouped 조회해 절별 `details`에 분배 (N+1 → 1 개선)
  • `ChapterBackgroundCard` — 첫 성구 기준 1개가 성구 카드들 위에 노출, `overview(gold-soft)` + `historical/theological` 2컬럼 + `literary/cautions` + 출처
  • 빈 블록: 연관 0개면 `details` 미렌더(조용함 유지), 과밀 197개도 8개 미리보기 + `외 N개는 CSV에서 확인`
  • 접근성: `details/summary` 키보드 포커스, 44px 타깃, prose는 `text-body-lg leading-relaxed`
  • CSV 한 줄=한 링크 edge-list ✅
  • 사람 읽기 `GEN 1:1`/`GEN 1:1-3` + 기계용 `GEN/1/1` 동시 보유 ✅
  • `license`/`source_name` 컬럼 포함 ✅
  • verse별 annotation (장 단위만이 아님) ✅
  • **선택:** 대용량 `data/reference/` 150M 일반 커밋 시 클론 무거움 — `.gitattributes` LFS 또는 CI에서 `sync:reference` 재생성 중 택1 고려. 현재는 직접 커밋 전제.
  • **선택:** `tests/reference.test.ts`를 `node:sqlite` 직접 검증으로 승격 — bun이 `node:sqlite`를 지원하면 `DatabaseSync` 카운트 케이스 추가.
  • **선택:** `reread-scripture-list.tsx`에도 동일 grouped 주석 확장 — 1차는 상세만, 2차에 적용.
홈으로제안하기