피드로 돌아가기
뱅크샐러드 기술블로그Backend
원문 읽기
데이터 분석가가 직접 정의, 배포, 관리하는 뱅크샐러드 데이터 파이프라인
뱅크샐러드가 datapipe 프레임워크를 자체 개발해 데이터 분석가가 직접 데이터 파이프라인을 배포·운영하도록 전환하며 연간 데이터 엔지니어 외 직군의 파이프라인 개발 사례 600건 달성
AI 요약
Context
데이터 분석 요구사항이 증가하면서 Airflow 기반 파이프라인이 복잡해졌으나, 모든 파이프라인 개발·배포·운영을 데이터 엔지니어만 수행할 수 있었다. 데이터 사용자의 새로운 분석 요청마다 데이터 엔지니어와의 복잡한 협업 과정이 필요했고, 데이터 엔지니어링 팀이 점진적 병목이 되면서 신규 파이프라인 개발 요청 처리가 지연되었다.
Technical Solution
- 메타데이터 추상화 계층 도입: MartTable 객체로 데이터베이스, 테이블명, DDL 경로, PySpark 작업 경로, 시작 날짜를 선언하고, 의존성을 메소드로 설정하여 데이터 엔지니어링 지식 없이도 파이프라인 정의 가능하도록 구성
- PySparkOperator 구현: Airflow Operator로 PySpark 작업을 감싸서 작업 경로, 리소스(SparkPool.common().medium), 실행 파라미터만 입력받도록 단순화
- Slack ChatOps 배포 워크플로우 통합: 기존 기술 조직 공통 배포 방식을 따르되, Airflow Scheduler에 DAG와 프로젝트 파일을 동기화하는 별도 메커니즘 구현
- Fusion Auth 기반 접근 제어: Airflow의 AirflowSecurityManager를 Fusion Auth 백엔드로 구현하여 사용자별 DAG 조작 권한을 Role 기반으로 관리
- 데이터 퀄리티 속성 선언적 정의: DqCriteria를 메타데이터에 추가하여 fail_conditions(적재 실패 조건)와 dq_metrics(모니터링 지표)를 코드로 관리하고 Slack 리포팅
Impact
- 데이터 엔지니어 외 직군의 파이프라인 개발 사례가 연간 600건으로 증가 (이전 대비 6배 이상)
- 데이터 퀄리티 설정으로 사용자 탈퇴 테이블 로직 오류로 인한 유저 인덱스 테이블의 중복 데이터 문제를 fail_conditions를 통해 사전 발견 및 차단
Key Takeaway
데이터 엔지니어링 복잡성을 프레임워크 내부에 숨기고 사용자 관심사(비즈니스 로직, 메타데이터 선언)만 노출하면, 기존 배포 체계와 인증 시스템을 활용하면서도 비엔지니어 직군의 자율적 운영을 가능하게 할 수 있다.
실천 포인트
Airflow 기반 데이터 파이프라인을 운영하는 조직에서 선언적 메타데이터 계층(예: MartTable)을 도입하고 복잡한 Operator 구현을 내부화하면, 데이터 분석가가 SQL과 PySpark 로직에만 집중하면서 Slack ChatOps와 기존 인증 시스템과 통합된 자체 배포·권한 관리가 가능해진다.