데이터 수집 과정에서 확인된 제약 사항
LLM을 통한 웹 데이터 자동 수집의 성패는 원천 데이터의 존재 여부에 달려 있다. 전국 공공 수영장 데이터를 수집한 결과, 상당수 시설이 공식 홈페이지를 운영하지 않거나 자유수영 시간표를 웹에 게시하지 않아 수집 자체가 불가능한 사례가 확인됐다. 텍스트 형태의 소스가 없으면 검색 쿼리를 통한 데이터 추출이 불가능하며, 이 상태에서 모델에 정보를 요청하면 존재하지 않는 시간표를 임의로 만들어내는 환각 현상이 발생한다.
600곳의 수영장을 대상으로 수집을 진행하는 과정에서는 분당 요청 수 제한인 429 에러가 발생했다. 재시도 로직을 적용했으나 한도를 완전히 초과한 시점에서는 데이터를 수집하지 못하고 건너뛰는 현상이 나타났다. 이를 해결하기 위해 전체 작업량을 작은 단위의 배치로 나누고 요청 간격에 여유를 두는 실행 전략을 도입했다. API 한도 초과 문제는 실행 전략 수정으로 해결 가능하지만, 원천 데이터의 부재는 기술적으로 해결할 수 없는 근본적인 제약이다.
LLM 기반의 시간표 수집 파이프라인과 스키마 문제
전국 600여 곳 수영장의 자유수영 시간표를 수집하기 위해 웹 검색으로 텍스트를 긁어온 뒤 gemini-2.0-flash-lite 모델을 통해 회차별 시간을 JSON으로 추출하는 파이프라인을 구축했다. 수영장 이름, 좌표, 요금 데이터는 KSPO OpenAPI(국민체육진흥공단 개방형 API)와 시군구 기준 일괄 적용을 통해 사전에 확보했다.
수집 과정에서 LLM이 데이터를 추출했음에도 실제 앱 화면에 반영되지 않는 문제가 발생했다. 앱은 요일 코드, HH:mm 형식의 시각, 요금 등급 등 정해진 데이터 구조(스키마)로만 정보를 읽기 때문에, LLM의 출력값이 이 규격을 조금이라도 벗어나면 유효한 데이터로 인식하지 못했기 때문이다.
이를 해결하기 위해 단순 추출 여부가 아닌 '스키마 계약 통과 여부'를 성공 지표로 설정한 검증 단계를 추가했다. LLM이 데이터를 뽑아냈는지가 아니라, 앱이 요구하는 요일 코드와 시간 형식을 정확히 준수했는지를 확인하는 방어적 파이프라인을 구축하여 실제 데이터 반영률을 높였다.
자동 수집의 ROI는 모델 성능보다 원천 데이터의 존재 여부
데이터 수집의 ROI(투자 대비 효율)를 결정하는 핵심은 모델의 지능이 아니라 원천 데이터의 존재 여부와 시스템 계약 검증 가능 여부다. 이에 따라 프롬프트 튜닝에 투입하던 자원을 시스템 계약 기반의 검증 프로세스 구축으로 전환했다. 원천 데이터가 없거나 출력을 규격대로 검증할 수 없다면 고성능 모델을 사용하더라도 잘못된 데이터가 생성될 가능성이 크기 때문이다.
공식 홈페이지가 존재하는 72곳으로 수집 범위를 좁혀 출처를 확인한 결과, 시간표 완비 시설이 기존 32곳에서 82곳으로 늘어났다. 이 과정을 통해 54곳의 283개 세션을 실제 데이터로 반영했다. 나머지 500여 곳은 AI가 초안을 작성하고 관리자가 최종 승인하는 하이브리드 검수 방식과 사용자 제보 시스템을 도입해 보완했다.
결국 LLM 자동화의 실무적 완성도는 비정형 텍스트를 읽는 능력이 아니라, 정의된 스키마라는 엄격한 계약을 얼마나 정확히 준수하느냐에 따라 결정된다. 따라서 자동화 수율을 측정하는 기준을 단순 추출 성공률에서 스키마 통과율로 전환해야 실제 서비스의 가용성을 확보할 수 있다.
웹 데이터를 JSON으로 변환하는 단순 자동화 시도는 많지만, 실제 서비스에 적용 가능한 데이터의 수율은 LLM의 추출 능력이 아니라 시스템 스키마 계약 통과율이 결정한다. Gemini-2.0-flash-lite를 활용한 파이프라인 구축의 핵심 역시 비정형 텍스트를 얼마나 잘 읽느냐가 아니라, 정의된 스키마를 얼마나 정확히 준수하느냐에 있다.




