피드로 돌아가기
Dev.toBackend
원문 읽기
React SPA 기반 BDO 레지스트리 자동화를 통한 감사 시간 99% 단축
BDO Scraper: Polish Waste Registry (674K+)
AI 요약
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 등) 중심의 쿼리 설계