--- title: Lightpanda 1.0 — AI가 인터넷을 쓰기 위한 브라우저 date: 2026-10-07 time: 23:15 model: admin category: reviews summary: 크롬을 버리고 16배 가볍게 만든 AI 전용 브라우저 Lightpanda가 1.0을 발표했습니다. 사람용 브라우저가 아닌 AI 에이전트용으로 설계된 독자 엔진(Zig), 설치부터 모델 연결, 스캔 모드, MCP 연동까지 실무 관점에서 정리했습니다. tags: Lightpanda, AI브라우저, 자동화, Zig, 웹스크래핑, MCP --- 2026년 10월 2일, Lightpanda가 2년 베타 끝에 **1.0 버전**을 발표했습니다. "AI가 인터넷을 쓰려면 사람용 브라우저가 아니라 AI용 브라우저가 필요하다"는 발상에서 시작된 프로젝트입니다. 크롬은 사람을 위해 화면을 그립니다. 사진, CSS, 애니메이션, 영상까지 전부 렌더링합니다. 그런데 AI에게 웹페이지를 읽으라고 할 때 이 모든 게 필요할까요? AI가 필요한 건 "버튼이 어디 있는가", "이 링크를 누르면 어디로 가는가", "폼에 무엇을 넣어야 하는가" 같은 **구조와 의미**입니다. Lightpanda는 **그래픽 렌더링 파이프라인을 아예 만들지 않았습니다.** 그 결과가 아래 표입니다. | | 크롬 (Headless) | Lightpanda | |---|---|---| | 메모리 (100페이지) | 약 2 GB | **약 123 MB** (16배↓) | | 실행 시간 (100페이지) | 약 46초 | **약 5초** (9배↑) | | 엔진 | Chromium (C++) | **Zig 독자 엔진** | | WPT 통과 | 218만 서브테스트 | **174만** (약 80%) | *Lightpanda 공개 벤치마크(웹페이지 933개) 기준. 모든 사이트에서 동일하게 적용되지는 않습니다.* --- ## 단순 크롤러와 다른 점 HTML만 가져오는 크롤러로는 요즘 웹을 감당 못 합니다. 자바스크립트가 실행돼야 내용이 보이는 사이트, 로그인 필요, 버튼 클릭, 무한 스크롤, Shadow DOM, WebAssembly까지 — 이걸 처리하려면 지금까지는 **Chrome + Playwright/Puppeteer**를 썼습니다. 크롬은 무겁습니다. Lightpanda는 **자바스크립트는 실행하면서 화면 그리는 부분만 버린 브라우저**입니다. Zig로 처음부터 작성했고, Chromium 포크가 아닙니다. 지원하는 현대 웹 기능: - HTML, DOM, JavaScript (ES2024 수준) - Fetch, XHR, WebSocket - Cookies, IndexedDB, Shadow DOM - WebAssembly - CDP(Chrome DevTools Protocol) + **WebDriver Classic + WebDriver BiDi** (1.0 추가) --- ## 설치 및 다운로드 방법 ### Python (가장 간단) ```bash pip install lightpanda ``` Python 3.10+ 필요. 내부적으로 바이너리를 포함해 별도 설치 없이 바로 실행됩니다. ### Node.js ```bash npm install lightpanda # 또는 npx lightpanda ``` ### 바이너리 직접 다운로드 (CI/서버용) GitHub Releases에서 플랫폼별 바이너리 제공: - `lightpanda-linux-x64` - `lightpanda-linux-arm64` - `lightpanda-macos-x64` - `lightpanda-macos-arm64` ```bash # 예: 리눅스 x64 curl -L -o lightpanda https://github.com/lightpanda-io/lightpanda/releases/latest/download/lightpanda-linux-x64 chmod +x lightpanda ./lightpanda --help ``` ### Docker ```bash docker pull lightpanda/lightpanda:latest docker run --rm lightpanda/lightpanda --help ``` --- ## 설정 및 모델 연결 (AI 에이전트 연동) Lightpanda는 AI 에이전트가 브라우저를 **도구로 쓸 수 있게** 만드는 데 초점이 있습니다. ### 1. MCP 서버 내장 (가장 쉬운 연동) ```bash pip install lightpanda # 또는 npm install lightpanda ``` 이후 Claude Code, Cursor, Codex 등 SKILL.md 호환 에이전트에서 바로 사용 가능: ```json // mcp.json 또는 .cursor/mcp.json 예시 { "mcpServers": { "lightpanda": { "command": "lightpanda", "args": ["mcp"] } } } ``` 에이전트에게 "이 사이트 들어가서 최신 정보 찾아줘"라고 말하면, 에이전트가 Lightpanda를 통해 직접 브라우징합니다. ### 2. Playwright / Puppeteer / Selenium 연결 (기존 코드 재사용) WebDriver BiDi / Classic WebDriver / CDP 모두 지원하므로 기존 자동화 스크립트를 거의 수정 없이 돌릴 수 있습니다. ```python # Playwright 예시 from playwright.async_api import async_playwright async def main(): async with async_playwright() as p: browser = await p.chromium.connect_over_cdp("http://localhost:9222") # 또는 WebDriver BiDi browser = await p.chromium.connect("http://localhost:4444") page = await browser.new_page() await page.goto("https://example.com") # ... # Lightpanda 실행 (별도 터미널) # lightpanda --cdp --port 9222 # 또는 WebDriver # lightpanda --webdriver --port 4444 ``` ### 3. Python 직접 사용 (비동기 API) ```python import asyncio from lightpanda import Lightpanda async def main(): async with Lightpanda() as browser: page = await browser.new_page() await page.goto("https://example.com") # HTML html = await page.content() # Markdown md = await page.markdown() # Semantic Tree (AI에게 가장 유용) tree = await page.semantic_tree() print(tree) asyncio.run(main()) ``` ### 4. CLI 직접 사용 ```bash # 페이지 HTML 가져오기 lightpanda https://example.com --format html # Markdown으로 lightpanda https://example.com --format markdown # Semantic Tree (구조화된 의미 정보) lightpanda https://example.com --format semantic-tree # JavaScript 실행 기다리기 lightpanda https://spa-site.com --wait-network-idle # 인증 쿠키 전달 lightpanda https://app.example.com --cookie "session=abc123" # 헤더 추가 lightpanda https://api.example.com --header "Authorization: Bearer token" ``` --- ## 스캔/작업 모드 목적에 따라 깊이를 조절할 수 있습니다(자체 용어는 아니지만 자동화 시 참고): | 모드 | 용도 | 특징 | |---|---|---| | **빠른 탐색** | 링크 수집, 사이트맵 생성 | JS 실행 최소화, 네트워크 대기 짧음 | | **표준** | 로그인+데이터 추출, 폼 제출 | JS 완전 실행, 네트워크 유휴 대기 | | **깊은 탐색** | SPA 전체 크롤링, 무한 스크롤 | 긴 타임아웃, 모든 리소스 로드 대기 | CLI 옵션으로 제어: `--wait-network-idle`, `--timeout`, `--max-depth` 등. --- ## 보안: CORS 기본 활성화 (1.0 중요 변경) AI 에이전트가 인터넷을 돌아다닌다면 **브라우저 보안이 곧 에이전트 보안**입니다. 1.0부터 **CORS(Cross-Origin Resource Sharing) 검사를 기본으로 켭니다.** 악성 페이지가 내부 서비스나 다른 도메인에 접근하는 걸 브라우저 레벨에서 막습니다. 필요한 경우(내부 테스트 등)에만 끌 수 있습니다: ```bash lightpanda https://internal.site --disable-cors ``` --- ## 출력 포맷 — AI에게 뭘 줄까? | 포맷 | 용도 | |---|---| | **HTML** | 원본 그대로 저장/아카이빙 | | **Markdown** | 사람이 읽기 좋음, LLM 컨텍스트로 바로 투입 가능 | | **Semantic Tree** | **AI 에이전트용** — "버튼: 로그인", "입력창: 이메일", "링크: 다음" 같은 의미만 추출 | Semantic Tree 예시: ```json { "type": "page", "children": [ {"type": "heading", "level": 1, "text": "로그인"}, {"type": "form", "children": [ {"type": "input", "name": "email", "placeholder": "이메일"}, {"type": "input", "name": "password", "type": "password"}, {"type": "button", "text": "로그인", "action": "submit"} ]} ] } ``` 이게 AI에게는 렌더된 화면보다 훨씬 효율적입니다. --- ## 비용 비교 (개략) | 방식 | 비용 | |---|---| | **로컬 (Lightpanda + 로컬 LLM)** | 하드웨어만, API 비용 0 | | **Lightpanda + OpenRouter/로컬 모델** | 토큰 비용만 (수 달러/일) | | **RunPod GPU 임대 (8×A100)** | 시간당 ~$15, 데이터 유출 우려 없음 | | **기존: 크롬 헤드리스 서버 팜** | 메모리 16배, CPU 9배 비쌈 | --- ## 한계 (아직 크롬 대체 불가) - CSS 렌더링 없음 → 디자인 검증, 시각적 회귀 테스트 불가 - 동영상/오디오 재생 안 됨 - 확장 프로그램 생태계 없음 - WPT 80% → 일부 복잡한 웹앱에서 동작 차이 발생 가능 - **사람이 보는 용도라면 무조건 크롬** --- ## 그래서 Lightpanda가 의미하는 것 인터넷은 30년 동안 **사람**을 위해 만들어졌습니다. 브라우저도 그래픽을 예쁘게 보여주는 쪽으로 진화했습니다. 그런데 이제 **AI도 인터넷을 사용하기 시작했습니다.** AI는 화면이 필요 없습니다. 구조, 의미, 상호작용, 속도, 낮은 비용이 필요합니다. 그래서 브라우저도 **사람용과 AI용으로 나뉘기 시작**합니다. Lightpanda 1.0은 그 흐름에서 나온 **AI용 인프라의 첫 번째 안정 버전**입니다. 아직 끝난 게 아닙니다. **이제 시작입니다.** --- ## 참고 자료 - GitHub: https://github.com/lightpanda-io/lightpanda - 문서: https://docs.lightpanda.io - 1.0 발표: https://github.com/lightpanda-io/lightpanda/releases/tag/v1.0.0 - PyPI: https://pypi.org/project/lightpanda/ - npm: https://www.npmjs.com/package/lightpanda *이 글은 Lightpanda 1.0 발표 자료, 공식 문서, GitHub 저장소, 공개 벤치마크를 종합해 정리했습니다.*