#Backend

실행은 도메인별로, 문맥은 한 레포에

실행은 도메인별로, 문맥은 한 레포에
01

Summary

2,794줄의 복잡한 DAG 코드를 100줄로! 토스 데이터 팀의 DW 파이프라인 혁신기

도메인별 Airflow 분리와 dbt 도입으로 개발 생산성 향상부터 AI 에이전트 친화적 환경까지 구축한 여정

토스 DW 팀이 400여 개의 DAG가 얽혀 있던 단일 Airflow 클러스터를 도메인별로 분리하고, dbt 기반 선언적 파이프라인 '뉴타운' 플랫폼으로 전환한 데이터 파이프라인 이관 과정을 담았습니다. 교살 무화과 패턴을 활용해 리스크 없이 데이터 일관성을 검증하며 파이프라인을 성공적으로 이관했습니다. 메타데이터와 의존성을 yml 및 시맨틱 레이어로 단일화함으로써 데이터 처리 성능 향상뿐만 아니라 AI 에이전트의 데이터 문맥 이해도까지 획기적으로 향상시켰습니다.

  • 01교살 무화과(Strangler Fig) 패턴을 적용해 서비스 중단 없이 데이터 정합성을 검증하며 안전하게 플랫폼 이관
  • 02dbt 및 Cosmos 활용으로 광고 도메인의 DAG 코드를 2,794줄에서 100줄로 축소하고 파이프라인 수행 시간을 4시간에서 2.5시간으로 단축
  • 03파편화되어 있던 SQL, 메타데이터, 품질 규칙, 데이터 카탈로그를 모델 yml 파일 하나로 정방향 통합
  • 04MetricFlow 시맨틱 레이어를 도입하여 사람과 AI 에이전트 모두 정확한 지표 추출 및 데이터 질의를 수행할 수 있는 문맥 환경 조성

RECOMMENDATION

단일 대규모 Airflow 클러스터 운영으로 파이프라인 복잡도와 장애 전파에 고민 중인 데이터 엔지니어나, AI 코딩 에이전트 도입을 염두에 두고 메타데이터 체계를 재정비하려는 데이터 팀에 강력히 추천합니다.

The Problem

토스 전사의 400개 이상 DAG가 하나의 중앙 DW Airflow 클러스터에 집중되어 있어 도메인 간 배치 지연이 전파되고, 파이프라인 수정 시 타 도메인 영향도 및 파편화된 메타 정보로 인한 유지보수 어려움이 발생했습니다.

The Solution

점진적 이관 방식인 교살 무화과(Strangler Fig) 패턴을 적용하여 DW Airflow를 도메인별 클러스터로 분리하고, dbt와 Cosmos 기반의 선언적 파이프라인을 구축하여 SQL 및 메타데이터(yml) 중심으로 구조를 재편했습니다.

The Result

광고 도메인의 DAG 코드가 2,794줄에서 100줄로 줄고 의존성 연결 코드가 제거되었으며, 파이프라인 수행 시간이 4시간에서 2시간 30분으로 단축되었습니다. 또한 구조화된 문맥을 바탕으로 AI 에이전트 및 챗봇의 지표 질의 정답률이 80% 이상으로 대폭 향상되었습니다.

Trade-off

안정적인 이관을 위해 신구 파이프라인을 동시 가동하는 과정에서 중복 데이터 생성 및 연산 자원 소모가 발생했으며, 클러스터 분리에 따라 크로스 클러스터 의존성을 관리하기 위한 별도 센서 및 래퍼(wrapper) 개발 부담이 수반되었습니다.

03

Key Concepts

Concept · 01

dbt (data build tool)

데이터 웨어하우스 내부의 변환 로직을 SQL SELECT 문으로 작성하여 선언적으로 모델을 구축하고, 모델 간 의존성과 파이프라인 생성을 자동화해 주는 데이터 변환 도구입니다.

  • 기존 Impala 직접 쿼리 방식을 dbt 모델로 이관하여 ref() 함수 기반의 데이터 의존성 자동 그래프를 생성했습니다.
  • 수동 의존성 설정 코드를 제거하고 Cosmos 래퍼를 통해 dbt 모델을 Airflow Task로 자동 변환했습니다.
Concept · 02

Strangler Fig Pattern (교살 무화과 패턴)

기존 레거시 시스템을 한 번에 바꾸지 않고, 새로운 시스템을 옆에 짓고 기능을 단계적으로 이관하면서 최종적으로 기존 시스템을 대체하는 점진적 마이그레이션 아키텍처 패턴입니다.

  • 기존 DW Airflow 파이프라인을 유지한 채 새 도메인 파이프라인에서 동일 데이터를 생성 및 대조 검증했습니다.
  • 검증 기간 동안 문제 발생 시 즉시 롤백 가능하도록 안전장치를 확보하며 이관 작업을 진행했습니다.
Concept · 03

Semantic Layer (시맨틱 레이어)

데이터베이스의 복잡한 스키마를 비즈니스 지표 및 개념 중심의 가상 레이어로 추상화하여, 쿼리 작성 주체에 관계없이 동일한 계산 결과를 보장하는 기술입니다.

  • MetricFlow를 적용해 지표 계산식, 필터, 조인 키를 model yml에 단일하게 정의했습니다.
  • 사내 AI 데이터 챗봇이 표준화된 SQL을 자동 생성하도록 구성하여 질의 정답률을 82%까지 높였습니다.