문제
전시 부스 키오스크용 카탈로그에서 시작해, 영업용 웹과 인터넷 없이 여는 USB까지 같은 데이터로 내고 담당자가 직접 고칠 수 있어야 했습니다.
결정
- 정적 → DB 전환을 데이터 로더 1파일 교체로 끝냈습니다. 기존 catalog.json과 같은 모양으로 재조립하고 접근자 4개 시그니처를 유지해, 페이지 코드는 무수정, 21제품 표본 차이 0.
- 온라인·오프라인 이중 빌드. file:// 제약(모듈 CORS·fetch 차단·절대경로)을 IIFE + 데이터 인라인 + 상대경로 + 폰트 자체 호스팅으로 풀었습니다.
- 키오스크에 이미 있던 유휴 타이머에 데이터 재조회를 연결해, 새 인프라 없이 수정 내용이 반영됩니다.
부서진 곳과 고친 방법
- 관리자 앱 첫 실사용에서 모든 저장이 실패했습니다. 관리자 테이블에 RLS는 켜졌는데 자기 읽기 정책이 없어 "관리자만 쓰기"가 항상 빈 결과를 봤습니다. 정책 1개로 복구하고 왕복 검사를 상시 게이트로 걸었습니다.
- 배포는 고쳤는데 USB만 옛 버전이었습니다. USB 셸이 레포에 커밋된 프리빌드 번들이었기 때문입니다. 프리빌드가 소스보다 낡으면 잡는 검사를 넣고, 옛 셸로 돌려 실패하는 것까지 확인했습니다.
- 카드 이미지 잘림은 코드로는 안 보였습니다. 헤드리스 실측에서 16:10 박스(203px)에 정사각(324px) 이미지가 렌더된 것을 찾았고, 이후 실제 렌더 치수를 재는 것을 검수 기본값으로 삼았습니다.
결과
- 제품 329종 · 대분류 4 · 중분류 26 · 이미지 758 · 스펙 364
- 치수표 66종(PDF 65장 판독, 53종 신규)
- 수정 지시서 PPT 124장 · 마크업 232개 반영 누락 0
- USB용 ZIP 약 43~45MB — 이미지 860개 · 참조 827건 누락 0
- 오프라인 57페이지 이미지 깨짐 0 · 외부 요청 0
- 권한 실측: 익명 읽기 200 / 익명 쓰기 401