← 기술 목록으로

라이브러리 크롤러 현대화 & 데이터 플랫폼 마이그레이션

언어별 오픈소스 라이브러리 크롤러(Go, Java/Maven 등)를 일관된 현대 구조로 재정비하고 수집 데이터를 신규 데이터 플랫폼으로 이관하는 기반을 마련

기간2026
소속래브라도랩스(LabradorLabs)
역할데이터 엔지니어링 리드
GoJava / MavennpmPyPIRubyGemsComposerCocoaPodsNuGettransformerOpenSSF

0작업자의 메모

크롤러 문제는 한두 개 버그를 고쳐도 금방 다시 돌아옵니다. 언어별로 구현 방식이 다르고 누락 원인이 기록되지 않으면 새 사람이 들어와도 같은 조사를 반복하게 됩니다.

그래서 누락률과 결함 유형을 먼저 정리하고 V2 구조와 transformer로 옮겼습니다. 이후 12개 생태계별로 온보딩 가이드와 개선 이력 문서를 짝으로 남겨, “크롤러가 돈다”보다 “왜 누락됐고 어떻게 다시 막는지 설명할 수 있다”에 초점을 맞췄습니다.

1배경

제품 데이터의 기반은 언어별 오픈소스 라이브러리(패키지) 수집 크롤러입니다. Go, Java/Maven, npm, PyPI, RubyGems, Composer, CocoaPods, NuGet처럼 언어·패키지 매니저마다 별도로 발전해 온 크롤러들이 구조와 동작 방식이 제각각이라, 유지보수와 신규 소스 편입이 어려웠습니다.

2접근

① 레지스트리 추적전체 패키지 모니터링 연구로 신규·변경 추적
② 수집 전략패키지 매니저 API rate limit 조사 후 전략 수립
③ 크롤러 현대화언어별 크롤러를 일관된 현대 구조로 재정비
④ 플랫폼 이관transformer로 신규 데이터 플랫폼에 적재

3수집 정확도 개선

Go 크롤러에서 대규모 누락 데이터가 관측되어 원인을 심층 분석했습니다. 핵심 원인 중 하나는 모듈 경로 식별자의 대소문자 차이로 인한 비교 누락이었습니다.

4임팩트

일관된 구조 — 멀티 언어 크롤러를 일관된 현대 구조로 재정비
이관 기반 — 수집 데이터의 신규 데이터 플랫폼 이관 기반 마련
정확도 향상 — 대소문자 등 누락 원인을 잡아 수집 정확도 개선
지속 추적 — 레지스트리 변화·rate limit을 반영한 수집 전략 확립
지식 이전 — 12개 생태계 온보딩·개선 이력 문서로 운영자가 누락 원인과 재발 방지 구조를 바로 따라갈 수 있게 정리
일일 누락 점검 — NPM 등 대규모 레지스트리의 누락을 매일 검사하는 점검 체계로 목표 누락률 0% 관리
운영 관측성 — product/version insert·update를 분리해 배치별 신규 유입과 갱신량을 로그로 확인할 수 있는 기반 마련

5역할

데이터 엔지니어링 리드로서 레지스트리 추적 연구 → 수집 전략 수립 → 크롤러 현대화 → 플랫폼 이관 기반 마련까지 데이터 수집 파이프라인을 단독으로 설계·구현·운영했습니다. 언어별로 흩어져 있던 크롤러를 일관된 현대 구조로 정리하고 수집 정확도와 이관 가능성을 함께 끌어올렸습니다.

연계 작업(데이터 플랫폼·파이프라인 표준화, 배치 수집량 로그)은 별도 항목과 내부 온보딩 문서로 정리.

🕷 라이브러리 크롤러 시리즈 ③① 멀티 언어 크롤러 구축 · ② 인기도 기반 차등 수집