← 목록
기타 2026-05-27 6KB 읽기 6분

견적서 패키지 격상 — 테마·문서함·QnA·.crq·허브 (5트랙 병렬)

개요

견적서/제안서 패키지를 단순 페이지에서 MS Office급 문서 시스템으로 격상. 5개 트랙(테마/문서함/QnA/격상/허브) 병렬 진행. Sonnet/Haiku 에이전트 적극 활용.

산출물

트랙 1 — 테마/브랜드 ✓

  • uploads/테마/crowny.json — 회사명·로고URL·색상·폰트·푸터문구 정본
  • 세로/가로/제안서 뷰어 3종 모두 테마ID 필드로 테마 로드
  • HTML 출력 시 :root { --주색: ...; } CSS 변수 동적 생성
  • 브랜드 바 (로고+회사명) + 발행 푸터 자동 삽입

트랙 2 — 내 문서함 ✓

  • /문서함 라우트 + 문서함.html UI
  • 견적+제안 통합 목록 (클라이언트가 두 API 합성)
  • 검색·필터(종류/즐겨찾기)·일괄삭제·즐겨찾기(localStorage)
  • 한선씨 정통화 시도 → VM 함수 후반부 출력값 silently 누락 함정 발견. HTML+JS 채택. (RPN 재시도는 후속)

트랙 3 — Q&A 빌더 △

  • /qna 라우트 + qna.html 위저드 (Sonnet)
  • data/견적_질문트리.json — 24개 질문 노드
  • 한선씨/답변_to_견적JSON.한선 — 답변→견적 JSON 변환
  • 발주처_↔공급받는자_ 키 폴백 추가
  • 버그: JSON생성(맵) 이 빈 [] 출력. UI는 라이브, 변환만 후속 디버그

트랙 4 — 문서 격상 (.crq) ✓

  • docs/crq-format.md.crq 포맷 사양 (JSON 단일파일 + 메타 3필드)
  • 라우트: /견적서/다운로드, /제안서/다운로드, /문서함/업로드, /문서함/공유, /문서함/공유/<토큰>
  • 다운로드: application/x-crowny-doc+json MIME + Content-Disposition
  • 업로드: .crq 파일 → 종류 자동 감지(공종→견적, 섹션→제안) → 저장 후 새 id 발급
  • 공유: 만료 토큰 → 문서함/data/공유.json 저장 → 만료 시 410 Gone
  • 한선씨 동반 crq메타.한선 (체크섬 + 메타 생성, 컴파일·실행 검증)
  • 문서함.html에 ⬇/🔗/⬆ 버튼 추가

트랙 5 — 허브 재편 ✓

  • 홈.html 상단 nav에 Q&A 빌더 + 문서함 추가
  • 카드 그리드 재배치: 문서함(NEW) + Q&A(NEW) 카드 신규
  • 견적서 카드에 세로/가로 한선씨 링크 추가
  • 통계 "13 활성 모듈 · v1.0 문서함·QnA·.crq NEW"

라이브 URL

http://localhost:4100/             ← 허브
http://localhost:4100/문서함        ← 통합 문서함
http://localhost:4100/qna           ← Q&A 위저드
http://localhost:4100/견적서/세로   ← 한선씨 세로뷰어
http://localhost:4100/견적서/가로   ← 한선씨 가로뷰어
http://localhost:4100/제안서/뷰     ← 한선씨 제안뷰어
http://localhost:4100/uploads/테마/crowny.json ← 테마 정본

정통 헌법 정통성

항목정통 비율
견적서 RPN 계산 엔진100% (견적엔진.rpn.한선)
뷰어 렌더링 (HTML 생성)100% (한선씨 정본, JS 어댑터 옵션)
데이터 (JSON)이행보조
서버 (Node.js)외부의존성 (한선씨 PoC 4199 검증됨)
Q&A 변환기한선씨 (버그)
격상 메타 생성기한선씨 (crq메타.한선)

잔여 이슈

  • Q&A 변환기 JSON생성(맵) 빈 출력 버그 디버그
  • 문서함뷰어 한선씨 정통화 — VM 함수 후반부 누락 함정 우회
  • PDF 어댑터 (현재 인쇄→PDF 저장 → 한선씨가 PDF 직접 출력)
  • 한선씨 4199 서버 PoC를 4100 본진 통합 (현재 Node 서버)
  • 도면 모듈도 같은 패턴으로 한선씨 정통화

학습DB 등록 대기

  • 견적엔진 정통RPN 3종 (이전 등록 완료)
  • crq메타.한선 — 체크섬·종류감지 패턴

/loop #1 — PDF 직접 생성 (2026-05-28)

구현

  • 라우트: GET /견적서/PDF?id=<id>&form=가로|세로, GET /제안서/PDF?id=<id>
  • 엔진: Chrome.app --headless=new --print-to-pdf
  • 응답: application/pdf (~600KB, 멀티페이지) · Content-Disposition: inline; filename="..."
  • 한선씨 동반: 문서함/한선씨/PDF메타.한선 — 체크섬·종류·양식 자동 감지
  • 문서함 UI: 📄 PDF 버튼 신규 추가

검증

  • 가로 견적서 PDF: 605KB, 3페이지
  • 세로 견적서 PDF: 동일 라우트, form=sero 또는 양식=세로 두 키 모두 지원
  • 제안서 PDF: 164KB, 1페이지

주요 결정

  • Chrome timeout 60초 (첫 부팅 ~20초)
  • PDF 라우트는 견적서/제안서 모듈 이전 배치 (fallback 충돌 방지)
  • IIFE 안 비동기 응답이 outer 함수 fallback 과 경쟁하던 버그 회피

/loop #2 — 다국어 (한·영·중·일) (2026-05-28)

구현

  • 라벨 사전: uploads/i18n/labels.json — ko/en/zh/ja 4언어 × 54 키 (견적서·제안서 모든 고정 라벨)
  • 뷰어 3종에 i18n: 세로/가로/제안서 — 전역 _사전 + L(키) 헬퍼 (1매개변수, 폴백 키→키)
  • 라벨 교체: 세로 32건, 가로 48건, 제안서 22건 (합계 102건)
  • 라우트: ?lang=ko|en|zh|ja 매개변수 → LANG_CODE env 전달
  • HTML <html lang="..."> 자동 매핑

검증 (4언어 × 3뷰어 = 12 케이스)

  • 견적서 (세로/가로): 견 적 서 / QUOTATION / 报 价 书 / 御 見 積 書
  • 제안서: 제 안 서 / PROPOSAL / 提 案 书 / 御 提 案 書
  • PDF 4언어 라이브: en 562KB / zh 728KB / ja 732KB (모두 3페이지)
  • 회귀: ko 미설정 시 한국어 기본, 기존 출력과 동일

학습DB

  • i18n_라벨사전_4언어 — 사전 구조
  • i18n_뷰어_L헬퍼 — 전역 사전 + L(키) 패턴

라이브 URL

/견적서/세로?lang=en
/견적서/가로?lang=zh
/제안서/뷰?lang=ja
/견적서/PDF?id=<id>&lang=ja

주요 결정

  • 라벨만 번역, 데이터(공사명·품명·단가 등 사용자 입력)는 원본 유지
  • 환경변수 LANG_CODE (한국어 키 미지원 회피)
  • 전역 변수 + 1매개변수 헬퍼 (한선씨에서 가능한 패턴)