← 기술 목록으로

멀티 언어 라이브러리 크롤러 구축 & Java→Python 전환

여러 프로그래밍 언어 생태계의 라이브러리·라이선스 정보를 수집하는 크롤러를 신규 개발·재구현해, 데이터 커버리지를 8개 언어로 확장

기간2021 (입사 첫 해)
소속래브라도랩스(LabradorLabs) · 데이터
역할데이터 엔지니어
PythonGoWeb CrawlingGitPackage Registry

1배경

2한 일

신규 언어 크롤러 개발 — 각 언어 패키지 레지스트리 특성을 분석해 맞춤 크롤러 설계. 특히 Go는 웹 크롤링 + Git 명령어 기반 수집을 결합한 하이브리드로 수집률을 극대화.

Go (pkg.go.dev)Swift (CocoaPods).NET (NuGet)

기존 크롤러 재구현 — Java로 작성된 아래 크롤러를 Python으로 재구현하며 레지스트리 API 변경 반영·로직 개선.

JavaScript (NPM)Python (PyPI)PHP (Packagist)Ruby (RubyGems)

A아키텍처 (수집 파이프라인)

Package Registries (pkg.go.dev, NPM, PyPI ...)

Web Crawl

Git-based Collection

Normalize and Standardize

Library Version and License Store

3임팩트

커버리지 8개 언어 — 라이브러리 정보 수집 체계를 완성해 데이터 커버리지를 대폭 확장
스택 통일 — 크롤러를 Python으로 일원화해 개발 생산성·유지보수 효율 향상
확장 기반 — 이후 수년간 이어질 수집 파이프라인(크롤러·updater·오케스트레이션)의 토대

4역할

입사 첫 해 데이터 엔지니어로서 신규 언어 크롤러 설계·개발과 기존 크롤러의 Python 재구현을 담당했습니다. 각 패키지 레지스트리의 차이를 흡수하는 수집 로직을 직접 설계했습니다.

이 Go 크롤러 라인은 이후에도 지속 고도화되었습니다(라이브러리/모듈 수집 파이프라인).