피드로 돌아가기
How I scraped the CQC Care Register without hitting the API auth wall
Dev.toDev.to
Backend

Auth wall 우회를 위해 API 대신 23MB ODS 파일을 활용한 데이터 파이프라인 구축

How I scraped the CQC Care Register without hitting the API auth wall

Daniel Ainsworth2026년 5월 28일3intermediate

Context

CQC REST API의 Bearer Token 인증 도입으로 인한 사용자 진입 장벽 발생. 기존 Public API의 403 Forbidden 차단으로 인해 API 기반의 데이터 수집 아키텍처 유지 불가 상황.

Technical Solution

  • Transparency Page 스크래핑을 통한 최신 ODS 파일 URL 동적 확보 및 다운로드
  • SheetJS 라이브러리를 활용하여 XML 기반 ODS 아카이브 내 최대 행 수를 가진 시트를 자동 탐색하는 동적 시트 선택 로직 구현
  • Column Name 변경에 대응하기 위해 다중 변이(Variant)를 시도하는 col() 헬퍼 함수 설계로 데이터 스키마 유연성 확보
  • 60여 개의 Boolean 플래그 컬럼을 접두어(Prefix) 기반 필터링을 통해 배열 형태로 변환하는 정규화 로직 적용
  • 메모리 내 필터링 방식을 통한 별도의 DB 구축 없는 무상태(Stateless) 데이터 처리 구조 설계

Impact

  • API 인증 과정 제거를 통한 사용자 Friction zero 달성
  • 23MB 규모의 데이터셋을 메모리 상에서 10~15초 내에 파싱 및 필터링 완료

Key Takeaway

API 제약 사항이 심각할 경우, 공개된 정적 파일(Open Data)의 주기적 파싱이 더 효율적인 대안이 될 수 있으며, 비정형 컬럼 구조를 처리하기 위한 추상화 레이어 설계가 유지보수성을 결정함.


1. API 인증 체계 변경 시 공개 데이터 파일(CSV, ODS 등) 제공 여부 확인

2. 외부 데이터 파싱 시 고정 인덱스가 아닌 데이터 밀도 기반의 시트/컬럼 탐색 로직 적용

3. 반복되는 Boolean 플래그 컬럼은 Prefix 기반의 리스트 형태로 정규화하여 스키마 단순화

원문 읽기