크라우니브라우저 v2.1 vs 크롬 — 격상 평가 및 로드맵
2026-05-28 | 범용 브라우저 격상을 위한 객관적 평가 + "앱처럼 vs 웹서비스" 차별화 청사진.
핵심 의도
크라우니브라우저 = 우리 서비스가 앱처럼 구동되는 환경
크롬/사파리 = 우리 서비스가 일반 웹서비스로 동작
같은 코드베이스가 두 모드 모두 지원. 크라우니브라우저는 "앱 모드" 분기로 추가 기능 활성.
1. 현황 스냅샷
| 항목 | 크라우니브라우저 v2.1 | 크롬 (Blink+V8) | 비고 |
|---|
| 코드량 | 49,244 줄 한선씨 / 2,564 함수 | ~30M 줄 C++ | 크롬의 0.16% |
| 모듈 | 36 (.한선 단일계층) | 수천 컴포넌트 | 응집도 ↑ |
| 빌드 크기 | TOAU 27MB | ~120MB | — |
| 런타임 | crownyc VM (ISA729) | V8 + Skia + ANGLE + ... | 균형3진 vs 이진 |
| 자립도 | 한선씨만, 외부 의존 0 | 60+ 외부 라이브러리 | ✓ 자립 |
2. 영역별 평가 매트릭스
평가: 🟢 동등/우수, 🟡 부분, 🔴 큰 격차, ⚪ 미구현
| 영역 | 크롬 | v2.1 현재 | 격상 목표 | 격상 방안 |
|---|
| HTML5 파싱 | 🟢 spec 100% | 🟡 272줄, 기본 트리만 | 🟢 spec 95%+ | 토큰화 정밀화, 에러복구, template/shadow DOM |
| CSS3 | 🟢 Grid/Flexbox/Container | 🟡 1,836줄, 69함수 | 🟢 Grid/Container 추가 | 레이아웃 모듈 확장, CSS변수 우선순위, 미디어쿼리 L4 |
| JS (ES2023) | 🟢 V8 JIT | 🟡 1,741줄 인터프리터 | 🟡 ES2020 + 주요 ES2023 | AST 캐시, hot path 인라이닝, async/await 완성 |
| WebAssembly | 🟢 SIMD+Threads | 🟡 2,008줄, 기본 모듈 | 🟡 기본 + SIMD | 검증기 정밀화, host calls 한선씨 ↔ |
| 레이아웃 | 🟢 LayoutNG | 🟡 1,591줄, 블록/인라인 | 🟢 + Flex/Grid | flex/grid 완성, BFC/IFC 분리 |
| 렌더링 | 🟢 Skia + GPU | 🟡 GPU렌더러 1,638줄 | 🟢 Metal/Vulkan 가속 | 컴포지터 레이어 분리, 변환행렬 GPU 위임 |
| 네트워크 HTTP/2 | 🟢 풀 구현 | 🟡 HTTP/1.1 + H2 시뮬 | 🟢 H2 풀, H3 시뮬 | 멀티플렉싱 실구현, HPACK |
| TLS 1.3 | 🟢 BoringSSL | 🟡 시뮬 마킹만 | 🟡 외부 위임 or 셀TLS | 단기 OS keychain, 장기 한선씨 TLS |
| WebSocket | 🟢 spec 완전 | 🟢 1,235줄 네트워크고급에 통합 | 🟢 | OK |
| DOM API | 🟢 풀 spec | 🟢 2,049줄, 137 함수 | 🟢 | Shadow DOM 추가만 |
| 보안 (SOP/CORS/CSP) | 🟢 풀 spec | 🟡 730줄, 35 함수 | 🟢 | CSP L3, Trusted Types, Permissions Policy |
| 미디어 (V/A) | 🟢 AV1/VP9/Opus | 🔴 1,535줄, 코덱 없음 | 🟡 CAF7(자체)+OS 위임 | CAF7 디코더 통합, 시스템 코덱 위임 |
| Canvas/WebGL | 🟢 풀 | 🟡 컴포지터 일부 | 🟡 Canvas2D 완성 | 박스렌더 확장 |
| WebGPU | 🟢 표준 | ⚪ | 🟡 시뮬 | 장기 |
| 확장 (V3) | 🟢 마켓 200K+ | 🟡 1,940줄, API 일부 | 🟡 핵심 API + 한선씨 확장 | declarativeNetRequest, storage, action |
| DevTools | 🟢 풀 | 🟡 581줄 | 🟡 Elements/Network/Console | 셀코어 시각화 추가 |
| PWA / Service Worker | 🟢 | 🟡 매니페스트만 | 🟢 SW + cache | 캐시시스템 SW로 노출 |
| 동기화 | 🟢 Google 계정 | 🟡 849줄, P2P 셀 | 🟢 CRN ID + 셀 동기 | 크라우니 계정 통합 |
| 접근성 | 🟢 AXTree | 🟢 812줄 | 🟢 | OK |
| 국제화 | 🟢 ICU | 🟡 728줄 | 🟢 | ICU 데이터 + CRNS 한글 |
| 성능 (V8 JIT) | 🟢 매우 빠름 | 🔴 인터프리터 | 🟡 hot path 캐시 | AST 캐시, 인라이닝, 무손실 trace |
| 표준 호환 (web-platform-tests) | 🟢 ~95% 통과 | 🟡 미측정 | 🟡 ~50% 목표 | wpt subset 자동 회귀 |
현재 상태 요약:
- 🟢 7항 / 🟡 13항 / 🔴 3항 / ⚪ 1항
- 격차가 큰 곳: JS 성능, 미디어 코덱, CSS Grid/Flex 완성도
- 우수한 곳: WebSocket, DOM, 접근성, 자립도, 4상 균형3진 통합
3. "앱처럼 vs 웹서비스" 차별화 청사진
같은 도메인이 어느 브라우저에서 열리느냐에 따라 동작이 갈라지는 이중 트랙 설계.
3.1 분기점: User-Agent + 능력 감지
javascript// 크라우니브라우저
navigator.userAgent // "CrownyBrowser/2.1 (CrownyOS; 한선씨)"
window.crowny // 존재 → 앱 모드
window.crowny.layer // "T" | "O" | "A" | "U"
// 크롬
window.crowny // undefined → 웹 모드 (서버 shim으로 stub 가능)
3.2 기능별 분기 매트릭스
| 기능 | 크라우니브라우저 (앱 모드) | 크롬 (웹 모드) |
|---|
| 도메인 라우팅 | 로컬직통 자동 → 127.0.0.1:포트 (게이트웨이 우회) | gateway.crowny.org 거쳐 정상 HTTPS |
| 인증 | CRN ID 단일 로그인, 브라우저가 토큰 발급/갱신 | 일반 OAuth/쿠키 |
| 지갑 | window.crowny.wallet (네이티브 키 store) | 사용 안 함 (UI만, 결제는 PG 안내) |
| 맘/포네 결제 | 1-클릭, 네이티브 서명 | 페이지 이동 후 외부 결제창 |
| 알림 | OS 알림 + 셀 이벤트버스 push | 표준 Notification API만 |
| 디자인 | crowny-internal:// 번들 자동 주입 (292KB → 0KB 전송) | 서버에서 CSS+폰트 풀 전송 |
| 셀코어 IPC | window.crowny.cell.* (셀 읽기/쓰기/이웃) | 사용 안 됨 (서버 API로 우회) |
| 단축키 | OS 전역 (⌘K, ⌘P 등) | 페이지 내부만 |
| 오프라인 | crownyc VM이 직접 실행, 네트워크 0 가능 | Service Worker 캐시만 |
| 4상 상태 | T/O/A/U 시각화 자동 (탭/탭존재/보안) | CSS 클래스로 일부 표현 |
| 한글 도메인 (CRNS) | 네이티브 .월드 .한국 등 | DoH/일반 DNS 폴백 |
| 개발자 도구 | 셀코어 그래프 뷰 + 4상 인스펙터 | 표준 DevTools |
| 확장 | 한선씨 .한선 모듈 직접 import | Chrome Extension (V3 일부) |
| 인쇄/PDF | 셀 기반 레이아웃 + CAF7 임베드 | 표준 PDF |
| 동기화 | CRN ID + 14 제네시스 노드 (P2P) | 자체 동기화 안 함 |
3.3 서버 측 처리
서버는 항상 표준 응답 반환.
크라우니브라우저는 `Accept: application/crowny+vector` 등 추가 헤더 송신.
서버가 그 헤더 보면 4상 메타데이터 + 셀 IPC 페이로드 함께 응답.
일반 브라우저는 표준 HTML/CSS/JS만 받음.
권장 HTTP 헤더 표준:
Accept: application/crowny+vector — 4상 벡터 응답 요청
X-Crowny-Layer: T|O|A|U — 현재 클라이언트 레이어
X-Crowny-Browser: 2.1 — 능력 시그널
4. 격상 우선순위 로드맵 (Phase 11~15)
이미 v2.1이 Phase 10 완료. 격상은 Phase 11+.
Phase 11 — 표준 호환 정밀화 (격차 해소, 4주)
| # | 작업 | 영향 | 모듈 |
|---|
| 11.1 | HTML5 spec 정밀화 (template/slot, shadow DOM 기본) | 🔴→🟡 | HTML파서 |
| 11.2 | CSS Grid + Container Queries | 🟡→🟢 | 레이아웃 |
| 11.3 | JS ES2023 핵심 (top-level await, Records & Tuples stage3) | 🟡→🟢 | JS엔진 |
| 11.4 | HTTP/2 multiplexing 실구현 (HPACK 포함) | 🟡→🟢 | HTTP스택 |
| 11.5 | CSP L3 + Trusted Types | 🟡→🟢 | 보안엔진 |
Phase 12 — 앱 모드 인프라 (3주)
| # | 작업 | 산출 |
|---|
| 12.1 | window.crowny.* 한선씨↔JS 브릿지 | runtime 노출 |
| 12.2 | CRN ID 통합 인증 모듈 | 단일 로그인 |
| 12.3 | 로컬직통 cleanup (Path A 통합 — WKURLSchemeHandler) | macOS .app |
| 12.4 | 디자인 자동 주입 (crowny-design 메타 → 번들) | 트래픽 86% 절감 |
| 12.5 | 셀코어 IPC (window.crowny.cell.read/write) | T/O/A/U |
| 12.6 | 단축키 전역 (⌘K, ⌘P, ⌘., ⌘L) | UX |
Phase 13 — 성능 (4주)
| # | 작업 | 효과 |
|---|
| 13.1 | JS AST 캐시 + 핫 패스 인라이닝 | ~3-5x 속도 |
| 13.2 | 컴포지터 GPU 위임 (Metal on macOS, Vulkan on Linux) | 60fps 보장 |
| 13.3 | DOM 변경 배치 (마이크로태스크 합치기) | 리렌더 ↓ |
| 13.4 | 캐시시스템 디스크 압축 (CAF7 응용) | 디스크 50% ↓ |
| 13.5 | 무거운 모듈 lazy import (확장/devtools/wasm) | 시작 시간 ↓ |
Phase 14 — 미디어/그래픽 (3주)
| # | 작업 | 산출 |
|---|
| 14.1 | CAF7 비디오 디코더 통합 | 한선씨 네이티브 |
| 14.2 | OS 코덱 위임 (AVFoundation/MediaFoundation) | AV1/VP9/Opus |
| 14.3 | Canvas2D 풀 완성 + Path2D | 그래픽 |
| 14.4 | WebGL 1.0 (ANGLE 대체로 시뮬레이션) | 3D 기초 |
Phase 15 — 생태계 (지속)
| # | 작업 |
|---|
| 15.1 | 한선씨 확장 마켓 (pkg.crowny.org/ext/) |
| 15.2 | wpt 회귀 자동화 (web-platform-tests subset) |
| 15.3 | CRN 계정 P2P 동기 |
| 15.4 | 모바일 빌드 (iOS Safari 엔진 위임, Android 한선씨 직접) |
5. 즉시 착수 가능한 5개 (이번 주)
- 로컬직통 Path A 통합 — Phase 12.3. 이번 통합 후속. crownyc 소켓 클라이언트 디버그 또는 WebKit URLSchemeHandler.
window.crowny.* 브릿지 골격 — JS엔진에 host call 추가, 한선씨에서 expose.
X-Crowny-Browser 헤더 표준 선언 — HTTP스택.기본헤더설정에 한 줄 추가.
- 앱 모드 감지 가이드라인 — 서버용 짧은 spec (Accept 헤더 + UA 검사).
- wpt subset 첫 회귀 — HTML/CSS 부터 50건 자동 테스트.
6. 평가 결론
현재 v2.1은 "self-hosting을 위한 자립 엔진" 단계 (Path B). 격상 격차는 표준 정밀도 + 성능에 집중.
크롬과 1:1로 모든 영역에서 동등을 노릴 필요 없음. 차별화는 앱 모드 쪽이 결정. 즉:
- 범용 브라우저 = "그래도 잘 보임" 수준이면 충분 (Phase 11+13 완료 시 달성)
- 앱 모드 = 크롬은 절대 할 수 없는 영역 (Phase 12에서 결정)
이번 로컬직통 통합은 Phase 12 첫 벽돌. 다음 벽돌은
window.crowny.* 브릿지.
관련 파일
| 파일 | 역할 |
|---|
/Users/ef/CrownyBrowser/MASTERPLAN-v2.md | Phase 1~10 (이미 완료) |
/Users/ef/CrownyBrowser/src/v2/*.한선 | 36개 모듈, 49,244줄 |
| 본 문서 | Phase 11~15 격상 청사진 |
잔여 이슈
- crownyc VM 소켓 클라이언트 동작 (별개 — 격상 전제) — 우선순위 ★★★
- WebKit Path A와 한선씨 Path B의 단일 진입점 통합 전략 — 우선순위 ★★
- wpt 자동화 인프라 부재 — 우선순위 ★★
- JS JIT 부재 → 성능 ceiling — Phase 13에서 ASAT 캐시로 부분 보완
- 미디어 코덱 라이선스 비용 회피 → CAF7 + OS 위임