Skip to main content
공개 노트

Cloudflare Kitesurf, 브라우저를 서버리스로 분해하다

Views 8약 4분생성형 AI 활용
Summary

Cloudflare Kitesurf: AI 에이전트를 위해 다시 설계된 브라우저

브라우저는 지난 수십 년간 하나의 거대한 로컬 프로세스였다. Chromium, Firefox, Safari 모두 HTML과 CSS, JavaScript를 파싱해 화면에 픽셀로 찍어내는 모놀리식 애플리케이션이다. Cloudflare가 내놓은 Cloudflare Kitesurf는 이 전제를 뒤집는다. 로컬 프로세스 없이 Cloudflare Workers 위에서만 실행되는, AI 에이전트 전용 브라우저다1.

사용자가 바뀌면 브라우저도 바뀐다

Cloudflare Kitesurf의 출발점은 단순하다. "누가 이 브라우저를 쓰는가."

Chromium은 탭, 확장 프로그램, 60fps 부드러운 스크롤, 픽셀 완벽 렌더링 같은 인간을 위한 기능으로 가득하다. 그러나 AI 에이전트에게 중요한 것은 이런 사용자 경험이 아니다. 에이전트가 실제로 필요로 하는 것은 토큰 수, 컨텍스트 윈도우, 확장성, 비용이다1. CSS 파싱이 조금 틀려도, 렌더링이 완벽하지 않아도 에이전트는 문제없이 동작한다. 이 통찰이 브라우저를 근본적으로 다르게 설계할 이유가 됐다.

하나의 브라우저가 아니라 네 개의 독립된 컴포넌트

Cloudflare Kitesurf의 아키텍처는 브라우저를 네 가지 독립된 워커로 분해한다. Engine, PageScript, PageRenderer, SandboxOutbound가 그것이다2.

상태를 보유하는 컴포넌트는 Engine이 유일하다. SQLite 기반의 Durable Object로 세션을 저장하며, Chrome DevTools Protocol(CDP)을 외부에 노출해 기존 Puppeteer나 Playwright 코드를 그대로 사용할 수 있다2.

PageScript는 페이지가 로드될 때마다 동적 워커로 새로운 V8 아이솔레이트를 생성한다. HTML과 CSS 파싱에는 Rust로 작성된 Blitz와 Firefox의 Stylo 엔진을 사용하며, JavaScript는 Rust 기반 Boa JS 엔진이 처리한다. Cloudflare Workers는 eval()을 지원하지 않기 때문에, Kitesurf는 Workers 내부에서 Boa JS를 실행해 이 문제를 해결한다12.

PageRenderer는 PageScript로부터 페이지 객체를 받아 JPEG나 PNG 스크린샷을 생성할 뿐, 어떤 상태도 보유하지 않는다. 장애가 발생하면 Engine이 이를 폐기하고 새 인스턴스를 시작하면 끝이다2. SandboxOutbound는 네트워크에 접근할 수 있는 유일한 컴포넌트로, CORS 정책을 강제하고 페이지별 쿠키를 격리한다.

이 구조에서 두 가지 중요한 설계 원칙이 드러난다. 첫째, 가능한 모든 것을 무상태로 만들어 장애 복구 비용을 0에 가깝게 만든다. 둘째, 어떤 오류도 페이지 세션 전체를 중단시키지 않는다. 빈 프레임이나 누락된 요소 수준으로 저하시킬 뿐이다1. 예측 불가능한 웹 환경을 전제로 한 설계다.

비용 구조를 바꾸는 실질적 효율

숫자가 Cloudflare Kitesurf의 존재 이유를 명확히 보여준다. Cloudflare의 14개 URL 코퍼스 벤치마크에서, Kitesurf는 Chromium 대비 CPU 사용량을 3.1배(스크린샷 작업 기준), 메모리 사용량을 최대 7배(HTML 추출 기준) 절감했다. 벽시계 시간은 Chromium이 1.7~1.8배 빠르지만, 클라우드 비용을 결정하는 핵심 지표는 CPU와 메모리 사용량이다. 메모리를 7배 적게 쓴다는 것은 같은 예산으로 7배 많은 동시 세션을 처리할 수 있다는 의미다.

또한 Kitesurf는 215,000개 이상의 Web Platform Tests를 통과했으며, DOM, HTML, Selection, CORS 등 에이전트에게 중요한 영역에서 95% 이상의 커버리지를 기록했다. 다만 WebGL, 동영상 재생, TLS 핑프린트 기반 봇 챌린지 우회는 아직 지원하지 않는다. 이 경우에는 기존 Chromium 기반 Browser Run을 사용하면 된다.

브라우저도 서버리스 시대에 들어서다

브라우저가 하나의 거대한 바이너리일 필요는 없다. 네트워킹, 파싱, JS 실행, 렌더링을 독립된 함수들로 분해하고, 각각에 꼭 필요한 리소스만 허용하며, 실패하면 버리고 새로 만든다. 이는 서버리스가 서버 애플리케이션에 했던 일을 브라우저에도 적용한 것이다. Cloudflare Kitesurf는 브라우저를 빌리는 단위를 '인스턴스'에서 '함수 호출'로 전환하며, AI 에이전트 인프라를 고민하는 팀이라면 이 접근을 주목할 필요가 있다.

1Introducing Kitesurf: The agent-first browser that runs in V8 isolates on Cloudflare Workers

2Cloudflare 把浏览器也 Serverless 了:Kitesurf 调研

3Kitesurf · Cloudflare Browser Run docs

이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.

틸노트는 사용자가 AI를 활용해 노트를 쉽게 작성하거나 편집할 수 있는 서비스입니다.

AI 스퀘어 단톡방에 함께해요

AI 활용과 틸노트 사용 팁을 나누는 오픈채팅방입니다. 입장 비밀번호는 tilnote입니다.

참여하기