크라우니OS GUI 방향 재설정 — 동시실행모드 시대의 UI (2026-06-11)
개요
VM(crowny-vm)이 원 목표 양쪽을 완성했다 — ① Coherence 13 마일스톤(크라우니OS 앱이 별도 맥 NSWindow, 마우스+키보드+리사이즈, 증분 프레임 247→17.8 타일) ② Linux 게스트(Alpine userspace 부팅, GIC/타이머/virtio-blk 동작). "VM 완성되는대로 GUI 처음부터" 조건이 충족되어 방향을 재설정한다.
1. 현 GUI 자산 인벤토리 (재시작이지 백지화 아님)
| 자산 | 위치 | 상태 |
|---|---|---|
| 뷰.한선 (방사형셀 위젯트리, 10위젯, 레이아웃, 히트테스트) | CrownyOS/crownyc/libs/뷰.한선 (828줄) | 68% |
| 컴포지터.한선 (레이어/Z/알파블렌드/박스블러그림자/자가검증) | libs/컴포지터.한선 (17KB, 6-11 라이브 작업중) | 진행 |
| 한글꼴.한선 (16×16 음절, 자모 8×8, A/B/C 3배치형, 자연반올림 회피) | libs/한글꼴.한선 (25KB) | 작동 |
| 글꼴.한선 (5×7 ASCII) | libs/글꼴.한선 | 작동 |
| 웹코드 188모듈 (듀얼렌더: FB opcode ↔ HTML DOM) | libs/웹코드*.한선 (140K줄) | 85% |
| Coherence (게스트 창 → 맥 NSWindow, vsock 4포트, RLE 타일) | crowny-vm/coherence/ | 완성 |
| FB opcode 348~366 (RGB사각형/둥근/글쓰기) + ramfb + VirtIO-GPU | crownyc + crowny-vm | 80% |
2. "Cocoa 이상의 UI" — 방향 선언
핵심 원칙: Cocoa/Metal은 표시 기판(스왑체인)일 뿐이다. UI의 정의·레이아웃·합성·미학은 전부 한선씨가 갖는다.
지금 Coherence는 게스트가 그린 래스터 타일을 호스트 창에 blit한다. 이 방식의 천장이 곧 Cocoa 기본 품질이다(5×7 폰트, 비HiDPI, CPU blit). "Cocoa 이상"으로 가는 길:
Coherence v2 — 벡터 씬 프로토콜 (채택 방향)
[게스트 CrownyOS] [호스트 crowny-vm]
뷰.한선 위젯트리 (정본, 한선씨)
→ 컴포지터.한선 합성 명령 스트림 → Metal GPU 합성 (해상도 독립)
(레이어/둥근사각형/그림자/한글텍스트) Retina 2x/3x 자동 배율
→ vsock FRAME 포트: 벡터 명령 전송 호스트측 고품질 폰트 래스터화
(래스터 타일은 폴백으로 유지) 애니메이션 보간은 호스트 GPU
- 해상도 독립: 벡터 명령이라 Retina에서 게스트 수정 없이 선명. 래스터 타일의 HiDPI 한계 해소.
- 대역 절감: 증분 프레임 17.8타일 → 명령 수십 개. 애니메이션도 "전이 명령" 하나.
- 단일 정본: 같은 뷰.한선 트리가 ① VM 호스트 Metal ② 네이티브 FB(베어메탈) ③ 웹 DOM 세 기판에 렌더 — 듀얼렌더 패턴(웹코드 188모듈에서 검증됨)의 확장.
- 헌법 준수: 게스트측 전부 한선씨, 호스트측 C/ObjC는 표시 기판 최소한만.
폐기/보류하는 방향
- ❌ Cocoa 위젯(NSButton 등) 직접 사용 — UI 정의가 Apple에 종속, 헌법 위배.
- ❌ 래스터 전용 고도화(타일 압축 개선만) — 품질 천장이 낮음. 폴백으로만 유지.
- ⏸ 외부 폰트 엔진(TrueType/HarfBuzz) — 외부 의존. 한글꼴.한선 배율·외곽선 확장이 먼저.
3. 로드맵 (작은 것 하나씩 완성)
| 단계 | 내용 | 기반 |
|---|---|---|
| P1 이벤트 모델 | 포커스 스택, 캡처→타겟→버블 디스패치, 키보드 라우팅 — 뷰.한선에 한선씨로. ISA729 이벤트 opcode 후보 검토 | 뷰.한선 히트테스트 |
| P2 씬 명령 스트림 | 컴포지터.한선 합성 명령을 직렬화(레이어/도형/텍스트/Z) → Coherence FRAME 포트에 VECTOR 메시지군 추가 | 컴포지터.한선(라이브) + coherence_proto.h |
| P3 호스트 Metal 합성기 | crowny-vm display에 벡터 명령 해석기(C) — 둥근사각형/그림자/한글꼴 글리프 캐시 GPU 렌더, Retina 배율 | display/window.m Metal 파이프라인 |
| P4 미학 표준 | 크라우니디자인: 베이지+골드 #C9A961 TOAU 4상색, 클로드 밸런스(warm kraft+코랄 #D97757), 729 분위기 테마 자동 생성 | 크라우니GUI.한선 |
4. 페블(Fable 5) 성능·효율 + 크라우니코드 연계 체크
페블 효율 (이 세션 실측)
- 병렬 Explore 에이전트 2기로 GUI 스택 전모(3경로 계층도)+VM 완성도(부팅 8단계표)를 1라운드에 수확 — 단일 순차 탐색 대비 체감 절반 이하 시간.
- 단, 에이전트 보고에 오류 있었음: "한글 미지원" 단정 → 실제로는 한글꼴.한선 존재. 에이전트 결론은 정본 파일로 재검증 필수 (이번에 검증으로 잡아냄).
- 패턴 검색 HIT:
file_컴포지터+ 컴포지터 함수 8건 — 오늘 다른 세션 산출물이 수확기로 이미 학습DB 유입. 수확→재사용 루프 작동 확인. - 의도추출 MISS: "한글 자모 조합 글꼴 렌더링" →
인증에러_한글오매칭 (0.17초). GUI 도메인 키워드가 intent/keywords.dat에 부족 — GUI 재시작 시 keywords 확장 필요 (quadcode clone 프로토콜로). - 학습DB: CrownyOS 64,960 / 홈 129,945 패턴. 누적 비중 58%.
관련 파일
- 뷰/컴포지터/한글꼴:
/Users/ef/CrownyOS/crownyc/libs/ - Coherence:
/Users/ef/crowny-vm/coherence/(proto/guest/host_core/host.m) - VM 마스터플랜:
/Users/ef/CrownyDoc/projects/2026-06-10-크라우니VM-for-mac-마스터플랜.md
잔여 이슈
- GUI 세션과 P2 프로토콜(VECTOR 메시지군) 설계 합의 필요
- 크라우니코드 intent에 GUI 키워드 확장 (quadcode 자기수정 프로토콜)
- 한글꼴.한선 외곽선/가변폭 확장은 P3 글리프 캐시와 함께