작업 완료 · 2021
DB 스키마 정립·라이선스 DB화
한 테이블에 섞인 버전 데이터를 언어별로 나누고 라이선스 매핑을 JSON으로 관리했습니다.
기간2021
소속래브라도랩스(LabradorLabs)
역할데이터 엔지니어
MySQL스키마 설계JSON
작업 요약
단일 테이블 2~3억 행 → 최대 언어 테이블 약 6,000만 행
버전 테이블과 라이선스 저장 방식을 바꿨습니다
버전 데이터가 단일 테이블에 쌓이면서 조회가 느려졌고, 텍스트 파일로 관리하던 라이선스는 동적으로 매칭하기 어려웠습니다. 버전 테이블을 언어별로 나누고 라이선스 매핑을 DB로 옮겼습니다.
이후 라이선스 분석과 크롤러 확장, 대용량 업서트에서도 이 구조를 사용했습니다.
배경
- 데이터 증가로 단일 통합 버전 테이블로 모든 언어를 관리하는 방식이라 성능이 떨어지고 관리가 복잡해짐
- 라이선스 정보가 텍스트 파일 기반이라 라이브러리와의 동적 매칭·검색에 한계
한 일
- 버전 테이블 분리 — 통합 버전 테이블을 언어별 테이블로 분리하는 스키마 변경을 주도해 쿼리 성능·관리 독립성 확보
- 라이선스 DB화 — 텍스트로 관리되던 라이선스 패턴 매핑을 JSON 형태로 DB에 저장, 정규식 기반 동적 라이선스 매칭 실현
- 대용량 업서트 표준화 —
REPLACE INTO·UPDATE·INSERT ... ON DUPLICATE KEY UPDATE벤치마킹 → 삭제·재생성 오버헤드 없는ON DUPLICATE KEY UPDATE를 표준 쓰기 쿼리로 정립
결과
언어별 테이블 분리언어별 분리로 DB 확장성과 쿼리 성능 개선
라이선스 자동 매칭DB에 저장한 라이선스 패턴으로 자동 매칭
쓰기 표준업서트 표준 쿼리로 시스템 전반 쓰기 성능·무결성 강화
역할
입사 첫 해 데이터 엔지니어로서 스키마 재설계와 라이선스 DB화, 대용량 쓰기 쿼리 표준화를 단독으로 수행했습니다.
같은 해 멀티 언어 라이브러리 크롤러와 함께 수집 인프라의 기반을 구성.
📜 라이선스 데이터 시리즈 ① — ② 양립성 DB · ③ AI 분석 파이프라인