Apache Arrow 가 본드로 묶는 한 stack
2010년대 대부분의 Python data stack 은 Pandas, 가끔 NumPy, 어쩌다 DB 였어. 그 세상은 갔어. Modern stack 은 multi-tool, polyglot, 그리고 in-memory 포맷 하나로 묶여 있어 — Apache Arrow. 등장 인물 외우는 게 어떤 도구 쓸지 결정의 절반이야.
| 도구 | 버전 (2026.4) | 역할 |
|---|---|---|
| Python | 3.13 | 언어. Free-threaded build 는 실험 단계지만 들어오는 중. |
| NumPy | 2.4.4 | 빠른 n차원 배열, Pandas/PyArrow/sklearn/PyTorch 의 수치 토대. |
| Pandas | 3.0.2 | Tabular 데이터: 청소, group, join, reshape. Copy-on-Write 기본, PyArrow-backed string 본격화. |
| Polars | 1.39.3 | Rust 기반 DataFrame. Eager + lazy API. Pandas 가 OOM 하는 데이터도 처리. |
| PyArrow | 23.0.1 | Python 의 Apache Arrow. Pandas / Polars / DuckDB / 스토리지를 copy 없이 잇는 columnar in-memory 포맷. |
| DuckDB | 1.5.2 | In-process SQL 엔진. Parquet/Arrow/CSV/Pandas/Polars 를 직접 query. "분석용 SQLite." |
| Parquet | format spec | Columnar binary 파일 포맷. 압축, 통계, column 단위 prune. 분석 at-rest 의 default. |
| Pandera | 0.24+ | Pandas 그리고 Polars 둘 다 통합되는 schema validation. |
| Great Expectations | 1.x | 더 무거운 expectation framework, 팀 간 data contract 에 좋음. |
| Apache Airflow | 2.10 | 가장 많이 배포된 orchestrator. Operator DAG, scheduler, web UI. |
| Dagster | 1.10 | Asset-first orchestrator. 태스크가 아니라 데이터 asset 을 모델링. |
| Prefect | 3.x | Pythonic flows. 가벼움, Airflow 보다 인프라 부담 적음. |
| dbt | 1.9 | SQL transformation 을 version-controlled 코드로. 진짜 modeling 이 일어나는 곳. |
| JupyterLab | 4.5+ | 탐색용 인터랙티브 notebook IDE. 배포 타겟 아님. |
Arrow 가 본드
Apache Arrow 는 언어 독립적인 columnar 메모리 포맷이야. 실전에서 왜 중요하냐면 — PyArrow 로 Parquet 읽고, 결과 Arrow Table 을 Pandas 로 넘기고, DuckDB 로 query 하고, 결과를 Polars 로 보내도 — 어떤 단계도 데이터 복사 안 해. 다 같은 메모리 buffer 공유해. 이게 modern data 작업과 옛날 serialize-deserialize-everywhere 세상의 차이야.
Arrow 를 별도 도구로 배울 필요는 없어. 그냥 거기 있다 는 거 알면 돼. 그리고 Arrow-aware 라이브러리 (Pandas 3.0, Polars, DuckDB, PyArrow) 를 고르는 게 stack 을 빠르게 느껴지게 만들어.