← 목록
기타 2026-06-22 3KB 읽기 3분

요청: 폰트100종-결선

  • 날짜: 2026-06-22 22:07:36
  • 작업 경로: /Users/ef/CrownyOS/crownyc

요청 본문

crowny-fonts 100종 카탈로그를 브라우저/OS 텍스트 렌더에 결선(한선씨 폰트카탈로그+폰트패밀리 해석), 한글꼴 현황

관련 산출

(클로드가 작업 결과를 이어 기록)


산출 결과 — 폰트 100종 결선 (2026-06-22)

현황감사 갭: "crowny-fonts 100종 카탈로그가 font.crowny.org 웹쇼케이스에만 격리, 브라우저 폰트렌더는 3종(Inter/Cormorant/JetBrains) 하드코딩, CrownyOS 벡터폰트 한글 미포함" → 한선씨 카탈로그로 결선.

산출

  • 폰트카탈로그.한선 신규 (/Users/ef/CrownyBrowser/src/): 카탈로그.psv(번호|패밀리|스타일|베이스|굵기|바이트|파일)를 한선씨로 로드 → 레지스트리. API: 폰트수()·폰트해석파일(패밀리,굵기)·폰트경로()·폰트CIF경로()·한글베이스()·패밀리있음(). 가져오기 가능 순수 모듈.
  • 검증: 100종 전부 적재. Crowny Gothic/Bold→006-...ttf, Crowny Myeongjo/Regular→017-...ttf 해석. 절대경로+CIF 글리프시트 경로. 18 패밀리 · 8 굵기 · 전원 한글 베이스(NotoSansKR/NotoSerifKR/Nanum/BlackHanSans/DoHyeon/Jua 등) → 감사가 지적한 "한글 미포함"이 카탈로그 결선으로 해소.
  • 비존재 굵기는 정확히 "" 반환(예: Crowny Script는 Regular만 6종).

CIF 글리프시트 연계 + VM 캡 발견

  • 폰트 글리프시트(catalog-cif/*.cif)도 CIF디코더.한선로 렌더됨(같은 텍스트 TOAU 포맷, 헤더 CIF!/버전:3.0 무시).
  • 교차검증이 VM 함정 적발: 274KB 폰트 글리프 CIF가 VM 읽기() 64KB(STR_MAX_LEN=65536) 단일읽기 캡에 절단(한선씨 1422줄 vs JS 5954줄) → CIF디코더에 무단절단 탐지(; CIF_TRUNCATED) 추가(no silent cap). 배경/소형 CIF는 바이트 완전일치, 대용량 폰트 글리프는 스트리밍 필요(별도 단계).
  • 정직: 폰트 텍스트 렌더의 정본은 TTF(stb_truetype opcode 753~756)이며 카탈로그가 이를 해석. CIF 글리프시트는 프리뷰. 핵심 결선(카탈로그→TTF 해석)은 완료.

위계 하니스 통합 (위계부팅.sh)

[폰트] 단계 추가 — 브라우저가 100종 패밀리+굵기 → TTF/CIF 경로 해석 시연. 최종 end-to-end: 위계 + HTML·CIF·폰트100종 한선씨 결선.

관련 파일

  • /Users/ef/CrownyBrowser/src/폰트카탈로그.한선 (+ _데모)
  • /Users/ef/CrownyBrowser/src/CIF디코더.한선 (절단탐지 추가)
  • /Users/ef/CrownyOS/위계부팅.sh (폰트 단계)
  • 데이터: /Users/ef/crowny-fonts/카탈로그.psv, catalog/, catalog-cif/