Lightpanda๋ Chrome ํฌํฌ๊ฐ ์๋๋ผ Zig๋ก ์๋ก ๋ง๋ ์ด๊ฒฝ๋ ํค๋๋ฆฌ์ค ๋ธ๋ผ์ฐ์ ๋ค. AI ์์ด์ ํธ์ ์๋ํ ์ํฌ๋ก๋์ ๋ง์ถฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ค์ด๊ณ ์์ ์๋๋ฅผ ๋์ธ๋ค๋ ๋ฐฉํฅ์ด ๋งค์ฐ ์ ๋ช ํ๋ค.
์ด ๋ ํฌ๋ 5์ ยท โญ +9.9K๋ก ํ์๋ ํ๋ก์ ํธ๋ค. ๋ณ ์ซ์๋ง ๋ณด๋ฉด ์ ํ์ฒ๋ผ ๋ณด์ผ ์ ์์ง๋ง, ์ค์ ๋ก๋ ๊ฐ๋ฐ์๋ค์ด ์ง๊ธ ์ด๋์ ์๊ฐ์ ์ฐ๊ณ ์๋์ง๋ฅผ ๊ฝค ์์งํ๊ฒ ๋๋ฌ๋ธ๋ค. ์น ์๋ํ๋ฅผ ๋ง์ด ํด๋ณธ ์ฌ๋์ผ์๋ก Chrome ๊ณ์ด ๋ธ๋ผ์ฐ์ ๊ฐ ์ผ๋ง๋ ๋ฌด๊ฑฐ์ด์ง ์๋ค. Lightpanda๋ ๋ฐ๋ก ๊ทธ ๋ถ๋ง์ ์ ๋ฉด์ผ๋ก ๊ฑด๋๋ฆฐ๋ค. Playwright/Puppeteer/CDP ํธํ์ ์ฑ๊ธฐ๋ฉด์๋ ํจ์ฌ ๊ฐ๋ณ๊ฒ ๋๋ฆฌ๊ฒ ๋ค๋ ๋ฉ์์ง๊ฐ ๋ช ํํด์, ์์ด์ ํธ ๋ธ๋ผ์ฐ์ง ๋ถ๊ณผ ๋ง๋ฌผ๋ ค ํฌ๊ฒ ์ฃผ๋ชฉ๋ฐ์๋ค.
flowchart LR A[๋ฌธ์ ] --> B[lightpanda] B --> C[์ค์น] C --> D[์ต์ ์คํ] D --> E[์ ๋ฌด ์ ์ฉ ํ๋จ]
์น ํ ํ์ํ ์นํธ์ํธ
- ์ด ๋ ํฌ์ ํ ์ค ํค์๋๋
lightpanda๋ค.- ์ด๋ฒ ๋ณด๊ฐ์์๋ ์ค์น์ ์ฌ์ฉ ์์๋ฅผ ๊ณต์ README ๊ธฐ์ค์ผ๋ก ๋ ์ด์ดํ๊ฒ ์ ๋ฆฌํ๋ค.
- ์ฝ์ ๋๋
์ ์ ์กฐ๊ฑด โ ์ค์น โ ์ฒซ ์คํ โ ๊ฒ์ฆ์์๋ก ๋ณด๋ฉด ๋๋ค.- โ๋๋จํด ๋ณด์ธ๋คโ๋ณด๋ค โ๋ด ์ ๋ฌด์์ ๋ฐ๋ณต ๋น์ฉ์ ์ค์ด๋๊ฐโ๋ฅผ ๋จผ์ ๋ณธ๋ค.
์ด ๋ ํฌ๋ฅผ ํ ์ค๋ก ๋ณด๋ฉด
Lightpanda๋ Chrome ํฌํฌ๊ฐ ์๋๋ผ Zig๋ก ์๋ก ๋ง๋ ์ด๊ฒฝ๋ ํค๋๋ฆฌ์ค ๋ธ๋ผ์ฐ์ ๋ค. AI ์์ด์ ํธ์ ์๋ํ ์ํฌ๋ก๋์ ๋ง์ถฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ค์ด๊ณ ์์ ์๋๋ฅผ ๋์ธ๋ค๋ ๋ฐฉํฅ์ด ๋งค์ฐ ์ ๋ช ํ๋ค.
์ ์ง๊ธ ์ด ๋ ํฌ๊ฐ ๋จ๋๊ฐ
์น ์๋ํ๋ฅผ ๋ง์ด ํด๋ณธ ์ฌ๋์ผ์๋ก Chrome ๊ณ์ด ๋ธ๋ผ์ฐ์ ๊ฐ ์ผ๋ง๋ ๋ฌด๊ฑฐ์ด์ง ์๋ค. Lightpanda๋ ๋ฐ๋ก ๊ทธ ๋ถ๋ง์ ์ ๋ฉด์ผ๋ก ๊ฑด๋๋ฆฐ๋ค. Playwright/Puppeteer/CDP ํธํ์ ์ฑ๊ธฐ๋ฉด์๋ ํจ์ฌ ๊ฐ๋ณ๊ฒ ๋๋ฆฌ๊ฒ ๋ค๋ ๋ฉ์์ง๊ฐ ๋ช ํํด์, ์์ด์ ํธ ๋ธ๋ผ์ฐ์ง ๋ถ๊ณผ ๋ง๋ฌผ๋ ค ํฌ๊ฒ ์ฃผ๋ชฉ๋ฐ์๋ค.
๋ ํฌ ์์์ ๋จผ์ ๋ณผ ๊ฒ
- Zig ๊ธฐ๋ฐ์ ๋น-Chromium ํค๋๋ฆฌ์ค ๋ธ๋ผ์ฐ์ ๊ตฌํ
- CDP๋ฅผ ํตํด Playwright, Puppeteer, chromedp์ ์ฐ๊ฒฐ ๊ฐ๋ฅํ ๊ตฌ์กฐ
- ์ด๊ธฐ ๋ฒค์น๋งํฌ์์ ๋ฎ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋๊ณผ ๋น ๋ฅธ ์คํ ์๋๋ฅผ ๊ฐ์กฐ
์ค์น ์ ์ ํ์ธํ ๊ฒ
- Linux x86_64 ๋๋ macOS aarch64 ํ๊ฒฝ์ด๋ฉด nightly ๋ฐ์ด๋๋ฆฌ ๊ฒฝ๋ก๊ฐ ๊ฐ์ฅ ์ฝ๋ค.
- Docker๋ฅผ ์ธ ์ ์์ผ๋ฉด ์ค์น ๋ถ๋ด์ด ๋ ์ค์ด๋ ๋ค.
- Puppeteer/Playwright ๊ฐ์ ๊ธฐ์กด CDP ํด๋ผ์ด์ธํธ๊ฐ ์์ผ๋ฉด ๋น๊ต๊ฐ ์ฝ๋ค.
์ค์น ๋ฐฉ๋ฒ
๊ณต์ ํ์ธ ๋งํฌ
- GitHub README: https://github.com/lightpanda-io/browser
- ๋ฐ๋ชจ/๋ฒค์น๋งํฌ: https://github.com/lightpanda-io/demo
- ๋์ดํ๋ฆฌ ๋ฐ์ด๋๋ฆฌ: https://github.com/lightpanda-io/browser/releases/tag/nightly
nightly ๋ฐ์ด๋๋ฆฌ ์ค์น
Linux๋ ์๋์ฒ๋ผ ์ค์นํ๋ค.
curl -L -o lightpanda https://github.com/lightpanda-io/browser/releases/download/nightly/lightpanda-x86_64-linux && chmod a+x ./lightpandamacOS(aarch64)๋ ์๋๋ฅผ ์ด๋ค.
curl -L -o lightpanda https://github.com/lightpanda-io/browser/releases/download/nightly/lightpanda-aarch64-macos && chmod a+x ./lightpandaWSL2 ํ๊ฒฝ์ Linux ์ค์น๋ฒ์ ๋ฐ๋ฅด๋, Puppeteer ๊ฐ์ ํด๋ผ์ด์ธํธ๋ Windows ํธ์คํธ์ ๋๋ ๋ฐฉ์์ README๊ฐ ๊ถ์ฅํ๋ค.
Docker ์ค์น
docker run -d --name lightpanda -p 9222:9222 lightpanda/browser:nightly์ด ๋ฐฉ์์ CDP ์๋ฒ๋ฅผ ๋ฐ๋ก 9222 ํฌํธ๋ก ๋
ธ์ถํ๋ฏ๋ก, ๊ธฐ์กด ์๋ํ ์คํฌ๋ฆฝํธ์ ์ฐ๊ฒฐํ๊ธฐ ์ฝ๋ค.
์์ค ๋น๋๊ฐ ํ์ํ ๋
์์ค ๋น๋๋ Zig 0.15.2์ Rust, ๊ทธ๋ฆฌ๊ณ Debian/Ubuntu ๊ธฐ์ค xz-utils ca-certificates pkg-config libglib2.0-dev clang make curl git ๊ฐ์ ์์กด์ฑ์ด ํ์ํ๋ค. ๋น ๋ฅธ ์ฒดํ์ด ๋ชฉ์ ์ด๋ฉด ์์ค ๋น๋๋ณด๋ค nightly๋ Docker๋ถํฐ ์์ํ๋ ํธ์ด ๋ซ๋ค.
์ฌ์ฉ ๋ฐฉ๋ฒ
- ๋จ๋ ๋ธ๋ผ์ฐ์ ์ฒ๋ผ ํ์ด์ง๋ฅผ ํ ๋ฒ ๋คํํด๋ณธ๋ค.
- ๊ทธ๋ค์ CDP ์๋ฒ๋ฅผ ๋์ ๊ธฐ์กด Puppeteer ๋๋ Playwright ์คํฌ๋ฆฝํธ๋ฅผ ์ฐ๊ฒฐํ๋ค.
- ์ด๊ธฐ์๋ ๋งํฌ ์์ง์ด๋ ๊ฐ๋จํ ํผ ์ ๊ทผ์ฒ๋ผ ์ฌ์ด ์๋๋ฆฌ์ค๋ก๋ง ๊ฒ์ฆํ๋ค.
- ์ฑ๊ณต๋ฅ ๊ณผ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ๊ธฐ์กด Chrome ๊ณ์ด๊ณผ ๋น๊ตํ๋ค.
๋น ๋ฅธ ๋จ๋ ํ ์คํธ:
./lightpanda fetch --obey_robots --log_format pretty --log_level info https://demo-browser.lightpanda.io/campfire-commerce/CDP ์๋ฒ ์คํ:
./lightpanda serve --obey_robots --log_format pretty --log_level info --host 127.0.0.1 --port 9222Puppeteer ์ฐ๊ฒฐ ์์๋ ๊ณต์ README ๊ธฐ์ค์ผ๋ก browserWSEndpoint: "ws://127.0.0.1:9222"๋ฅผ ์ฐ๋ฉด ๋๋ค. ํ
๋ ๋ฉํธ๋ฆฌ๋ฅผ ๋๊ณ ์ถ๋ค๋ฉด LIGHTPANDA_DISABLE_TELEMETRY=true๋ฅผ ์ค์ ํ๋ค.
์ด๋์ ๋ฐ๋ก ์จ๋จน์ ์ ์๋
์ฌ๋ก A. ๋๋ ํ์ด์ง ์์ง
์งง์ ์๊ฐ์ ๋ง์ ํ์ด์ง๋ฅผ ๋ณ๋ ฌ ์์งํด์ผ ํ๋ ์คํฌ๋ํ ์์ ์์๋ ๋ธ๋ผ์ฐ์ ํ ๊ฐ๋น ๋ฉ๋ชจ๋ฆฌ ์ ์ ๊ฐ ์์ฃผ ์ค์ํ๋ค. ์ด๋ Lightpanda ๊ณ์ด์ด ์์ ํ๋๋ฉด EC2๋ ๋ก์ปฌ ์๋ฒ์์ ๋์ ์คํ ์๋ฅผ ๋ ํฌ๊ฒ ๊ฐ์ ธ๊ฐ ์ฌ์ง๊ฐ ์๊ธด๋ค.
์ฌ๋ก B. ์์ด์ ํธ ์น ํ ์คํธ
์์ด์ ํธ๊ฐ ํผ ์ ๋ ฅ, ๋ฒํผ ํด๋ฆญ, ๊ฒฐ๊ณผ ํ์ธ์ ๋ฐ๋ณตํ๋ ํ ์คํธ ์๋๋ฆฌ์ค์์๋ ๋ธ๋ผ์ฐ์ ๊ธฐ๋ ์๋๊ฐ ์ ์ฒด ์ฒด๊ฐ ์๋๋ฅผ ๋ง์ด ์ข์ฐํ๋ค. ๊ฐ๋ฒผ์ด ๋ฐํ์์ ํนํ ๋ฐ๋ณต ์คํ์์ ์ฐจ์ด๋ฅผ ๋ง๋ ๋ค.
์ฒ์ ํด๋ณผ ์ต์ ์คํ
- nightly ๋ฐ์ด๋๋ฆฌ๋ Docker ์ค ํ๋๋ก ์ค์นํ๋ค.
fetch๋ช ๋ น์ผ๋ก ํ ํ์ด์ง๋ฅผ ๋คํํด๋ณธ๋ค.serve๋ก CDP ์๋ฒ๋ฅผ ๋์ฐ๊ณ , ๊ธฐ์กด Puppeteer ์คํฌ๋ฆฝํธ ํ๋๋ฅผ ์ฐ๊ฒฐํ๋ค.- Chrome์ ์ฑ๊ณต๋ฅ /๋ฉ๋ชจ๋ฆฌ/์๋๋ฅผ ๊ฐ์ ์๋๋ฆฌ์ค๋ก ๋น๊ตํ๋ค.
๊ฒ์ฆ ํฌ์ธํธ๋ ๊ฐ๋จํ๋ค. ์ฒซ ์คํ์ ๊ธฐ์ค์ ๋จ์ ์๋ ์๋์ด ์๋๋ผ, ๋ด ์คํฌ๋ฆฝํธ๊ฐ ์ค์ ๋ก ์ผ๋ง๋ ๋ ๊นจ์ง๋์ง๋ค. ์ฑ๊ณต๋ฅ ๊ณผ ์ฌ์๋ ํ์๋ฅผ ๊ฐ์ด ๋ด์ผ ํ๋ค.
๋ณผ ๋ ์ฃผ์ํ ์
- Beta ๋จ๊ณ๋ผ ๋ชจ๋ ์ฌ์ดํธ๊ฐ ์์ ์ ์ผ๋ก ๋์๊ฐ์ง ์๋๋ค.
- Playwright์ ๋ด๋ถ ์ ๋ต ๋ณํ์ ๋ฐ๋ผ ๊ฐ์๊ธฐ ๊นจ์ง ์ ์๋ค๋ ์ ์ ํ๋ก์ ํธ๋ ์ง์ ์ธ๊ธํ๋ค.
- ํ๋ฉด ๋ ๋๋ง ์ค์ฌ ๋ธ๋ผ์ฐ์ ๊ฐ ์๋๋ผ ํค๋๋ฆฌ์ค ํนํ๋ผ๋ ์ ์ ์ดํดํ๊ณ ์จ์ผ ํ๋ค.
๋ค์ ์ฝ๊ธฐ
์ด ๊ธ์ AI๋ฅผ ํ์ฉํด ์ด์์ ์ ๋ฆฌํ๊ณ , GitHub README์ ๊ณต์ ๋งํฌ๋ฅผ ๋ค์ ํ์ธํด ์ค๋ฌด ์ ์ฉ ๊ด์ ์ผ๋ก ํ์ด์ผ๋ค.