Crowny CAD (cad.crowny.org:9609) 서비스 구축 — 파라메트릭 CAD 1차 출시
개요
디자인 핸드오프
/Users/ef/Downloads/design_handoff_crowny_cad/(dc.html 1085줄 = 유일 스펙, 픽셀 재현 대상)를 정독·학습하고, 크라우니 생태계 7종(오피스·스페이스·홀·빌딩·투데이·트리·ERP) 패턴을 조사해
cad.crowny.org:9609를 구축·라이브했다. AutoCAD/Fusion 대용 파라메트릭 CAD — 스케치/3D/어셈블리/도면/제조·렌더 5뷰, 도구 26종, 레이어 7종(CTB 펜), PLM 상태기계, 플롯 다이얼로그, 크라우니집사 자연어 설계, 오피스 라이브 링크 라운드트립.
무엇을 했는지
1. 스펙·생태계 학습 (탐사 에이전트 2기)
- 서버 골격 정본 = crowny-space/서버.한선(1528줄): 메인루프·HTTP파싱·라우팅·PSV append-log latest-wins·파일소켓전송. 서비스간 계약 = 홀↔스페이스 브리지(curl -m 2·첫글자
{ 검증·목 폴백·/bus).
- 오피스 라운드트립 정본 =
Documents/CrownyShared/ 파일장부(docindex.psv + 이벤트버스.psv + .cdf 스냅샷, ERP 선례). 오피스에 외부앱 임베드 전용 API는 없음 → CAD가 버스 방식 선행.
- 빌딩 자산트윈/QR API는 미구현 확인 → CAD 자체 보관(/api/twin 로컬 기록)으로 재설계.
- 프론트 동반 정본 = crowny-tree/앱.한선(파리티 재구현+줄번호 근거) 패턴.
2. 구축 (소넷 빌더 2기, 가드레일 주입)
| 파일 | 규모 | 내용 |
|---|
CAD엔진.한선 | 196줄 | 계산 SSOT(정수 스케일): 재질DB 9종, 부피/질량, KPI(SF·질량·비용·시간), 견적, DFM(기계 3종 규칙), 집사파싱(문자스캔), PLM 전이, 간섭검사 |
서버.한선 | 1103줄 | 스페이스 골격 복제 + 17 라우트 + CrownyShared 발행(_CrownyShared발행) + URL디코드(빌딩 이식) |
앱.html | 1381줄+ | dc.html 바닐라 JS 픽셀 포팅(computeVals=renderVals 이식, data-act 위임, hover 17클래스, 서버 연동 best-effort, CDN 0건) |
앱.한선 | 파리티 검증 정본(트리 패턴) — 별도 문서 참조 |
org.crowny.cad.plist | LaunchAgent 상주(KeepAlive, CROWNY_STD env) |
3. 검증 (전부 실측)
- CROWNY_STRICT=1 컴파일 경고 0 (엔진·서버).
- 17 라우트 curl 종단 PASS. eval 3케이스 수치가 dc.html 공식과 정확 일치(기본: 2543g·SFx10 1190·₩16,500 — 프론트 JS 독립 산출값 2543.14g와 교차 일치). 집사 파싱 2케이스, PLM 3단 전이, /bus→editreq 왕복, 재기동 PSV 복원 PASS.
- CrownyShared append-only 실측(ERP 기존 행 무손상): docindex/이벤트버스 행 생성 + .cdf 스냅샷 + cad.doc.updated 이벤트.
- 게이트웨이 라우팅 200(Host: cad.crowny.org → 8080). 헤드리스 크롬 스크린샷 육안 — 레이아웃·라이트 우측패널·뷰포트 #22303A·파라메트릭 재계산 라이브 확인. 중앙CSS(크라우니디자인) 적용 후 무회귀.
- 골격게이트(doctype/charset) PASS. JS node --check PASS.
4. 생태계 배선
- gateway.yaml:
cad.crowny.org → 127.0.0.1:9609, spa (crowny-ports.sh set — FQDN 등록, 라우팅 실측 200).
- 크라우니AI 앱목록.psv:
CAD|url:https://cad.crowny.org|-|-|-|파라메트릭 설계 카드 등록.
- 디자인적용대상.psv 등록 + crowny-design.sh apply(멱등, 무회귀 확인).
- 학습 래칫: CAD엔진 함수셋 + CrownyShared라운드트립발행 + CAD프론트파리티판정 learn 등록.
관련 파일 경로
- 코드:
/Users/ef/crowny-cad/ (서버.한선·CAD엔진.한선·앱.html·앱.한선·data/*.psv)
- plist:
~/Library/LaunchAgents/org.crowny.cad.plist (로그 /tmp/crowny-cad.log)
- 백엔드 상세:
2026-07-17-crowny-cad-백엔드.md / 요청 원문: 2026-07-17-요청-cad-crowny-cad-서비스구축.md
- 핸드오프 원본:
/Users/ef/Downloads/design_handoff_crowny_cad/
잔여 이슈
- cert SAN 확장(사용자 실행): cad.crowny.org가 crownybus.com cert SAN(100개)에 미포함 → 공개 HTTPS 000. 실행:
bash /Users/ef/crowny-gateway/scripts/cert-manager.sh sync (gateway.yaml 도메인 동기화·--expand). 완료 시 즉시 HTTPS 활성(게이트웨이 종단).
- 디자인대조.sh FAIL은 부적용 오탐: 해당 도구는 모바일 앱 표준(.tabbar/.omni 등) 검사 — 본 서비스 정본은 핸드오프 dc.html(데스크톱 CAD, README "픽셀 수준 재현" 명시). 은폐 아님 — 규격 충돌 기록.
- 외부 브랜드 문구 2건(DWG 토스트 "AutoCAD 호환", 헤더 "CATIA급") — 핸드오프 원문 보존(스펙 충실 우선). 교체 지시 시 1분 수정 가능.
_JSON값 경량 파서의 값=키 동명 오파싱 한계(생태계 공통 상속, 백엔드 문서 기록).
- v2 로드맵(핸드오프 README): three.js B-rep → OpenCascade.js 커널, 집사 Claude API 교체, DWG/DXF 서버 변환(LibreDWG), RABIT IFC4 계약.
- today(9604)가 launchd 미로드 상태로 발견됨 → org.crowny.today plist 부트스트랩으로 복구(부수 개선).
잔여 해소 (2026-07-17 2차 — "작업 계속")
- 잔여 1 해소: cert-manager.sh sync 실행(Ti 완료·게이트웨이 reload 정상) → cad.crowny.org 메인 cert SAN 포함 → 공개 HTTPS 3경로 200 실측(/health·/ 106KB·/api/doc). 크라우니AI 앱카드(https URL)도 즉시 유효.
- CrownyShared 계약 정합 재확인: 발행 행식이 SSOT(
CrownyBrowser/bundle/erp/spec/ERP-연동계약.md)와 일치. 구독측 배선은 계약서 명시 "각 모듈 후속 punch"(생태계 공통) — CAD 측 완결.
- 참고: 같은 sync에서 character.crowny.org는 ACME 실패로 7일 제외 등록됨(타 세션 서비스 — 해당 세션 잔여).