피드로 돌아가기
I Just Wanted to Scrape One Page. Why Did I Write 50 Lines of Puppeteer?
Dev.toDev.to
Backend

Puppeteer 기반 무거운 E2E 도구를 CLI 기반 경량 Scraper로 전환하여 작업 효율 극대화

I Just Wanted to Scrape One Page. Why Did I Write 50 Lines of Puppeteer?

许映洲2026년 5월 28일9beginner

Context

단순 데이터 추출 작업에 Puppeteer와 같은 Heavy한 Browser Testing Framework를 도입하여 발생하는 오버헤드 분석. 전체 브라우저 설치로 인한 200MB 이상의 리소스 낭비와 복잡한 Async/Await 체인 및 예외 처리로 인한 개발 생산성 저하가 핵심 문제임.

Technical Solution

  • Browser → Page → Frame → Element로 이어지는 복잡한 계층 구조를 Command-line Interface로 추상화하여 인지 부하 감소
  • 정교한 API 제어 대신 'Open-Get-Screenshot' 중심의 단순 명령 체계 설계로 단순 추출 작업의 절차 간소화
  • 프로젝트 설정 및 Boilerplate 코드 작성을 제거한 단일 명령 실행 구조 채택
  • JS 실행이 필수적인 Client-side Rendering 환경 대응을 위해 Browser Engine은 유지하되 인터페이스만 CLI로 경량화
  • 목적에 맞는 도구 선택(Right Tool for the Right Job) 전략을 통한 E2E 테스트 도구와 단순 Scraper의 역할 분리

1. 단순 데이터 추출 시 E2E Framework 도입 전 CLI 도구 검토

2. Client-side Rendering 여부에 따라 curl과 Browser-based 도구 선택

3. 반복 사용 가능성이 낮은 일회성 작업에 전체 프로젝트 구조 설계 지양

4. 도구 선정 시 '기능의 범위'가 아닌 '작업의 밀도'를 기준으로 결정

원문 읽기