← 목록
한선씨 2026-06-11 6KB 읽기 6분

한선씨 웹엔진 vs WebKit — 정직 비교

작성일 2026-06-11 · 대상 엔진 /Users/ef/CrownyBrowser/src/한선씨웹엔진.한선 측정 환경: macOS arm64, hanseonc_high → TOAU → crownyc run (CROWNY_STD=libs) 원칙: 과장 금지. 측정값·소스 사실만 기록. 미실측은 미실측이라 명시.

0. 한 줄 현 상태

크롬엔진(Blink/V8) 0건. crowny:// 같은 내부 페이지는 순수 한선씨 엔진으로 렌더 가능. 일반 웹(임의 HTML/CSS/JS)은 현재 여전히 WebKit(WKWebView, Path A 래퍼)에 의존하며, 한선씨 엔진으로의 전환은 진행 중(부분 구현)이다.

  • 순수 한선씨 엔진은 WebKit/WKWebView를 한 줄도 호출하지 않는다. 소스 내 "WebKit" 문자열 5건은 전부 "WebKit 없음"을 명시하는 주석이다.
  • 일반 웹을 WebKit 없이 동등하게 띄우는 단계까지는 아직 도달하지 못했다(아래 미지원 표 참조).

1. 한선씨 엔진이 현재 실제로 렌더하는 것

한선씨웹엔진.한선은 HTML 문자열을 직접 파싱 → DOM 병렬배열 → 블록 흐름 레이아웃 → cmd(INIT/RECT/TEXT/END)로 발행한다. cmd는 두 경로로 재사용된다.

  1. crownyc의 fb_rgb 네이티브 프레임버퍼 렌더 (crownyc.c 내 fb_rgb 참조 36건 확인)
  2. native/렌더브라우저.한선 (cmd → HTML 변환, 파일 존재 확인)

1.1 측정값 (실측)

항목출처
컴파일(hanseonc_high)약 0.030초1회 측정
토큰 / 큐브1929 토큰 / 7250 큐브컴파일 로그
TOAU 바이너리203,000 바이트wc -c
실행(crownyc run) 1회35.7–36.2 ms5회 측정(아래)
발행 cmd 줄 수20줄wc -l /tmp/웹렌더.cmd
DOM 노드 수13개자가검증 출력
cmd 길이702 바이트자가검증 출력
crownyc run 5회 렌더 지연 (실측):

RUN1 = 36.2 ms
RUN2 = 35.9 ms
RUN3 = 36.1 ms
RUN4 = 36.1 ms
RUN5 = 35.7 ms
평균 ≈ 36.0 ms (편차 ±0.3 ms)

주의: 이 36 ms는 VM 프로세스 기동 + 파싱 + 레이아웃 + cmd 파일 쓰기까지의 전체 1회 실행 시간이다. 샘플 HTML(약 300자, 13 노드) 기준이며, 대형 페이지에서의 시간은 미측정이다. WebKit의 페이지 로드와 직접 비교 가능한 동일 벤치마크는 아직 만들지 않았다.

자가검증 5종(cmd 줄수>15 / 제목 TEXT / 문단 TEXT / cmd파일+INIT / 링크·리스트 TEXT) 전부 통과(=티). 단 시각적 화면 표시는 디스플레이가 필요하므로 미실측(엔진 스스로 "시각 표시는 디스플레이 필요·미실측"이라 보고).

1.2 지원 기능 (가능)

기능한선씨 엔진근거
텍스트 노드 + 공백 정규화가능공백정규화() 연속공백→단일
블록 흐름 레이아웃(세로 누적)가능레이아웃발행() _y 누적
제목 h1(28px #2C1810) / h2(22px 골드 #C9A961)가능ctx 분기
문단 p(15px 본문)가능기본 스타일
div 배경색 카드(RECT 띠)부분고정 6px 띠로 단순화
리스트 li 불릿(골드 •) + 들여쓰기가능_좌여백+20, 불릿 발행
링크 a (코랄 #D97757)가능(색만)색 분기. 클릭/네비게이션 없음
br / 줄바꿈가능_y += 20
1280×800 뷰포트 + y<800 클립가능발행_TEXT y>=800 무시

2. WebKit이 하는 것 vs 한선씨 엔진 (정직 비교표)

영역WebKit한선씨 엔진상태
텍스트 렌더OO가능(폭측정 없는 nowrap)
블록 레이아웃OO세로 누적만
배경색O고정 6px 띠 근사
링크 표시O색만, 동작 없음
리스트OO1단계 불릿
인라인 자동 줄바꿈(wrap)OX한 노드=한 줄 nowrap
박스 모델(패딩/마진/테두리)OX정밀계산 없음
중첩 div 실제 높이 추적OX고정 띠로 단순화
CSS 선택자/스타일시트OX클래스 키워드 4종(gold/coral/cream/card)만
이미지(img)OX미지원
표(table)OX미지원
폼(form/input)OX미지원
flexbox / gridOX미지원
JavaScript 실행OX미지원(엔진 자체에 JS VM 없음)
미디어(video/audio)OX미지원
한글 폭 측정 기반 정확 좌표OX폭 측정 없음
범례: O 지원 · △ 부분/근사 · X 미지원

3. 정직한 결론

  • 크롬엔진 의존도: 0 (Blink/V8 미사용 — 사실).
  • crowny:// 등 내부/단순 HTML: 순수 한선씨 엔진으로 렌더 가능 (cmd 20줄 발행, 36 ms 실측 — 사실).
  • 일반 웹: 현재 WebKit(Path A 래퍼)에 의존. 한선씨 엔진으로 완전 전환은 진행 중이며, wrap/박스모델/CSS/이미지/JS/폼/미디어가 미지원이라 임의 웹페이지를 WebKit 없이 정확히 띄우지는 못한다(정직 보고).
  • 시각적 픽셀 출력은 디스플레이 필요로 헤드리스 미실측. 검증은 cmd 줄수·구조·텍스트 포함까지만 확인.

4. 관련 파일

  • 엔진: /Users/ef/CrownyBrowser/src/한선씨웹엔진.한선
  • cmd 출력(실측 산출): /tmp/웹렌더.cmd (20줄)
  • cmd→HTML 변환기: /Users/ef/CrownyBrowser/native/렌더브라우저.한선
  • 네이티브 fb_rgb 렌더: /Users/ef/CrownyOS/crownyc/crownyc.c (fb_rgb 참조 36건)
  • v2 커스텀 렌더 모듈(장기): /Users/ef/CrownyBrowser/src/v2/
  • Path A WebKit 래퍼(현 일반웹 경로): /Users/ef/CrownyBrowser/native/crowny-browser.m

5. 잔여 이슈 (전환 완료까지)

  1. 인라인 자동 줄바꿈(wrap) — 한글 폭 측정 + 줄 분할 좌표
  2. 박스 모델(패딩/마진/테두리) 정밀 계산 + 중첩 div 실제 높이 추적
  3. CSS 선택자/스타일시트 파서(현재 키워드 4종만)
  4. 이미지/표/폼/flexbox/미디어
  5. JS 실행 엔진(현재 전무)
  6. 디스플레이 시각 검증(현 헤드리스 미실측) — 실제 픽셀 대조 단계 필요