블로그5분 읽기

크로미움 없는 브라우저가 별 2.3만을 쌓았다 — 옵스큐라 실체 검증

크로미움 없는 러스트 헤드리스 브라우저 옵스큐라가 별 2.3만을 쌓았습니다. 숫자 대부분은 README에 있고, 몇 칸은 조건이 붙어요.

크로미움 없는 브라우저가 별 2.3만을 쌓았다 — 옵스큐라 실체 검증 대표 이미지

"구글이 몇 년째 무시해온 걸 한 개발자가 방금 해냈다."

이 스페인어 문장으로 시작하는 트윗이 8월 31일 조회 10만을 넘겼습니다. 소개된 물건은 옵스큐라(Obscura) — 러스트로 만든, 크로미움 없는 헤드리스 브라우저. 메모리 30MB, 페이지 로드 85ms, 트래커 3,500개 이상 차단이라는 숫자가 함께 돌았어요.

바이럴 트윗의 숫자는 늘 의심부터 하는 게 순서입니다. 레포와 README, 릴리스, 벤치마크 저장소까지 직접 확인했습니다. 결론: 실체가 있는 프로젝트고, 숫자 대부분은 README에 실재하며, 다만 몇 군데는 조건을 붙여 읽어야 합니다.

실체 — 4월생, 994커밋, 아파치 2.0

깃허브 실측(9월 1일)부터. h4ckf0r0day/obscura, 별 23,360개, 포크 1,730, 커밋 약 994개. 4월에 만들어져 다섯 달째 활발히 굴러가는 러스트 프로젝트입니다. 라이선스는 아파치 2.0이고, README가 못 박아요 — "오픈소스 엔진은 아파치 2.0으로 남는다. 기능 게이팅은 영원히 없다." 수익화는 호스티드 버전(Obscura Cloud) 대기 명단으로 따로 갑니다.

자기소개는 이렇습니다. "AI 에이전트와 웹 스크래핑을 위한 오픈소스 헤드리스 브라우저. 가볍고, 은밀하고, 러스트로 만들었다."

구조 — 크로미움을 빼고 크롬 행세를 한다

기술적으로 재밌는 지점은 뺄셈과 덧셈의 조합입니다.

뺀 것: 크로미움 전체. 옵스큐라는 크롬을 내장하지도, 띄우지도 않습니다. 렌더링은 자체 엔진이에요. v0.2.0부터는 네이티브 렌더링으로 스크린샷·라이브 스크린캐스트·PDF 내보내기까지 직접 처리합니다.

더한 것: 크롬의 인터페이스. 진짜 V8로 자바스크립트를 실행하고, 크롬 개발자 프로토콜(CDP)을 지원합니다. 이 조합의 실용적 의미가 큽니다 — 퍼페티어·플레이라이트 코드가 수정 없이 붙어요. 헤드리스 크롬 자리에 바이너리 하나만 갈아끼우는 드롭인 교체. 노드 설치도, 크롬 설치도, 의존성도 없습니다. 릴리스 페이지엔 리눅스·맥용 바이너리가 아키텍처별로 올라와 있어요.

README 비교표의 주장 수치는 이렇습니다. 메모리 30MB(헤드리스 크롬 200+MB), 바이너리 70MB(300+MB), 페이지 로드 85ms(~500ms), 시작 시간 즉시(~2초).

은신 — 세션마다 다른 사람이 된다

이 프로젝트의 정체성은 성능보다 은신(stealth) 쪽입니다.

--stealth 플래그 하나로 켜지는 목록: 트래커 3,520개 도메인 자동 차단, 세션별 지문 난수화 — GPU, 화면, 캔버스, 오디오, 배터리까지 매 세션 다르게 뽑힙니다. navigator.webdriver는 진짜 크롬과 같은 undefined. 자동화 탐지기가 확인하는 표면을 실제 크롬과 일치시키는 설계예요.

봇 탐지와 스크래핑 사이의 군비경쟁에서 어느 쪽 도구인지는 명백합니다. 그리고 그 경쟁의 반대편 당사자가 이 프로젝트를 인용했다는 게 흥미로운 대목이에요 — README에는 클라우드플레어가 자사 브라우저 프로젝트 카이트서프의 첫 프로토타입에 옵스큐라가 영감을 줬다는 인용이 걸려 있습니다.

숫자에 붙일 조건들

트윗과 README 사이, README와 현실 사이의 간극을 정리합니다.

85ms는 평균이 아닙니다. README 자신이 쪼개서 적어요 — 정적 HTML 51ms, JS+XHR+fetch 84ms, 동적 스크립트 78ms. 비교표의 85ms는 그 대푯값이지 "모든 페이지가 85ms"가 아닙니다. 크롬 대비 수치(~500ms 등)도 자체 벤치고요.

30MB는 단일 세션 기준입니다. 벤치마크 레포는 동시성을 올리면 수백 MB로 올라간다고 적습니다. 비교 대상인 크롬도 같이 올라가긴 하겠지만, '30MB 브라우저'라는 한 줄 요약은 조건부예요.

렌더링은 크로미움 동등이 아직 아닙니다. 릴리스 노트 스스로 "완전한 크로미움 패리티는 아직"이라 했고, README도 플랫폼 폰트 래스터라이즈가 크로미움과 다를 수 있다고 명시합니다. 픽셀 정밀도가 필요한 비주얼 테스트라면 아직 크롬이 맞아요.

트윗의 과장 두 개. "진짜 크롬과 똑같이 행동해서 탐지기가 못 잡는다"는 README에 없는 단정입니다 — 문서는 지문 난수화와 CDP 호환까지만 말해요. 그리고 트윗 작성자는 레포 소유자가 아닌 바이럴 중계자입니다. 별 수도 트윗의 "22k+"보다 실측(23,360)이 크지만, 어쨌든 남의 프로젝트를 옮긴 글이라는 건 감안할 지점.

남는 생각

과장을 다 깎아도 남는 그림이 있습니다.

지금까지 에이전트와 스크래퍼는 사람용 브라우저를 빌려 썼습니다. 크롬을 헤드리스로 띄우고, 200MB를 물고, 2초를 기다리는 방식으로요. 옵스큐라가 보여주는 건 그 반대 방향입니다 — 처음부터 기계가 쓸 브라우저를 새로 짓는 것. 사람용 UI를 다 덜어내면 30MB와 즉시 시작이 나온다는 실증이에요.

퍼페티어·플레이라이트 호환이라는 선택이 특히 영리합니다. 생태계를 새로 만드는 대신 기존 코드가 그대로 붙는 자리에 들어갔으니까요. 에이전트 시대의 브라우저 경쟁은 이렇게 '크롬의 축소판'이 아니라 '크롬의 인터페이스만 남긴 재구축'으로 흘러가고 있습니다. 클라우드플레어가 먼저 알아본 것도 그 방향일 겁니다.


원문·소스

FAQ

자주 묻는 질문

크로미움 없이 퍼페티어가 붙나요?
붙습니다. 자체 엔진으로 렌더링하고, 진짜 V8과 크롬 개발자 프로토콜을 지원해 드롭인 교체를 노려요.
85ms와 30MB는 그대로 믿어도 되나요?
85ms는 대푯값이고 페이지 종류별로 갈립니다. 30MB는 단일 세션 기준이라 동시성을 올리면 수백 MB로 올라갑니다.
비주얼 테스트에 바로 써도 되나요?
아직 아닙니다. 릴리스 노트도 크로미움 패리티는 아직이라고 했고, 픽셀 정밀도는 크롬이 맞아요.