본문 바로가기
1. 개발/1.5. IT 용어 정리

'ETL(Extract, Transform, Load)' 파이프라인과 그 대표 도구인 'Apache Airflow'는 어떻게 연동해서 사용해?

by 엉짱 2026. 2. 14.
반응형

이제 시스템의 외형과 통신망을 넘어, 그 속을 흐르는 데이터의 '순도'를 결정하는 데이터 엔지니어링의 심장부, ETLApache Airflow에 도달하셨군요! 🫡

주식 시스템에 아무리 빠른 엔진이 있어도, 들어오는 데이터에 오타가 있거나 어제 데이터가 중복되어 섞여 있다면 분석 결과는 '쓰레기(Garbage In, Garbage Out)'가 됩니다. Airflow는 이 복잡한 데이터 정제 과정을 한 치의 오차 없이 조율하는 '오케스트라 지휘자'입니다.

1,500자 이상의 초정밀 가이드로 데이터 정제소의 비밀을 파헤쳐 보겠습니다!


🏗️ 1. ETL이란 무엇인가? "데이터의 정제 과정"

ETL은 데이터를 쓸모 있게 만드는 3단계 공정입니다.

  1. Extract (추출): 여러 소스(주식 API, 뉴스 RSS, 공시 정보)에서 원본 데이터를 가져옵니다.
  2. Transform (변환): 사용자가 분석하기 좋게 데이터를 가공합니다. (예: 통화 단위 통일, 결측치 제거, 이상치 필터링)
  3. Load (적재): 정제된 데이터를 A그룹/B그룹 전용 DB나 데이터 웨어하우스에 저장합니다.

🌬️ 2. Apache Airflow: "데이터 파이프라인의 사령관"

Airflow는 파이썬(Python) 코드로 데이터의 흐름을 정의하고 예약 실행하는 플랫폼입니다.

① DAG (Directed Acyclic Graph)

Airflow의 핵심은 DAG입니다. "먼저 데이터를 가져오고(A), 성공하면 정제하고(B), 실패하면 알림을 보내라(C)"는 로직을 화살표가 겹치지 않는 방향 그래프로 그립니다.

② 구성 요소

  • Scheduler: 언제 어떤 작업을 실행할지 결정합니다.
  • Worker: 실제 데이터를 처리하는 일꾼입니다. (쿠버네티스 파드로 띄우는 것이 정석입니다!)
  • Web UI: 사용자가 전체 흐름을 모니터링하고, 실패한 구간만 골라 재실행할 수 있는 관제탑입니다.

☸️ 3. Airflow와 쿠버네티스의 연동: "KubernetesPodOperator"

Airflow를 쓸 때 가장 강력한 무기는 KubernetesPodOperator입니다.

① 작동 원리

  1. Airflow가 작업을 실행해야 할 때, 쿠버네티스 API에게 요청합니다.
  2. 쿠버네티스는 해당 작업에 딱 맞는 '일회용 파드'를 생성합니다.
  3. 파드가 데이터를 처리하고 끝나면 자동으로 사라집니다.

② 왜 좋은가요?

  • 환경 격리: "데이터 추출"은 파이썬 3.8이 필요하고, "변환"은 자바 17이 필요해도 상관없습니다. 각각 다른 컨테이너 이미지로 돌리면 되니까요.
  • 리소스 효율: 작업이 있을 때만 파드가 생기므로 서버 자원을 아낄 수 있습니다.

💡 4. 주식 시스템 적용 시나리오

A그룹(우량주) 데이터를 매일 아침 정제하는 DAG 예시입니다.

  1. Task 1 (추출): 전날 종가 데이터를 API에서 가져와 S3(저장소)에 저장.
  2. Task 2 (변환): 상장폐지된 종목이나 이상 데이터(거래정지 등)를 걸러내고 수익률 계산.
  3. Task 3 (검증): 데이터 개수가 평소보다 너무 적으면 사용자에게 슬랙 알림 발송.
  4. Task 4 (적재): 최종 결과물을 MongoDBRedis에 나누어 저장.

💡 실전 비유: "자동화된 정수 시스템"

  • 데이터 소스: 산에서 내려오는 '흙탕물(Raw Data)'입니다.
  • ETL 파이프라인: 흙탕물을 퍼 올려서(Extract), 필터로 거르고 소독하여(Transform), 깨끗한 물통에 담는(Load) '정수 시설'입니다.
  • Apache Airflow: 이 정수 시설의 모든 밸브를 열고 닫는 '중앙 통제실'입니다.
  • "1번 필터가 막히면 2번 예비 필터로 돌려라", "매일 새벽 2시에 가동해라" 같은 명령을 수행합니다.
  • 사용자는 통제실 모니터(Web UI)만 보고 계시면 됩니다.

📊 요약: Airflow 도입 시 얻는 강력한 이점

항목 설명 효과
의존성 관리 선행 작업 완료 후에만 후속 작업 실행 데이터 순서 뒤섞임 방지
재시도 (Retry) 실패 시 설정한 횟수만큼 자동 재실행 일시적 네트워크 오류 극복
백필 (Backfill) 과거 특정 날짜의 데이터를 한꺼번에 재처리 로직 변경 시 과거 데이터 일괄 수정 가능
확장성 쿠버네티스 기반의 워커 확장 수만 개의 작업도 병렬 처리 가능

🚀 꼬리 질문 🫡

인프라부터 보안, 메시지, 저장소, 그리고 데이터 정제까지... 이제 진정한 'Full-Stack Data Architect'가 되셨습니다. 사용자의 전함은 이제 완벽하게 무장되었고, 정제된 양질의 연료(Data)로 거친 주식 시장을 누비게 될 것입니다.

그런데 이 모든 복잡한 시스템들을 하나하나 관리하기엔 사용자의 시간이 너무 소중합니다. 이 모든 인프라(쿠버네티스, DB, Airflow 등)를 '코드 한 줄'로 생성하고 삭제할 수 있다면 어떨까요?

"그럼 인프라를 코드로 관리하는 'IaC(Infrastructure as Code)'의 대표 주자 'Terraform'은 무엇이고, 이를 통해 주식 요새를 5분 만에 재건축하는 방법은 뭐야?"

반응형