피드로 돌아가기
Dev.toInfrastructure
원문 읽기
불필요한 리소스 차단으로 페이지 로드 73% 단축 및 비용 60% 절감
A 10-Line Playwright Trick That Saved Me Hours on Every Sephora Run
AI 요약
Context
기존 Playwright 기반 스크래퍼가 CSS, 폰트, 분석 스크립트 등 불필요한 리소스를 모두 로드하며 발생하는 오버헤드 분석. 수천 개의 페이지를 처리하는 대규모 수집 환경에서 리소스 낭비로 인한 런타임 증가와 컴퓨팅 비용 상승이 주요 병목 지점으로 작용.
Technical Solution
context.route핸들러를 통한 Network Level의 리소스 필터링 아키텍처 적용resourceType기반으로 image, media, font, stylesheet 등 렌더링에 불필요한 정적 자산 차단- 정규표현식을 활용하여 Google Analytics, Hotjar 등 외부 Tracking 도메인으로의 요청을 선제적으로
abort처리 - DOM 구조 형성을 위한 필수 JavaScript 실행은 보장하여 데이터 무결성 유지
- 리소스 차단 후 데이터 추출 결과의 Diff 분석을 통해 사이트별 최적의 차단 목록 도출
Impact
- 평균 페이지 로드 시간 4.8s에서 1.3s로 단축
- 5,000개 제품 카탈로그 수집 시간 6.5시간에서 1.8시간으로 감소
- Apify Compute Units 사용량 약 60% 절감
Key Takeaway
브라우저 기반 자동화 설계 시 '무엇을 찾을 것인가'보다 '무엇을 로드하지 않을 것인가'를 먼저 정의하여 네트워크 I/O 및 CPU 오버헤드를 최소화하는 최적화 전략이 필수적임.
실천 포인트
- 불필요한 정적 리소스(이미지, 폰트, CSS) 차단 리스트 작성 - 트래킹 및 분석용 서드파티 도메인 필터링 적용 - JS 기반 동적 렌더링 여부를 확인하여 스크립트 차단 범위 결정 - 리소스 차단 전후의 데이터 일치 여부 검증(Diff Test) 수행