← 기술 목록으로
PythonGoWeb CrawlingGitPackage Registry
1배경
- 초기엔 소수 언어만 지원 → 더 넓은 개발자 생태계를 포괄하려면 지원 언어 대폭 확장이 필요
- 기존 Java 기반 크롤러는 유지보수·신규 언어 확장이 어려워, 데이터팀 주력 언어인 Python으로 스택 통일 필요
2한 일
신규 언어 크롤러 개발 — 각 언어 패키지 레지스트리 특성을 분석해 맞춤 크롤러 설계. 특히 Go는 웹 크롤링 + Git 명령어 기반 수집을 결합한 하이브리드로 수집률을 극대화.
Go (pkg.go.dev)Swift (CocoaPods).NET (NuGet)
기존 크롤러 재구현 — Java로 작성된 아래 크롤러를 Python으로 재구현하며 레지스트리 API 변경 반영·로직 개선.
JavaScript (NPM)Python (PyPI)PHP (Packagist)Ruby (RubyGems)
A아키텍처 (수집 파이프라인)
3임팩트
커버리지 8개 언어 — 라이브러리 정보 수집 체계를 완성해 데이터 커버리지를 대폭 확장
스택 통일 — 크롤러를 Python으로 일원화해 개발 생산성·유지보수 효율 향상
확장 기반 — 이후 수년간 이어질 수집 파이프라인(크롤러·updater·오케스트레이션)의 토대
4역할
입사 첫 해 데이터 엔지니어로서 신규 언어 크롤러 설계·개발과 기존 크롤러의 Python 재구현을 담당했습니다. 각 패키지 레지스트리의 차이를 흡수하는 수집 로직을 직접 설계했습니다.
이 Go 크롤러 라인은 이후에도 지속 고도화되었습니다(라이브러리/모듈 수집 파이프라인).