AI 에이전트의 손과 눈, Puppeteer가 다시 트렌딩에 오른 이유
★94,859개의 별, MCP 연동으로 포지셔닝이 바뀐 브라우저 자동화의 귀환

별 9만 개. 그런데 오늘 또 트렌딩이다. 이미 유명한 도구가 갑자기 다시 주목받을 때는 이유가 있다. Puppeteer의 경우 그 이유는 하나다 — AI 에이전트가 브라우저를 직접 다루기 시작했고 그 연결고리로 Puppeteer가 선택됐다.
이게 뭔가
Puppeteer는 구글이 개발한 Node.js 라이브러리다. 코드로 Chrome 또는 Firefox를 원격 조종하는 도구라고 생각하면 된다. 사람이 브라우저에서 하는 모든 동작 — 페이지 이동, 버튼 클릭, 폼 입력, 스크롤, 스크린샷 — 을 프로그램으로 대신한다. 기본 설정이 "헤드리스(headless)", 즉 화면 없이 백그라운드에서 돌아가므로 서버에서도 그대로 사용 가능하다.
왜 지금 뜨는가
결정적 변화는 MCP(Model Context Protocol) 연동이다. 공식 README에는 Puppeteer 기반의 MCP 서버인 chrome-devtools-mcp가 명시돼 있고 실험적 WebMCP API도 지원한다. MCP는 Claude·GPT 같은 LLM이 외부 도구를 호출하는 표준 프로토콜이다. AI 에이전트가 Puppeteer로 실제 브라우저를 직접 조작하게 됐다.
2026년 현재 "AI가 웹을 알아서 돌아다니며 일한다"는 시나리오의 실제 구현체로 Puppeteer가 부상하고 있다. 단순 스크래핑 도구에서 AI-브라우저 인터페이스 레이어로 포지셔닝이 완전히 바뀌었다. 여기에 Firefox의 WebDriver BiDi 프로토콜 지원이 안정화되면서 크로스브라우저 테스트 수요까지 흡수했다.
핵심 기능
- 헤드리스 브라우저 완전 제어: Chrome·Firefox, DevTools Protocol + WebDriver BiDi 이중 지원
- MCP 서버 연동: AI 에이전트에서 브라우저 액션을 직접 호출 가능
- 스크린샷·PDF 추출: 렌더링 결과를 파일로 저장
- E2E 테스트 자동화: 클릭·입력·접근성 트리 검사까지
누구에게 쓸모 있나
| 역할 | 활용 사례 |
|---|---|
| AI 개발자 | LLM 에이전트에 브라우저 액션 능력 부여 |
| 프론트엔드 개발자 | E2E 테스트 자동화 |
| 데이터 엔지니어 | JS 렌더링이 필요한 동적 페이지 크롤링 |
| DevOps | CI/CD 파이프라인 내 브라우저 스모크 테스트 |
시작하기
공식 문서에 따른 설치는 한 줄이다. 설치 시 호환 Chrome이 자동으로 다운로드된다.
npm i puppeteer
최신 npm·pnpm·Yarn은 설치 스크립트를 기본적으로 차단한다. 브라우저가 다운로드되지 않으면 아래를 수동 실행한다.
npx puppeteer browsers install
브라우저 없이 라이브러리만 설치하려면 puppeteer-core를 사용한다.
사용 예시
① 웹페이지 스크린샷 저장 — 페이지를 열고 PNG 파일로 캡처한다.
import puppeteer from 'puppeteer';
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.screenshot({ path: 'screenshot.png' });
await browser.close();
② 키보드 기반 검색 자동화 — 단축키로 검색창을 열고 텍스트를 입력한다.
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://developer.chrome.com/');
await page.setViewport({ width: 1080, height: 1024 });
await page.keyboard.press('/'); // 검색창 단축키
await page.type('input[type=search]', 'Puppeteer');
await page.waitForSelector('.search-result');
await browser.close();
③ 페이지를 PDF로 변환 — networkidle2로 완전 로드 후 A4 PDF를 저장한다.
const page = await browser.newPage();
await page.goto('https://example.com', { waitUntil: 'networkidle2' });
await page.pdf({ path: 'output.pdf', format: 'A4' });
한계·주의
- 리소스 소비가 크다. 브라우저 전체를 띄우므로 메모리·CPU 비용이 높다. 단순 JSON API 호출에는
fetch가 훨씬 낫다. - 패키지 매니저 설정 필요. 최신 패키지 매니저는 설치 스크립트를 기본 차단한다.
package.json의allowScripts에"puppeteer"를 추가하거나 수동 설치를 해야 한다. - 셀렉터 깨짐 위험. 타깃 사이트 구조가 바뀌면 CSS 셀렉터가 즉시 무력화된다.
aria-label같은 접근성 속성 기반 셀렉터를 쓰면 상대적으로 안정적이다. - 법적 제약. 웹 스크래핑은 서비스 이용약관을 위반할 수 있다. 공개 데이터에만 적용하고
robots.txt를 반드시 확인할 것.
Puppeteer는 2017년 구글이 공개한 이후 꾸준히 성장했지만, 2026년의 재부상은 성격이 다르다. AI 에이전트의 브라우저 접근 레이어로 역할이 재정의됐고, MCP 생태계가 그 수요를 끌어올리고 있다. 브라우저 자동화를 배워야 할 이유가 하나 더 생겼다.
출처
- puppeteer/puppeteer — GitHub
- Puppeteer 공식 문서 — pptr.dev
- chrome-devtools-mcp — GitHub
- WebMCP 가이드 — pptr.dev
댓글 0
첫 댓글을 남겨보세요.
