← 기술 목록으로

RAW 보존·재파싱 구조로 바꾼 ETL 수집 플로우

재수집 때마다 1,000만~1억 건의 외부 API 요청이 필요하던 원테이크 수집을, RAW 보존·재파싱 구조의 오브젝트 스토리지 기반 파이프라인으로 재설계

기간2026 (3월~ 진행)
소속래브라도랩스(LabradorLabs)
역할데이터 엔지니어 · 파이프라인 재정립 주도
ETLELTData PipelineObject StorageSeaweedFSDB / Infra

0RAW 재파싱을 택한 이유

이 파이프라인은 재수집이 필요해질 때마다 1,000만~1억 건의 외부 API 요청과 실패 위험이 그대로 다시 왔습니다. 그 규모를 반복해야 하는 구조라면 파이프라인부터 바꾸는 편이 맞았습니다.

RAW를 먼저 보존하자 파싱 버그를 고친 뒤 외부 API를 다시 호출하지 않고 변환만 재실행할 수 있었습니다. 저장 공간은 더 쓰지만 재수집 비용과 rate limit 위험을 줄이는 쪽을 택했습니다.

1배경

제품 데이터는 수집(Gathering) → 정제(Curation) → 배포(Distribution)로 이어지는 파이프라인으로 운영됩니다. 단계별로 처리 방식과 저장 위치가 제각각이라, 흐름을 한눈에 파악하기 어렵고 데이터 규모가 늘수록 확장에 부담이 있었습니다.

2접근

오픈소스 RAW 원천을 Collector가 수집해 SeaweedFS에 원본 보존하고 Worker가 정제한 뒤 서비스와 배포로 전달하는 ETL 흐름
수집과 정제를 분리하고 RAW 원본을 먼저 보존해 외부 재요청 없이 다시 파싱할 수 있게 설계했습니다.

파이프라인 전체를 다시 정의하면서 RAW 데이터 저장을 파일시스템에서 오브젝트 스토리지(SeaweedFS)로 옮기는 마이그레이션 전략과 로드맵을 수립했습니다. 단계별 책임과 데이터 흐름을 정의해 수집 플로우를 표준화했습니다.

3결과

외부 요청 제거 — 적용한 소스부터는 재수집 때마다 반복되던 1,000만~1억 건의 API 호출이 재처리 시 0건으로 (RAW 재파싱)
기대 효과(설계 산정) — rate limit에 묶여 수일씩 걸리던 기간 재수집을 내부 재파싱으로 대체하는 것이 목표 (산정 예: 2일 → 5분, 실측 아님)
추적·재현 가능 — version_id 이력 추적과 원본 보존으로, 이상 데이터의 원인 규명·재현이 가능
단계별 책임 분리 — Collector·Worker·배포 단계의 입력과 출력을 구분

4역할

데이터 엔지니어로서 파이프라인 재정의 → 스토리지 설계 → 마이그레이션 전략 수립을 주도했습니다. 오브젝트 스토리지 방안은 세 가지 안을 비교 문서로 만들어 팀장·CTO 리뷰로 확정했고, 수집부터 배포까지 전체 흐름을 표준화하고 파일시스템에서 오브젝트 스토리지로 옮기는 로드맵을 세워 저장 구조를 단계적으로 옮기고 있습니다.

현재 진행 중인 항목으로, 단계적으로 마이그레이션을 적용하고 있습니다.

📦 데이터 플랫폼 재구축 시리즈 ① — 이 전략의 핵심 구현은 별도 항목으로 정리했습니다: ② 오픈소스 RAW 데이터 오브젝트 스토리지 구축 →