헤드리스 브라우저 Lightpanda

dev | 2026-10-18

엔진을 바닥부터 만든 브라우저가 새로 나왔다고 해서 놀라움과 함께 테스트 해 봤다. 사람이 아닌 기계를 위한 브라우저라는 모토를 걸고 있는 라이트판다(Lightpanda)라는 브라우저이다. 크롬이나 파이어폭스도 UI가 없는 헤드리스 모드를 지원한다. 하지만 내부적으로는 페이지를 랜더하기 때문에 헤비하게 돌리면 시스템 자원을 상당히 많이 사용하는데 라이트판다는 페이지 랜더를 하지 않는다고 한다.

curl -fsSL https://pkg.lightpanda.io/install.sh | bash

간단히 설치할 수 있다. 설치하고 lightpanda serve로 서버를 띄우고 노드에서 플레이라이트와 같은 기존 툴에서 크롬 개발도구 프로토콜(Chrome DevTools Protocol)로 연결해 사용하는 방식이다.

const browser = await chromium.connectOverCDP('ws://127.0.0.1:9222');

사용하기 위해서 별도 라이브러리 없이 플레이라이트를 그냥 쓰면 된다. 기존에 퍼피티어나 플레이라이트를 쓰고 있었으면 CDP 정의만 해주면 이론상 그대로 돌아간다는 말이다. 공식으로 제공하는 테스트 스크립트를 돌려봤는데 잘 작동한다.

라이브판다 프로세스가 메모리를 10메가 사용하고 있음서버를 올린상태에서 메모리 사용량을 보니 10메가 바이트다. 물론 웹페이지를 올리면 늘겠지만 기본 메모리 사용량이 충격적이어서 화면 랜더를 안하니 훨씬 빠르고 가볍다는 말이 믿음이 간다.

플레이라이트는 안드로이드 폰에서 구동하는 것을 실패 했었는데 라이트판다는 실행될지 시도해 봤다. 일단 터먹스(Termux)에서 바로 실행은 안된다.

~ $ lightpanda serve --host 127.0.0.1 --port 9222
error: "/data/data/com.termux/files/home/.local/bin/lightpanda" has unexpected e_type: 2

리눅스용 Arm64 빌드가 설치되어서 실행파일이 맞지 않는다. 리눅스에서 돌리기 위해 proot를 사용해서 우분투를 설치한다.

pkg install proot-distro
proot-distro install ubuntu
proot-distro login ubuntu

그 안에서 실행하면 서버는 잘 뜬다.

root@localhost:~/lightpanda# lightpanda serve
$time=1791509975793 $scope=app $level=warn $msg="No certificates loaded"
$time=1791509975795 $scope=note $level=note $msg="config tips" robots="use '--obey-robots' to use a sites robots.txt" meta="use '--log-filter note' to silence this message"
$time=1791509975796 $scope=note $level=note $msg="server running" address=127.0.0.1:9222 max_connections=16208 max_browser_connections=16

하지만 테스트 스크립트를 돌리면 지원하지 않는 플랫폼이라는 오류가 나는데 플레이라이트가 기본 브라우저를 사용하지 않도록 환경변수를 설정해 주면 된다.

PLAYWRIGHT_BROWSERS_PATH=0 node index.js

그 다음에는 설치한 우분투에 인증서가 없어서 웹페이지 접속이 안되는데 인증서를 깔아준다.

apt update
apt install --reinstall ca-certificates
update-ca-certificates

여기까지 하니 잘 된다. 터먹스에서도 라이트판다를 이용해서 플레이라이트 라이브러리를 사용할 수 있다. 기존에 플레이라이트 쓰던거를 교체해 볼까도 생각해 봤지만 accessibility.kr은 스크린 샷을 저장하기 때문에 라이트판다로 대체하기에는 힘들 것 같다. 잘 돌아가고 있는 것을 건드릴 필요는 없을 것 같아서 여기까지만 하고 나중에 서버 망가지면 다시 시도해 봐야 겠다.

(LLM 때문에 블로그 글이 무슨 의미인가 싶다가도 귀찮음을 누르고 또 조금씩 써본다.)

Comments

Post a comment

공개 되지 않습니다. Gravatar를 표시 합니다.

HTML 태그를 사용할 수 없습니다.