크라우니EV UI 픽셀포팅 (ev.crowny.org:9616)
개요
dc.html 프로토타입(
/Users/ef/Downloads/design_handoff_crowny_ev/Crowny EV.dc.html, 938줄)을
/Users/ef/crowny-ev/public/index.html(1156줄, 단일 파일, 외부 CDN 없음)로 High-fidelity 포팅.
CAD 서비스(
/Users/ef/crowny-cad/앱.html)와 동일한 vanilla-JS 클래스(state/computeVals/template/render)
아키텍처 패턴을 그대로 채택.
무엇을 했는지
- 6뷰 전부 구현: 측면 스튜디오(side)·프론트(front)·컬러·랩핑(color)·성능·사양(spec)·주문 제작(order)·부품 분해(parts)
- 헤더·좌측 팔레트 4그룹 12툴·단축키(1-6 뷰, v/c/s/f/l/d/g/w/p/r/x/b 툴)·토스트·집사(디컨) 입력창·감사로그 인디케이터 전부 포함
- SVG 파라메트릭 실루엣(측면/정면/21부품 분해도) + L0-L8 계층분해 트리(unitsOf=227,913·depthOf=8) + BOM 7×3=21종 + CFRP 경량화(−38%/+60%) 1:1 이식
- 성능 계산(Cd·중량·항속·0-100·최고속)·가격 합산·검수 5행·주문 4단계 상태기계 — dc.html renderVals() 수식 그대로(client float 연산)
- 서버 연동:
/api/order/submit(보증금 결제 전환 시), /api/ai(집사)를 best-effort 호출 — 실패/타임아웃 시 로컬 로직으로 완전 폴백(정규식 파서 1:1 이식)
- 뷰 6종 자가검증용 id 부여:
panel-side/front/color/spec/order/parts(우측패널), svg-side/front/parts/dims(SVG)
한선씨 동반 (EV엔진.한선)
/Users/ef/crowny-ev/EV엔진.한선 신규 작성(기존에 존재하지 않았음 — 검색 결과 없음, 신규 정본화).
성능 5개 공식(Cd/무게/항속/0-100/최고속) + 가격 합산 + 검수 게이트를 한선씨 함수로 구현하고
hanseonc_high로 컴파일·crownyc로 실행해 스펙 문서(
스펙-로직.md) 검증셋과 대조:
Cd=0.320 · 무게=2166kg · 항속=587km · 0-100=2.9s · 최고속=328km/h · 가격=197,500,000원(기본옵션)
전항목 라이브 컴파일+실행으로 일치 확인(2026-07-17). 루트()는 큰 값 스케일업 후 호출해야 정밀도 유지됨을
실측 확인(루트(2140*1e6/무게) → /1000.0), 거듭제곱()은 float 인자·출력 정밀도 양호(실측 0.988672 vs 참값 0.988667).
관련 파일
/Users/ef/crowny-ev/public/index.html (1156줄) — 프로덕션 UI
/Users/ef/crowny-ev/EV엔진.한선 (124줄) — 성능/가격/검수 계산 정본(한선씨), crownycode-learn DB에도 등록
- 참조 스펙:
/Users/ef/crowny-ev/스펙-UI.md, /Users/ef/crowny-ev/스펙-로직.md
- 정본:
/Users/ef/Downloads/design_handoff_crowny_ev/Crowny EV.dc.html
잔여 이슈
- server.js(포트 9616, API 계약: /api/health·/api/spec·/api/inspect·/api/bom·/api/ai·/api/order/submit·/api/order/status·/api/erp/order·/api/manifest)는 이번 작업 범위 밖 — 아직 미구현. index.html은 서버가 없어도 전량 클라이언트 폴백으로 완전 동작하지만, 실제 서버 배선·PSV 영속·크라우니팩토리 커넥터는 후속 작업 필요.
- EV엔진.한선은 데모/자가검증 수준(시작() 1회 검증) — 서버 라우트에서 실제 요청 파라미터를 받아 호출하는 배선은 미완(서버 구현 시 이 함수들을 그대로 재사용).
- data/ 디렉토리(PSV 영속용)는 비어있음 — 서버 구현 시 주문 PSV 저장 위치.