Puppeteer 비용을 70% 줄이는 라이트판다 전환법
28 de abril de 2026
0
컴퓨터/소프트웨어Comments (0)
Log in to leave a comment
No posts yet
Log in to leave a comment
No posts yet
서버리스 환경에서 Puppeteer는 골칫거리입니다. 메모리를 엄청나게 잡아먹고 초기화는 느립니다. AWS Lambda나 Google Cloud Functions 운영 비용이 치솟는 이유 중 하나죠. Zig 언어로 만든 라이트판다(Lightpanda)는 다릅니다. 이 도구는 초기 실행 속도를 30배 높이고 메모리 점유율을 10배 줄입니다.
서버리스 요금은 메모리 할당량과 실행 시간에 비례합니다. Chromium 엔진은 수집과 상관없는 폰트 렌더링, GPU 설정 등을 처리하느라 첫 페이지 로드에만 4.5초를 씁니다. 반면 라이트판다는 0.4초면 끝납니다. 100개 페이지를 병렬 처리할 때 Chromium은 4.2GB 메모리를 차지하지만 라이트판다는 410MB면 충분합니다. 이 차이만으로 Lambda 메모리 설정을 1024MB에서 256MB로 낮추고 운영 비용 70%를 바로 아낄 수 있습니다.
기존 Puppeteer 코드를 전부 갈아엎을 필요는 없습니다. 어댑터 패턴을 쓰면 환경 변수만 바꿔서 엔진을 교체할 수 있습니다.
puppeteer-core를 설치합니다.puppeteer.launch() 대신 puppeteer.connect({ browserWSEndpoint: 'ws://127.0.0.1:9222' })를 호출하도록 함수를 작성합니다.docker run -d -p 9222:9222 lightpanda/browser:nightly를 실행해 라이트판다 서버를 띄우고 코드가 정상 작동하는지 테스트합니다.이 방식은 문제가 생겼을 때 즉시 기존 Chromium 환경으로 롤백할 수 있어 안전합니다.
매번 브라우저를 재시작하면 비용만 나갑니다. 함수 외부에 브라우저 인스턴스를 유지하는 Warm Start 방식을 적용하세요.
LightpandaManager 클래스를 선언합니다.browser.createBrowserContext()를 만들어 세션을 격리하고 작업이 끝나면 context.close()로 메모리를 즉시 회수합니다.단순히 브라우저 재시작만 줄여도 시스템 처리 속도가 5배 빨라집니다.
라이트판다로 해결하기 어려운 복잡한 SPA는 Chromium과 섞어서 처리합니다. 전부 무거운 엔진에 맡기지 마세요.
page.evaluate()로 필요한 JSON만 추출합니다.워크플로우의 90%를 라이트판다로 처리하고 고비용 리소스는 필요한 순간에만 쓰면 됩니다.