IT&Tech

데이터 파이프라인 생존 조건: CSV, JSON, Parquet, Avro 파일 포맷

테크부기 2026. 3. 25. 22:39

데이터 구조화의 물리적 경계와 스택 최적화

시스템 아키텍처 내에서 데이터 직렬화 방식은 디스크 I/O 병목 현상과 직결된다. CSV와 JSON은 텍스트 기반의 행 지향 구조를 가지며 시스템 간 상호운용성을 보장하지만 대규모 처리에서 파싱 오버헤드를 유발한다. 반면 Parquet는 열 지향 구조로 데이터를 압축하여 분석 쿼리의 스캔 범위를 최소화한다. Avro는 행 지향 바이너리 직렬화를 통해 스키마 진화를 지원하며 네트워크 대역폭 소비를 줄인다. 이들의 물리적 특성을 이해하고 선택하는 과정이 스택 최적화의 첫 단계다.

포맷 데이터 구조 스키마 타입 주요 아키텍처 용도
CSV 행 지향 텍스트 없음 단순 이기종 시스템 교환
JSON 계층형 텍스트 동적 (읽기 시점) 웹 REST API 통신
Parquet 열 지향 바이너리 정적 (쓰기 시점) 대규모 OLAP 분석
Avro 행 지향 바이너리 동적 진화 지원 실시간 이벤트 스트리밍

데이터 구조: 텍스트 vs. 바이너리

  • 텍스트 포맷 : 이기종 시스템 간 상호운용성을 보장하고 직관적인 데이터 디버깅을 지원한다. 그러나 문자열 파싱과 동적 메모리 할당 과정을 강제하여 대규모 트래픽 처리 시 시스템의 I/O 병목 현상과 CPU 자원 고갈을 유발한다.
  • 바이너리 포맷: 데이터를 비트 단위로 인코딩하여 디스크 저장 공간과 네트워크 대역폭 소비를 극도로 절약한다.  스키마 기반의 빠른 역직렬화로 전체 파이프라인의 처리량을 극대화하지만, 전용 디코딩 도구 없이는 데이터를 직접 판독할 수 없어 유지보수 단계에서 가시성이 저하된다.

스키마 타입: CSV, JSON, Parquet, Avro

  • CSV(스키마 없음): 시스템 결합도를 낮추어 초기 도입이 쉬우나, 타입 불일치로 인한 데이터 정합성 훼손 리스크를 유발한다.
  • JSON(동적 스키마): 읽기 시점에 구조를 해석하여 개발 유연성을 제공하지만, 런타임 파싱 연산이 무거운 CPU 자원 병목을 초래한다.
  • Parquet(정적 스키마): 쓰기 시점에 물리적 타입을 강제하여 디스크 I/O 스캔을 최적화하나, 구조 변경 시 전체 데이터 재생성 비용이 발생한다.
  • Avro(동적 진화 스키마): 레지스트리를 통해 구조 변형 시 파이프라인 붕괴를 원천 차단하지만, 별도의 메타데이터 관리 인프라 운영을 요구한다.

텍스트에서 바이너리로의 구조적 진화

시스템의 확장성이 요구됨에 따라 파일 포맷은 텍스트 파싱의 한계를 극복하는 방향으로 발전했다.

  • 1970년대: CSV 규격 등장. 이기종 환경 간 원시 데이터를 교환하는 가장 기본적인 프로토콜 역할을 수행했다.
  • 2001년: JSON 표준화. 웹 생태계 팽창과 함께 무거운 XML을 대체하며 API의 기본 직렬화 포맷으로 안착했다.
  • 2009년: Avro 발표. 하둡 생태계 내부의 데이터 노드 간 통신 및 RPC 처리 속도를 바이너리 단위로 개선했다.
  • 2013년: Parquet 릴리스. 데이터 웨어하우스에서 컬럼 기반 압축을 통해 대용량 스캔 I/O 비용을 급감시켰다.

파이프라인 아키텍처의 I/O 병목 해소

포맷의 규격화는 오픈소스 생태계 전반의 데이터 처리량을 기하급수적으로 증가시켰다. JSON은 스키마리스 특성으로 프론트엔드와 백엔드 간 인터페이스 결합도를 낮추어 개발 생산성을 높였다. 백엔드 데이터 엔지니어링 영역에서는 Parquet와 Avro가 도입되며 전체 시스템 안정성이 향상되었다. Parquet의 인코딩 방식은 디스크 읽기 비용을 물리적으로 줄여 분산 엔진의 메모리 오버플로우를 차단한다. 이는 궁극적으로 인프라 유지보수 효율성 향상으로 이어진다.

대용량 트래픽 처리 및 쿼리 성능 최적화 사례

대규모 스트리밍 플랫폼들은 로그 파이프라인을 JSON에서 Avro로 전환하여 브로커 노드의 네트워크 트래픽을 절반으로 줄였다. 스키마 레지스트리를 연동하여 데이터 구조 변경에 따른 파이프라인 붕괴와 기술 부채를 방지했다. 데이터 레이크 구축 시 원천 데이터를 수집한 후 분산 엔진을 통해 Parquet로 변환 저장하는 아키텍처가 업계 표준으로 자리 잡았다. 서버리스 쿼리 환경에서 Parquet 전환은 스캔 데이터 용량을 대폭 줄여 클라우드 컴퓨팅 과금 비용을 직접적으로 낮춘다.

메타데이터 통합 및 추상화 계층의 진화

향후 데이터 아키텍처는 개별 포맷의 물리적 종속성을 제거하는 추상화 방향으로 진화한다. 메타데이터를 관리하는 테이블 포맷이 Parquet 파일 위에서 ACID 트랜잭션을 보장하는 표준으로 부상하고 있다. 단일 포맷에 대한 맹목적 의존은 벤더 락인 및 상호운용성 저하 리스크를 유발한다. 엔지니어는 데이터 라이프사이클에 맞춰 수집 계층은 직렬화가 빠른 Avro를, 분석 계층은 압축률이 높은 Parquet를 채택하는 다중 포맷 전략을 수립해야 한다.

**주요 용어
직렬화: 객체를 바이트 스트림으로 변환
스키마: 데이터의 논리적 구조 명세
파싱: 문자열을 데이터 구조로 변환
기술 부채: 설계 타협으로 누적된 수정 비용