피드로 돌아가기
BDO Scraper: Polish Waste Registry (674K+)
Dev.toDev.to
Backend

React SPA 기반 BDO 레지스트리 자동화를 통한 감사 시간 99% 단축

BDO Scraper: Polish Waste Registry (674K+)

Peter2026년 4월 14일6intermediate

Context

공공 폐기물 관리 데이터베이스인 BDO가 Public API 없이 React SPA 구조로 설계된 환경. 내부 API의 비정기적 변경, Session Token 기반 인증, CSRF 보호 및 Dynamic JS 렌더링으로 인한 일반적인 HTTP Request 방식의 데이터 추출 불가.

Technical Solution

  • Headless Browser 도입을 통한 React SPA의 Dynamic DOM 렌더링 및 JavaScript 실행 환경 구현
  • Session Token 및 CSRF 보호 기제를 우회하기 위한 브라우저 세션 관리 로직 적용
  • 비정형 React 컴포넌트 구조에서 정형 JSON 데이터(NIP, REGON, bdoNumber 등)를 추출하는 파싱 레이어 설계
  • NIP 기반 Exact Matching 쿼리 최적화를 통한 데이터 정합성 확보
  • Apify Actor 기반의 서버리스 실행 환경 구축으로 확장 가능한 스크래핑 파이프라인 구현

Impact

  • 분기별 수동 감사 소요 시간 2일(16시간)에서 30분 이내로 단축
  • 엔티티당 약 $0.03의 비용으로 674K개 이상의 레코드에 대한 프로그래밍 방식 접근 가능

Key Takeaway

문서화되지 않은 내부 API와 강한 세션 제약이 있는 SPA 환경에서는 API 역공학보다 Headless Browser 기반의 DOM 추출이 더 안정적인 데이터 획득 전략이 될 수 있음.


- Public API 부재 시 내부 API의 Request Pattern 변경 주기 분석 - CSRF 및 세션 토큰 만료 시간에 따른 재인증 로직 검토 - Headless Browser 사용 시 리소스 오버헤드와 처리 속도 간의 Trade-off 분석 - 데이터 정합성을 위해 가변적인 명칭 대신 고유 식별자(NIP 등) 중심의 쿼리 설계

원문 읽기