Airflow¶
데이터 파이프라인은 한 번 돌리고 끝나는 일이 아니에요. 데이터가 매일·매시간 새로 쌓이니까, '밤 2시에 어제 데이터를 정제해서 창고에 넣기' 같은 작업이 스케줄대로 반복돼야 하죠. 그런데 작업이 몇 개만 돼도 순서를 어기고, 실패했을 때 어디서부터 재시도해야 할지 헷갈려요. Airflow는 파이프라인을 코드(DAG)로 짜서 스케줄링과 실패 재시도를 한곳에서 관리하는 오픈소스 오케스트레이터예요.
한눈에 보면 이렇게 파악하면 돼요. Airflow는 데이터 자체를 가공하는 엔진이 아니라, '언제·무엇을·어떤 순서로' 실행할지를 조율하는 오케스트레이터예요. 실제 무거운 계산은 Spark 같은 엔진에 맡기고, Airflow는 그 실행을 호출·감독해요.
핵심 개념¶
- 다른 도구와의 역할 구분 — Cron은 단순한 시간 실행이고, Airflow는 의존성·재시도·모니터링까지 갖춘 워크플로 관리예요. '순서가 있는 여러 작업'을 다룰 때 Airflow가 유리해요.
- DAG (Directed Acyclic Graph) — 파이프라인을 '방향이 있고 사이클이 없는 그래프'로 표현합니다. 각 작업(Task)이 노드고, 작업 사이의 의존 관계가 화살표죠. "A 작업이 끝나야 B를 돌린다"는 순서가 그래프로 명시돼요.
- 스케줄링 — DAG에 실행 주기를 달면(매일·매시간) 그 시각에 자동으로 작업이 뜹니다. 사람이 cron을 일일이 챙기는 대신, 일정이 코드에 박혀 있어요.
- 실패 재시도와 재실행 — 특정 작업이 실패했을 때 몇 번 재시도할지, 실패한 날짜의 파이프라인을 다시 돌릴지(백필)를 관리합니다. 실패의 파급이 커지기 전에 자동으로 복구하도록 설정하죠.
- 오케스트레이션의 위치 — Airflow는 데이터를 직접 변형하는 엔진이 아니라, '언제·무엇을·어떤 순서로' 실행할지를 조율하는 지휘자예요. 실제 무거운 변환은 아래 스케일에서 Spark 같은 엔진이 맡고, Airflow는 그 실행을 호출하고 감독합니다.
- 모니터링 — 각 작업의 실행 상태·실패 내역을 UI에서 확인할 수 있어요. '어느 날짜의 어느 작업이 왜 실패했나'를 사후 분석하기 쉽죠.
사용 사례 / 실제 적용¶
Events 3계층에서 Airflow는 파이프라인 층의 지휘를 맡는 걸로 시나리오를 잡고 있어요. 원천 데이터를 주기적으로 가져오고, 표준 스키마로 정리하고, 창고에 적재하는 일련의 흐름을 DAG 하나로 묶는 식이죠. 인프라 쪽 파이프라인은 Airflow가 맡고, 대용량 변환은 Spark라는 식으로 역할을 나눠두면 팀이 익숙해질수록 제품에 들어갈 준비가 커요.
다만 지금은 ⚪ 역량 단계예요. 팀이 다룰 줄 알되 제품엔 아직 전면 도입 전이라는 뜻이죠. 도입이 시작되면 배지를 하나씩 올리면 돼요. Airflow와 짝을 이루는 파트너는 Spark, 창고와 시계열 쪽은 TimescaleDB 페이지에서 이어져요.
처음 다룰 때 헷갈리기 쉬운 점은 DAG로 짜는 것과 실제 실행 환경을 분리해서 생각하는 거예요. DAG 정의는 '어떤 작업을 어떤 순서로'의 명세이고, 그 작업이 실제로 도는 곳은 스케줄러와 워커입니다. 이 두 개념을 구분하면 의존성과 병렬 실행을 이해하기 편해져요. 도입할 때는 이 점도 살펴보면 좋아요.
- 파이프라인을 표준 규칙과 함께 — 스케줄링만 붙이기 전에, 데이터를 담는 표준 스키마를 먼저 정해두면 Airflow가 '어디에 붙일지만' 남아요.
- 실패의 단위를 작게 — 작업을 쪼개서 실패 지점을 좁히면, 실패해도 해당 작업만 재시도하고 나머지는 건드리지 않아요.
- 백필 활용 — 과거 데이터를 다시 돌려야 할 때 백필로 특정 기간만 재실행할 수 있어요.
- 의존성은 명시적으로 — 작업 순서를 코드(그래프)에 드러내면, 실행 시점과 상관없이 순서가 보장돼요.
- 실패 알림 — 계속 실패하면 사람에게 알려주는 흐름을 두어, 조용히 넘어가지 않게 해요.
- 문서화된 실행 내역 — 어떤 날짜의 작업이 언제 돌았는지 남는 기록이 운영 분석의 기본이 돼요.
심화 챕터¶
Airflow의 핵심 원리는 아래 챕터에서 공식 문서를 기준으로 더 깊게 다뤄요.
더 알아보기¶
- 공식 문서 (1차): Airflow 공식 문서, Airflow — 핵심 개념
- 큐레이션/블로그 (2차): Data Pipeline 오케스트레이션 — DAG와 스케줄링의 전반을 훑기 좋아요.