당근, 200+개 DB 마이그레이션 자동화 플랫폼 구축 성공!

by DD
2시간 전
조회수 0

당근은 200개 이상의 글로벌 DB에서 BigQuery로 데이터를 전송하는 과정에서 소스코드와 설정의 강결합으로 인한 병목 현상 발생

오픈소스 Airbyte 검토했으나 대규모 테이블 처리 시간 문제로 자체 ELT 플랫폼(DT Platform) 구축 결정

DT Platform은 UI 기반 no-code 데이터 전송으로 서비스 팀의 셀프서비스 운영 지원 및 데이터 가치화 팀의 리뷰 병목 해소

JSON DSL을 통한 파이프라인 정의와 실행 레이어 분리로 코드-설정 강결합 문제 해결

Claude Code 활용 마이그레이션 에이전트와 Notion으로 2주 만에 203개 파이프라인 자동 마이그레이션 완료

기존 ELT의 코드-설정 강결합 문제점 분석

당근의 기존 ELT 파이프라인은 소스코드와 파이프라인 정의가 단일 레포지토리에 강하게 결합되어 있었다. 이로 인해 새로운 테이블 추가나 설정 변경 시 코드 수정 및 PR 리뷰가 필수적이었으며, 이는 데이터 가치화 팀의 리뷰 병목서비스 팀의 학습 부담 증가를 야기했다. 각 파이프라인의 상태 추적, 파티션 키 설정, 적재 방식 결정 등 복잡한 정보가 코드베이스에 산재되어 있어 가시성 확보가 어려웠고, 이는 결국 반복적인 설정 리뷰에 팀의 시간을 소모시키는 결과를 초래했다.

Airbyte 한계점과 자체 플랫폼 설계 방향

오픈소스 ELT 플랫폼인 Airbyte는 풍부한 커넥터와 UI 기반 선언적 파이프라인 정의가 장점이었으나, 당근의 수십억 row 규모 대규모 테이블 처리 시 동기화 시간이 비현실적으로 길다는 한계가 있었다. 파티션 기반 병렬 처리나 Spark 리소스 조정과 같은 세밀한 튜닝이 Airbyte 위에서 제약적이었기에, 기존의 Airflow + Spark 기반 실행 레이어는 유지하고 그 위에 당근 환경에 맞는 선언적 파이프라인 정의 계층만 자체 구축하는 방향으로 설계 방향을 전환했다.

DT Platform 아키텍처: DSL 기반 실행 레이어 분리

DT Platform은 사용자가 UI에서 파이프라인을 정의하면, 이를 JSON DSL(Domain Specific Language)로 변환하여 S3에 저장한다. Airflow의 Synchronizer DAG는 이 DSL을 읽어 Dynamic DAG Generation을 통해 실행 DAG을 생성하고, Spark Job을 EMR on EKS에 제출하여 데이터를 처리한다. 이 JSON DSL이 데이터포털(UI/워크플로 설정)과 실행 레이어(Airflow/Spark)를 연결하는 핵심 고리 역할을 하며, 기존의 코드-설정 강결합 문제를 해결하고 각 컴포넌트의 책임 분리(Separation of Concerns)를 명확히 했다.

Claude Code를 활용한 마이그레이션 자동화 전략

기존 203개의 파이프라인을 수동으로 마이그레이션하는 대신, Claude Code와 마이그레이션 에이전트 및 스킬을 활용하여 자동화를 구현했다. 이 에이전트는 기존 Python/Scala 소스코드를 파싱하여 의미를 추출하고 DT Platform API를 호출해 파이프라인을 생성했다. 여러 에이전트의 동시 작업을 조율하기 위해 Notion 데이터베이스를 작업 단위 레지스트리(Task Unit Registry)로 사용하여 중복 작업을 방지하고, 약 2주 만에 모든 마이그레이션을 완료하며 운영 효율성을 극대화했다.

DT Platform 도입 후 파이프라인 변경 리드타임 및 요청 수 변화

DT Platform 출시 이후, 신규 DB 연동, 테이블 추가, 설정 변경을 포함한 파이프라인 추가/변경 요청 리드타임이 크게 감소했다. 또한, 데이터 연동 과정의 허들이 낮아짐에 따라 전체 요청 건수도 크게 증가하는 정성적인 변화를 확인했다. 서비스 팀은 코드베이스 학습 없이 UI에서 직접 설정을 변경하고 리뷰 요청을 보낼 수 있게 되었으며, 데이터 가치화 팀은 Web UI를 통해 파이프라인 상태를 한눈에 파악하며 리뷰 병목 현상을 해소했다.

플랫폼화가 열어준 AI 기반 파이프라인 관리의 미래

DT Platform은 파이프라인 설정의 스키마 통일 및 중앙 관리를 통해 실행 성공/실패 가시화, 파이프라인 비용 가시화, PII 컬럼 자동 제외 같은 보안 강화 조치를 플랫폼 레벨에서 일괄 적용할 수 있는 기반을 마련했다. 나아가 Spark 지표를 기반으로 자동 튜닝 제안 및 적용이나, 에이전트가 파이프라인 생성부터 관리까지 진행하는 Agentic 한 최적화 시도가 가능해졌다. 이는 향후 AI-native 한 파이프라인 관리 환경 구축의 토대가 될 것으로 기대된다.

당근 200+개 DB 를 옮기는 ELT 플랫폼, DT Platform 을 만든 이야기