기술 포트폴리오 · 슬라이드
멀티 언어 라이브러리 크롤러 구축
& Java→Python 전환
여러 프로그래밍 언어 생태계의 라이브러리·라이선스 정보를 수집하는 크롤러를 신규 개발·재구현해, 데이터 커버리지를 8개 언어로 확장
래브라도랩스(LabradorLabs) · 2021 · 하반기 중심 · 데이터 엔지니어
01 · 배경
왜 필요했나
- 초기엔 소수 언어만 지원 → 더 넓은 개발자 생태계를 포괄하려면 지원 언어 대폭 확장이 필요
- 기존 Java 기반 크롤러는 유지보수·신규 언어 확장이 어려워, 데이터팀 주력 언어인 Python으로 스택 통일이 필요
02 · 한 일
신규 개발 + 기존 재구현
신규 언어 크롤러 개발 — 각 언어 패키지 레지스트리 특성을 분석해 맞춤 크롤러 설계. 특히 Go는 웹 크롤링 + Git 명령어 기반 수집을 결합한 하이브리드로 수집률을 극대화.
Go (pkg.go.dev)Swift (CocoaPods).NET (NuGet)
기존 크롤러 재구현 — Java로 작성된 크롤러를 Python으로 재구현하며 레지스트리 API 변경 반영·로직 개선.
JavaScript (NPM)Python (PyPI)PHP (Packagist)Ruby (RubyGems)
03 · 임팩트
결과
커버리지 8개 언어라이브러리 정보 수집 체계를 완성해 데이터 커버리지를 대폭 확장
스택 통일크롤러를 Python으로 일원화해 개발 생산성·유지보수 효율 향상
확장 기반이후 수년간 이어질 수집 파이프라인(크롤러·updater·오케스트레이션)의 토대
표준 정립Python 통일 결정이 이후 데이터팀 크롤러 표준으로 자리잡음
04 · 역할 & 배움
내 역할
- 입사 첫 해 데이터 엔지니어로서 신규 언어 크롤러 설계·개발과 기존 크롤러의 Python 재구현을 담당
- 각 패키지 레지스트리의 차이를 흡수하는 수집 로직을 직접 설계
- 배움: 크롤러는 레지스트리 API/구조 변화에 취약하므로, 차이를 흡수하는 유지보수 설계가 핵심
관련: 이 Go 크롤러 라인은 이후에도 지속 고도화됨(라이브러리/모듈 수집 파이프라인).
🕷 라이브러리 크롤러 시리즈 ① — ① 멀티 언어 크롤러 구축 · ② 인기도 차등 수집 · ③ 크롤러 현대화