← 목록
기타 2026-05-28 11KB 읽기 11분

크라우니브라우저 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 이진
자립도한선씨만, 외부 의존 060+ 외부 라이브러리✓ 자립

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 + 주요 ES2023AST 캐시, hot path 인라이닝, async/await 완성
WebAssembly🟢 SIMD+Threads🟡 2,008줄, 기본 모듈🟡 기본 + SIMD검증기 정밀화, host calls 한선씨 ↔
레이아웃🟢 LayoutNG🟡 1,591줄, 블록/인라인🟢 + Flex/Gridflex/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+폰트 풀 전송
셀코어 IPCwindow.crowny.cell.* (셀 읽기/쓰기/이웃)사용 안 됨 (서버 API로 우회)
단축키OS 전역 (⌘K, ⌘P 등)페이지 내부만
오프라인crownyc VM이 직접 실행, 네트워크 0 가능Service Worker 캐시만
4상 상태T/O/A/U 시각화 자동 (탭/탭존재/보안)CSS 클래스로 일부 표현
한글 도메인 (CRNS)네이티브 .월드 .한국 등DoH/일반 DNS 폴백
개발자 도구셀코어 그래프 뷰 + 4상 인스펙터표준 DevTools
확장한선씨 .한선 모듈 직접 importChrome 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.1HTML5 spec 정밀화 (template/slot, shadow DOM 기본)🔴→🟡HTML파서
11.2CSS Grid + Container Queries🟡→🟢레이아웃
11.3JS ES2023 핵심 (top-level await, Records & Tuples stage3)🟡→🟢JS엔진
11.4HTTP/2 multiplexing 실구현 (HPACK 포함)🟡→🟢HTTP스택
11.5CSP L3 + Trusted Types🟡→🟢보안엔진

Phase 12 — 앱 모드 인프라 (3주)

#작업산출
12.1window.crowny.* 한선씨↔JS 브릿지runtime 노출
12.2CRN 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.1JS AST 캐시 + 핫 패스 인라이닝~3-5x 속도
13.2컴포지터 GPU 위임 (Metal on macOS, Vulkan on Linux)60fps 보장
13.3DOM 변경 배치 (마이크로태스크 합치기)리렌더 ↓
13.4캐시시스템 디스크 압축 (CAF7 응용)디스크 50% ↓
13.5무거운 모듈 lazy import (확장/devtools/wasm)시작 시간 ↓

Phase 14 — 미디어/그래픽 (3주)

#작업산출
14.1CAF7 비디오 디코더 통합한선씨 네이티브
14.2OS 코덱 위임 (AVFoundation/MediaFoundation)AV1/VP9/Opus
14.3Canvas2D 풀 완성 + Path2D그래픽
14.4WebGL 1.0 (ANGLE 대체로 시뮬레이션)3D 기초

Phase 15 — 생태계 (지속)

#작업
15.1한선씨 확장 마켓 (pkg.crowny.org/ext/)
15.2wpt 회귀 자동화 (web-platform-tests subset)
15.3CRN 계정 P2P 동기
15.4모바일 빌드 (iOS Safari 엔진 위임, Android 한선씨 직접)

5. 즉시 착수 가능한 5개 (이번 주)

  1. 로컬직통 Path A 통합 — Phase 12.3. 이번 통합 후속. crownyc 소켓 클라이언트 디버그 또는 WebKit URLSchemeHandler.
  2. window.crowny.* 브릿지 골격 — JS엔진에 host call 추가, 한선씨에서 expose.
  3. X-Crowny-Browser 헤더 표준 선언HTTP스택.기본헤더설정에 한 줄 추가.
  4. 앱 모드 감지 가이드라인 — 서버용 짧은 spec (Accept 헤더 + UA 검사).
  5. 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.mdPhase 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 위임