Data Pipeline Fundamentals
데이터 파이프라인의 존재 이유, 핵심 패턴, 구축 요소, 그리고 운영 현실
핵심 개념
데이터 파이프라인은 소스에서 목적지로 데이터를 이동·변환·반복 실행하는 자동화된 프로세스다. 그러나 기술적 기능을 넘어 **비즈니스 성과(outcomes)**와 소유권(ownership) 관점에서 사고해야 진정한 가치를 발휘한다.
AI 시대에도 3,000줄짜리 SQL 쿼리와 커스텀 파이프라인은 건재하며, 도구가 발전할수록 파이프라인의 수와 복잡성은 오히려 증가하는 경향이 있다.
파이프라인 유형
소스 표준화 파이프라인
수십 개 외부 파트너의 이기종 데이터(CSV, XML, 포지셔널 파일, API)를 단일 데이터 모델로 통합. 값 표준화(성별, 카테고리), 포맷 정규화(날짜, 타임존), 매핑 관리가 핵심 과제. 표준화된 데이터셋 위에 마켓플레이스, 산업 리포트 등 다중 프로덕트 구축 가능.
분석/비즈니스 파이프라인
SaaS 소스에서 웨어하우스로 추출 → dbt 등으로 변환 → BI에 서빙하는 전형적 패턴. 소규모 조직도 수십 개의 커넥터 솔루션을 운영하게 된다.
로딩 전략: Full Refresh vs Incremental
| 기준 | Full Refresh | Incremental |
|---|---|---|
| 구현 난이도 | 낮음 (CREATE OR REPLACE) | 높음 (변경 추적 필요) |
| 컴퓨트 비용 | 높음 (전체 재구축) | 낮음 (변경분만) |
| 백필 용이성 | 단순 (재실행) | 복잡 (파티션별 정합성) |
| 업데이트/삭제 | 자연스러움 | MERGE 또는 CDC 필요 |
| 적합 시나리오 | 소규모, 변경 추적 불가 | 대규모, 실시간 필요 |
WAP (Write-Audit-Publish) 패턴: 스테이징 → 검증 → 프로덕션 승격으로 두 전략 모두 안전성 강화.
파이프라인 시스템 핵심 컴포넌트
자체 구축 시 필요한 4가지 핵심 컴포넌트:
- 시크릿/커넥션 관리: 소스·목적지 중앙화, 비밀번호 단일 수정 포인트
- 로깅/모니터링: AI 생성 코드 시대에 추적 가능한 에러 메시지가 더욱 중요
- 의존성 그래프(DAG): Airflow
set_downstream(), dbtref()등으로 태스크 간 의존성 선언 - 실행 엔진 라우팅: DuckDB, Presto, Spark 등 다중 컴퓨트 엔진 간 비용·성능 최적 라우팅
백필: 불가피한 현실
백필 원인
- 잘못된 소스 데이터, 파이프라인 버그, 스키마/로직 변경
백필이 어려운 이유
- 규모: Facebook에서 1,000+ 태스크 재실행
- 비용: pay-as-you-go 환경에서 재실행 비용
- Blast Radius: 수백 명의 소비자에게 영향, 신뢰 훼손
테이블 유형별 전략
- 전통 테이블: 파라미터화된 파이프라인으로 특정 날짜·파트너만 재실행
- 파티션 기반: blue-green 스타일 테이블 스왑이 일관성 면에서 더 안전
- 스키마 변경: ORC/Avro/Parquet의 제한으로 테이블 재생성 필요
데이터 스택 복잡성의 함정
도구와 레이어를 무분별하게 추가하면 시스템이 프랙탈처럼 복잡해진다. BI sprawl, pipeline sprawl, model sprawl, agent sprawl, cost sprawl의 동시 발생이 현실.
레이어 추가 전 3가지 질문:
- 이 레이어가 해결하는 문제는 무엇인가?
- 추가하지 않으면 무엇이 깨지는가?
- 6개월 후 누가 소유하는가?
연관 개념
- Change Data Capture — 증분 로드의 핵심 메커니즘
- Data Quality and Validation — 파이프라인 품질 검증
- Data Engineering FinOps — 파이프라인 비용 최적화
- Schema Evolution — 스키마 변경과 백필의 관계
- Medallion Architecture — 계층화 파이프라인 패턴
- Data Contracts — 소스 표준화의 계약적 접근
- Semantic Layer — 파이프라인 위의 비즈니스 의미 부여
- Data Scientist Role in AI Era
Source: Why Data Pipelines Exist, Common Data Pipeline Patterns, What It Actually Takes to Build a Data Pipeline System, Full Refresh vs Incremental Pipelines, Backfills - The Necessary Evil of Data Engineering, Layer by Layer We Built Data Systems No One Understands