데이터 엔지니어링

8 개의 포스트

figma4분 읽기큐레이션 요약

데이터 사이언티스트로서 영향력을

데이터 과학의 영향력은 A/B 테스트나 최적화에만 있지 않으며, 복잡한 시스템을 이해하기 쉽게 만들고 정확성과 운영 안정성을 높이는 데에도 있다. 특히 빌링처럼 여러 시스템과 상태 변화가 얽힌 영역에서는 데이터 과학자가 도메인 지식, 데이터 모델링, 검증 도구, 엔지니어링 협업을 함께 수행해야 한다. 글은 데이터 과학을 ‘풀스택’ 분야로 보고, 과거와 현재의 시스템 동작을 설명하며, 기술적 방향과 품질 기준까지 정의해야 한다고 주장한다. ## 데이터 과학은 풀스택 분야다 - 데이터 과학자의 역할은 팀에 따라 실험 설계, 제품 분석, 데이터 모델링, 계측, 시스템 검증 등 크게 달라진다. - Figma는 한 프로젝트 안에서도 여러 역할을 수행할 수 있는 풀스택 데이터 과학자를 지향한다. - 빌링은 사용자에게 직접 보이는 제품이면서 동시에 복잡한 백엔드 시스템이므로, 단순한 기회 분석이나 실험만으로는 충분하지 않다. - 정확한 청구는 고객 경험과 플랫폼에 대한 신뢰에 직접 영향을 미친다. - 따라서 데이터 과학자는 다음과 같은 업무를 수행한다. - 빌링 도메인과 업무 규칙 이해 - 여러 팀과의 협업 - 시스템 동작을 설명하고 검증하는 도구 개발 - 데이터 품질과 계측 개선 - 정해진 데이터 과학 플레이북을 적용하기보다, 파트너 팀과 함께 실제로 필요한 지원 방식을 정의하는 것이 중요하다. ## 차트와 모델 외에도 시스템을 설명하는 방법이 있다 - 예측이나 추론 모델이 항상 가장 영향력 있는 데이터 과학 작업은 아니다. - 복잡한 시스템에서는 현재 또는 과거의 결과가 왜 발생했는지 설명하는 일이 더 중요할 수 있다. - Figma의 좌석 기반 빌링에서는 다음 요소가 여러 시스템에 걸쳐 상호작용한다. - 좌석 할당 및 제거 - 권한 변경 - 계약 조건 - 업그레이드 경로 - 워크스페이스 상태 - 특정 시점에 발생한 상태 전환 - 인보이스의 단순한 한 줄 청구 항목도 실제로는 여러 제품 이벤트와 빌링 규칙의 결과다. - 이를 해결하기 위해 **Invoice Seat Report**라는 데이터 애플리케이션을 구축했다. - 제품 사용 이벤트, 계약 메타데이터, 빌링 규칙, 과거 상태 전환을 통합한다. - 각 좌석 요금이 왜 발생했는지 평이한 언어로 설명한다. - 고객 지원, 주문 관리, 엔터프라이즈 담당자가 고객에게 청구 내역을 설명할 수 있게 한다. - 엔지니어가 예상치 못한 청구 동작을 디버깅할 때도 활용된다. ## 신뢰할 수 있는 설명에는 데이터 기반이 필요하다 - 보고서를 만드는 일은 단순히 여러 테이블을 조회하는 작업이 아니었다. - 좌석 상태가 시스템마다 어떻게 변화하는지에 대한 공통된 정신 모델을 먼저 만들어야 했다. - 이를 위해 다음 작업이 필요했다. - 엔지니어와 데이터 흐름 및 업무 규칙 검증 - 과거 데이터의 불일치 정리 - 누락된 이벤트에 대한 새로운 계측 요청 - “무슨 일이 일어났는가”뿐 아니라 “왜 일어났는가”를 기록하도록 로그 개선 - 기존 로그는 결과만 남기고 원인을 기록하지 않는 경우가 있어, 미래의 분석 가능성을 높이기 위한 시스템 변경도 함께 진행했다. - 특히 레거시 다년 계약처럼 좌석 이력이 드문 경우나, 초기 업그레이드로 데이터에 공백이 생기는 경우를 별도로 처리해야 했다. - 빌링 규칙을 SQL과 데이터 변환 로직으로 옮길 때는 각 규칙을 추적하고 디버깅할 수 있도록 구현해야 했다. ## 데이터 과학자는 기술적 방향도 정의할 수 있다 - 비즈니스 규칙을 측정 가능한 검증 조건으로 바꾸면 데이터 과학은 제품 분석을 넘어 시스템 품질 관리에 기여할 수 있다. - 이런 검증은 다음 목적에 활용된다. - 무엇이 “정상”인지 정의 - 데이터 및 시스템 동작의 드리프트 감시 - 회귀 버그 조기 탐지 - 미묘한 이상 상태 발견 - 개발 환경과 운영 환경에서 결과 검증 - 빌링처럼 상태가 누적되는 시스템에서는 좌석 할당, 상태 전환, 인보이스 계산이 모두 의도한 규칙과 일치해야 한다. - 작은 계산 오류도 고객의 청구 금액과 서비스 신뢰도에 영향을 줄 수 있다. - Figma가 가격·상품 구성·빌링 로직을 대규모로 재설계했을 때도 데이터 과학은 다음을 검증하는 역할을 맡았다. - 새 로직이 의도대로 작동하는지 - 데이터가 파이프라인을 통해 정확히 흐르는지 - 예상하지 못한 빌링 상태가 발생하지 않는지 - 개발과 운영 환경 모두에서 결과가 일관적인지 복잡하고 중요한 시스템에서 데이터 과학자는 분석 결과를 제공하는 사람을 넘어, 시스템을 설명 가능하게 만들고 정확성을 검증하는 기술 파트너가 되어야 한다. 따라서 실험 중심의 역할에만 한정하지 말고, 도메인 모델링·데이터 품질·계측·자동 검증까지 업무 범위를 확장하는 것이 실용적인 접근이다.

원문 읽기(새 탭에서 열림)
daangn원문

당근의 사용자 행동 로그 관리 플랫폼: 이벤트센터 개발기. 코드로 관리하던 사용자 행동 로그를 플랫폼으로 만든 이유 (새 탭에서 열림)

당근은 방대한 사용자 행동 로그를 보다 효율적이고 체계적으로 관리하기 위해 기존의 Git 기반 코드 관리 방식에서 벗어나 UI 중심의 로그 관리 플랫폼인 ‘이벤트센터’를 구축했습니다. 이를 통해 복잡한 JSON 스키마 작성 과정과 수동 리뷰 절차를 자동화하여 데이터 관리 비용을 획기적으로 낮추었으며, 전사적인 로그 컨벤션을 확립해 데이터의 일관성과 분석 편의성을 동시에 확보했습니다. 결과적으로 개발자와 분석가 모두가 데이터 기반의 의사결정에만 집중할 수 있는 환경을 조성하는 데 성공했습니다. **기존 Git 기반 관리 방식의 한계** * **높은 진입장벽:** 새로운 로그 스키마를 추가하기 위해 Spark의 StructType JSON 형식을 직접 코드로 작성해야 했으며, 이는 데이터 엔지니어링 지식이 부족한 구성원에게 큰 부담이 되었습니다. * **비효율적인 프로세스:** 스키마 하나를 추가할 때마다 PR 생성, 데이터 팀의 수동 리뷰, 수정 반복 과정을 거쳐야 했기에 데이터 반영 속도가 느려지는 문제가 발생했습니다. * **일관성 없는 명명 규칙:** 이벤트 이름에 대한 강제적인 컨벤션이 없어 유사한 행동이 서로 다른 이름으로 정의되거나, snake_case와 camelCase가 혼용되는 등 데이터 정합성 관리가 어려웠습니다. **사용자 행동 로그 수집 및 처리 아키텍처** * **실시간 파이프라인:** 모바일 앱 SDK에서 발생한 이벤트는 서버를 거쳐 GCP Pub/Sub으로 전달되며, Dataflow를 통해 유효성 검증, 중복 제거, 데이터 변환(Flatten)이 실시간으로 이루어집니다. * **스키마 기반 자동 테이블 생성:** 이벤트 스키마를 정의하면 BigQuery에 해당 이벤트 전용 테이블이 자동으로 생성되며, JSON 형태의 커스텀 파라미터가 일반 컬럼으로 펼쳐져 저장되어 복잡한 쿼리 없이도 즉시 분석이 가능합니다. * **데이터 신뢰성 확보:** 스트리밍 단계에서의 단기 중복 제거와 배치 단계에서의 시간 윈도우 기반 중복 제거를 병행하여 데이터의 정확도를 극대화했습니다. **이벤트센터를 통한 로그 관리 혁신** * **UI 중심의 스키마 정의:** 코드를 직접 수정하는 대신 웹 인터페이스에서 필드명, 타입, 설명, 오너십 등을 설정할 수 있어 누구나 쉽게 로그를 설계하고 관리할 수 있습니다. * **명격한 컨벤션 적용:** '행동(Action)-서비스(Service)-대상(Object)' 구조의 명명 규칙을 시스템적으로 강제하여 이벤트 검색성을 높이고 중복 정의를 방지했습니다. * **자동화된 유효성 검사:** 스키마 변경 시 발생할 수 있는 오류를 시스템이 사전에 체크하고, 변경 사항을 즉시 데이터 파이프라인에 반영하여 운영 리소스를 최소화했습니다. 데이터의 양이 늘어날수록 로그 관리의 핵심은 '자율성'과 '통제' 사이의 균형을 잡는 것입니다. 당근의 사례처럼 로그 정의 과정을 플랫폼화하고 컨벤션을 시스템으로 강제한다면, 휴먼 에러를 줄이는 동시에 전사 구성원이 데이터라는 공통 언어를 더욱 쉽고 정확하게 사용할 수 있는 환경을 만들 수 있습니다.

daangn원문

당근은 왜 User Activation을 전사 공통 데이터 레이어로 만들었을까? (새 탭에서 열림)

당근은 단순한 액티브 유저(Active User) 수치만으로는 파악하기 어려운 사용자 행동의 원인과 흐름을 분석하기 위해 전사 공통 데이터 레이어인 'Activation 레이어'를 구축했습니다. 이를 통해 사용자의 활성 상태와 상태 전이를 일관된 기준으로 정의함으로써 데이터 신뢰성을 확보하고, 팀 간 중복 계산으로 인한 비용과 운영 리소스를 대폭 절감했습니다. 결과적으로 데이터 분석 환경을 쿼리 중심에서 시스템 중심으로 격상시켜 전사적인 의사결정 속도와 정확도를 높였습니다. **단순 지표를 넘어선 User Activation의 중요성** * 단순한 액티브 유저 수는 '무슨 일이 일어났는지'는 보여주지만, '왜' 일어났는지에 대한 해답을 주지 못하므로 유저를 상태별로 쪼개어 보는 관점이 필요합니다. * **활성 상태**: 특정 시점에 유저가 신규(New), 유지(Retained), 복귀(Reactivated), 이탈(Inactive) 중 어떤 상태인지 분류합니다. * **상태 전이**: 기간의 흐름에 따라 유저가 어떤 경로로 이동하는지(예: 유지 → 이탈) 파악하여 활동성 수준에 따른 구체적인 액션을 가능하게 합니다. * 이전에는 팀마다 이 기준을 각자 계산하여 신뢰도가 낮고 운영 안정성이 떨어졌으나, 이를 공통 레이어로 통합하여 해결했습니다. **신뢰성 확보를 위한 기준 행동의 고정** * 단순한 UI 로그(클릭 등)가 아닌, 비즈니스적 의미를 담은 **Fact 모델**을 기준으로 Activation을 계산하도록 설계했습니다. * 로그 내 파라미터에 따라 의미가 달라지는 혼선을 방지하기 위해, 사전에 정제된 Fact 레이어를 입력값으로 사용합니다. * `<fact_name>_activation_<time_grain>`과 같은 엄격한 네이밍 컨벤션을 적용하여 모델 이름만으로도 어떤 행동과 주기(일/주/월)를 기준으로 하는지 누구나 쉽게 알 수 있게 했습니다. **증분 모델(Incremental Model)을 통한 비용 최적화** * 수천만 명의 사용자 데이터를 매일 전체 재처리하는 방식은 비용 소모가 크기 때문에, dbt의 증분 모델 방식을 도입했습니다. * **FirstLast 모델**: 각 유저별 최초/직전/최근 활동일을 별도로 관리하여 전체 이력을 매번 스캔하지 않도록 했습니다. * **Activation 모델**: 당일 활동 유저 정보와 FirstLast 모델을 결합하여 상태와 복귀 간격 등을 계산하고, 결과를 다시 FirstLast 모델에 업데이트하는 순환 구조로 데이터 스캔량을 최소화했습니다. * **Activation Status 모델**: 활동이 없는 유저를 포함한 전체 유저의 현재 상태(특히 이탈 기간)를 관리하여 분석 편의성을 높였습니다. **dbt 매크로를 활용한 생산성 극대화** * 다양한 행동(앱 방문, 게시글 작성 등)과 시간 단위(Daily, Weekly, Monthly)별로 수많은 모델을 직접 구현해야 하는 번거로움을 매크로로 해결했습니다. * 복잡한 상태 계산 로직을 dbt 매크로로 표준화하여, 새로운 Activation 모델이 필요할 때 설정값만 입력하면 자동으로 수십 개의 모델이 생성되도록 자동화했습니다. * 이를 통해 데이터 엔지니어의 반복 작업을 줄이고, 분석가들이 필요할 때 즉시 공통 레이어를 확장할 수 있는 환경을 만들었습니다. 데이터를 단순히 쿼리 결과물로 보는 단계를 넘어, 시스템화된 '인프라'로 구축할 때 비로소 전사적인 데이터 활용도가 극대화됩니다. 당근의 사례처럼 상태 전이와 같은 복잡한 로직을 공통 레이어로 추상화하고 자동화한다면, 분석 효율성을 높이는 동시에 데이터 기반의 의사결정 문화를 더욱 공고히 할 수 있습니다.

naver원문

비용, 성능, 안정성을 목표로 한 지능형 로그 파이프라인 도입 (새 탭에서 열림)

네이버의 통합 데이터 플랫폼 AIDA 내 로그 수집 시스템인 'Logiss'는 대규모 로그 파이프라인을 운영하며 겪었던 무중단 배포의 한계, 리소스 낭비, 로그 중요도 미분류 문제를 해결하기 위해 지능형 파이프라인을 도입했습니다. 핵심은 Storm의 멀티 토폴로지 구성을 통한 블루-그린 배포 구현과 실시간 트래픽 상태에 따라 처리 속도를 동적으로 조절하는 지능형 제어 알고리즘의 적용입니다. 이를 통해 서비스 중단 없는 배포는 물론, 인프라 비용을 약 40% 절감하고 장애 시 핵심 로그를 우선 처리하는 안정성까지 확보하며 성능과 비용의 최적점을 찾아냈습니다. **멀티 토폴로지와 블루-그린 배포를 통한 무중단 운영** * 기존 Traffic-Controller는 단일 토폴로지 구조로 인해 배포 시마다 데이터 처리가 3~8분간 중단되는 문제가 있었으나, 이를 해결하기 위해 멀티 토폴로지 기반의 블루-그린 배포 방식을 도입했습니다. * Storm 2.x의 `assign` 방식 대신 Kafka의 컨슈머 그룹 관리 기능을 활용하는 `subscribe` 방식으로 내부 로직을 커스텀 변경하여, 여러 토폴로지가 동일 파티션을 중복 소비하지 않도록 개선했습니다. * 이를 통해 트래픽이 몰리는 낮 시간대에도 중단 없이 안전하게 신규 기능을 배포하고 점진적인 트래픽 전환이 가능해졌습니다. **지능형 트래픽 제어를 통한 리소스 최적화** * 낮과 밤의 트래픽 차이가 5배 이상 발생하는 환경에서 피크 타임 기준으로 장비를 고정 할당하던 비효율을 제거하기 위해 '지능형 속도 제어' 알고리즘을 도입했습니다. * Kafka의 랙(lag) 발생량과 백엔드 시스템(OpenSearch 등)의 CPU 부하 상태를 실시간으로 감시하여, 시스템이 여유로울 때는 로그 처리 속도를 자동으로 높여 적체를 빠르게 해소합니다. * 유동적인 속도 조절 덕분에 기존 대비 투입 장비 리소스를 약 40% 절감하는 성과를 거두었으며, 갑작스러운 트래픽 유입에도 유연하게 대응할 수 있게 되었습니다. **로그 중요도 기반의 우선순위 처리** * 모든 로그를 동일한 속도로 처리하던 방식에서 벗어나, 비상 상황 발생 시 서비스 핵심 로그가 먼저 처리될 수 있도록 우선순위(High, Medium, Low) 개념을 도입했습니다. * 트래픽 지연이 발생하면 중요도가 낮은 로그의 처리 속도는 제한하고, 사업 및 서비스 운영에 필수적인 핵심 로그는 지연 없이 전송되도록 파이프라인 가용성을 확보했습니다. **저장소별 차등 샘플링을 통한 비용 절감** * 실시간 검색을 위한 OpenSearch와 장기 보관을 위한 랜딩 존(Landing Zone)에 데이터를 전송할 때, 각 저장소의 목적에 맞게 샘플링 비율을 다르게 설정할 수 있는 기능을 구현했습니다. * 모든 데이터를 무조건 100% 저장하는 대신, 분석 목적에 따라 일부 샘플링만으로 충분한 로그는 저장량을 줄여 인덱싱 부하를 낮추고 스토리지 비용을 효율적으로 관리할 수 있게 되었습니다. 대규모 로그 파이프라인 운영에서 비용 효율과 안정성은 상충하기 쉬운 가치이지만, 시스템의 상태를 실시간으로 파악하고 제어하는 '지능형' 로직을 통해 두 마리 토끼를 모두 잡을 수 있습니다. 특히 스트리밍 처리 프레임워크의 제약 사항을 직접 커스텀하여 비즈니스 요구사항에 맞춘 최적화 사례는 유사한 데이터 플랫폼을 운영하는 기술진에게 실무적인 통찰을 제공합니다.

dropbox원문

미래를 구축하다: Dropbox (새 탭에서 열림)

드롭박스는 2025년 여름 인턴십 프로그램을 통해 43명의 인턴과 함께 AI 기반 통합 검색 도구인 '드롭박스 대시(Dropbox Dash)'를 비롯한 핵심 서비스의 성능과 인프라를 혁신했습니다. 엔지니어링 중심의 이번 기수들은 12주간 멘토링과 실무 프로젝트에 참여하며, 특히 AI 모델의 신뢰성 강화와 다국어 검색 지원 등 드롭박스의 차세대 기술 역량을 끌어올리는 데 기여했습니다. 결과적으로 이번 프로그램은 인턴들에게는 실질적인 기술적 성장을, 기업에는 레거시 시스템 현대화와 운영 효율화라는 실용적 성과를 동시에 안겨주었습니다. ### 드롭박스 대시와 AI 기술 고도화 * **다국어 검색 지원 확대**: 통합 검색 플랫폼(USP)에 언어 감지 파이프라인을 통합하여 리플레이(Replay) 등 드롭박스 제품 전반에 걸쳐 20개 이상의 언어를 지원하는 네이티브 검색 환경을 구축했습니다. * **ML 모델 모니터링 시스템(AI Sentinel)**: 머신러닝 엔지니어가 수동으로 확인하던 모델 배포 상태를 실시간으로 가시화하는 시스템을 개발하여 배포의 신뢰성을 높이고 반복 주기를 단축했습니다. * **커넥터 플랫폼 최적화**: 대시의 데이터 저장소에서 최신 정보에 직접 접근할 수 있는 도구를 빌드하여, 외부 시스템의 데이터를 매번 다시 다운로드하지 않고도 최신 메타데이터 기반으로 모델을 학습시킬 수 있게 했습니다. * **문서 미리보기 및 웹 자동화**: 대시 내에서 문서를 즉시 미리 볼 수 있는 UI와 대화형 AI 기능을 통합하고, 폼 채우기나 교정 등의 반복 업무를 자동화하는 모듈형 AI 에이전트를 개발했습니다. ### 인프라 성능 및 데이터 효율화 * **스토리지 코어(Magic Pocket) 지연 시간 단축**: 디스크 재시작 시 발생하는 쓰기 지연 문제를 해결하기 위해 스토리지 상태를 추적하는 캐시와 성능이 저하된 볼륨을 제외하는 필터링 옵션을 추가하여 검색 결과의 정확도를 높였습니다. * **파일 시스템 메타데이터 리팩토링**: 레거시 파일 이력 추적 시스템을 현대화하여 메타데이터 인프라를 단순화하고 운영 비용을 대폭 절감했습니다. * **대규모 데이터 분석 최적화**: Databricks 쿼리와 ETL 파이프라인의 고비용 패턴을 식별하는 추천 시스템을 구축하고, 500TB 규모의 모바일 이벤트 로그를 최신 데이터 레이아웃 기술인 '리퀴드 클러스터링(Liquid Clustering)'으로 마이그레이션했습니다. ### 개발자 경험 및 운영 도구 개선 * **AI 기반 코드 마이그레이션**: 특정 폴더나 유형에 대해 코드 마이그레이션을 자동화하고 결과가 성공적일 경우 자동으로 Pull Request를 생성하는 도구를 제작하여 대규모 마이그레이션 작업을 효율화했습니다. * **지능형 지표 감지 시스템(Vortex2)**: 고정된 임계값 대신 데이터의 계절성과 변화 패턴을 학습하는 적응형 이상 탐지 기법을 도입하여 알림 피로도를 줄이고 장애 대응 속도를 개선했습니다. 이러한 인턴들의 성과는 드롭박스가 단순한 파일 저장소를 넘어 AI 중심의 워크플로우 플랫폼으로 진화하고 있음을 보여줍니다. 특히 대규모 마이그레이션 자동화나 인프라 수준의 지연 시간 최적화와 같은 실무적인 기술 해결책은 엔지니어링 팀의 생산성을 직접적으로 높이는 실용적인 결론을 도출했습니다.

naver원문

네이버 TV (새 탭에서 열림)

네이버웹툰은 기존 데이터 파이프라인에서 발생하던 복잡한 데이터 적재(Backfill) 작업과 높은 운영 비용 문제를 해결하기 위해 DBT와 Airflow를 결합한 'Flow.er' 시스템을 구축했습니다. Flow.er는 데이터 간의 의존성을 명확히 정의하는 데이터 계보(Lineage)를 중심으로 설계되어, 엔지니어가 데이터의 흐름을 온디맨드로 파악하고 관리할 수 있게 돕습니다. 이를 통해 데이터 품질을 높이는 동시에 여러 데이터 조직으로 확장 가능한 고도화된 데이터 플랫폼으로 발전하고 있습니다. **과거 파이프라인의 한계와 Flow.er의 탄생** * 과거에는 파이프라인 복구와 수동 백필 작업에 과도한 운영 리소스가 소모되어 업무 효율이 저하되는 문제가 있었습니다. * 데이터 간의 복잡한 연결 고리를 한눈에 파악하기 어려워 데이터 정합성을 유지하고 장애에 대응하는 데 한계가 존재했습니다. * 이러한 문제를 극복하기 위해 데이터 계보를 가시화하고 자동화된 운영이 가능한 'Flow.er' 서비스에 대한 PoC를 거쳐 실무에 도입했습니다. **DBT와 Airflow를 활용한 계보 중심 아키텍처** * **DBT의 역할**: SQL 기반의 데이터 모델링을 통해 데이터 변환 로직을 관리하며, 모델 간 의존성을 바탕으로 데이터 계보와 관련 문서(Documentation)를 자동 생성합니다. * **Airflow의 역할**: DBT로 정의된 모델들이 선후 관계에 맞춰 정확히 실행되도록 워크플로우를 오케스트레이션하고 스케줄링을 담당합니다. * **개발 생산성 향상**: 개인 인스턴스를 제공하여 개발자가 격리된 환경에서 모델을 테스트할 수 있게 하고, CI/CD 파이프라인을 통해 코드 변경 사항을 안전하게 배포합니다. **시스템 안정성 및 확장을 위한 컴포넌트** * **Playground & Tower**: 자유로운 데이터 실험을 위한 샌드박스 환경인 Playground와 파이프라인 상태를 실시간으로 감시하는 Tower를 통해 운영 가시성을 확보했습니다. * **Partition Checker**: 상위 데이터 소스의 파티션 생성 여부를 사전에 체크하여 데이터 누락을 방지하고 적재 정합성을 획기적으로 개선했습니다. * **Manager DAG System**: 수많은 데이터 모델과 DAG를 효율적으로 관리하기 위해 관리 전용 시스템을 개선하여 운영 편의성을 극대화했습니다. **Flow.er의 미래와 기술적 지향점** * **MCP(Model Context Protocol) 서버**: 데이터 모델의 컨텍스트를 외부 도구나 AI 에이전트가 이해할 수 있는 규격으로 제공하여 데이터 활용도를 높일 예정입니다. * **AI Agent 연동**: 단순한 파이프라인 운영을 넘어 AI가 데이터 계보를 분석하고 문제를 해결하거나 코드를 최적화하는 단계로의 발전을 준비하고 있습니다. 데이터 파이프라인의 복잡성으로 인해 백필과 운영에 고통받고 있다면, DBT를 활용해 계보를 명확히 정의하고 이를 Airflow와 유기적으로 연결하는 접근 방식이 필수적입니다. 데이터 계보 중심의 아키텍처는 단순한 자동화를 넘어 데이터 프로덕트의 신뢰성을 담보하는 가장 강력한 수단이 될 것입니다.

discord원문

dbt 오버클러킹 (새 탭에서 열림)

디스코드는 2,500개 이상의 데이터 모델과 100명 이상의 개발자가 협업하는 페타바이트급 데이터 환경을 관리하기 위해, dbt의 기본 기능을 넘어선 커스텀 확장 시스템을 구축했습니다. 초기 도입 시에는 20분이 넘는 컴파일 시간과 개발자 간의 작업 충돌 등 확장성 한계에 부딪혔으나, 이를 자동화된 백필(Backfill)과 생산성 도구로 해결하며 견고한 데이터 분석 기반을 마련했습니다. 이 사례는 대규모 데이터 웨어하우스 환경에서 dbt를 효율적으로 확장하려는 기업들을 위한 기술적 청사진을 제시합니다. ### dbt 선정 배경과 주요 장점 * **엔지니어링 철학과의 일치:** 오픈 소스를 지향하고 엔지니어링의 유연성과 투명성을 중시하는 디스코드의 철학에 따라 dbt를 채택했습니다. * **도구 간 통합 및 모듈화:** 오케스트레이터인 Dagster와의 원활한 통합은 물론, SQL 기반의 모듈식 설계를 통해 코드 재사용성과 유지보수성을 확보했습니다. * **품질 관리:** 데이터 품질을 보장할 수 있는 포괄적인 테스트 프레임워크를 활용하여 신뢰할 수 있는 데이터 변환 프로세스를 구축했습니다. ### 대규모 데이터 환경에서의 한계점 * **긴 컴파일 대기 시간:** 프로젝트 규모가 커짐에 따라 전체 프로젝트를 재컴파일하는 데 20분 이상이 소요되어 개발 생산성이 급격히 저하되었습니다. * **증분 전략의 비효율성:** dbt가 기본적으로 제공하는 증분(Incremental) 구체화 전략은 디스코드의 페타바이트급 데이터 볼륨을 처리하기에 최적화되어 있지 않았습니다. * **동시성 충돌 문제:** 여러 개발자가 동시에 작업하는 과정에서 서로의 테스트 테이블을 덮어쓰는 등 협업상의 혼선과 자원 낭비가 발생했습니다. ### 확장성을 위한 커스텀 최적화 전략 * **성능 중심의 코어 확장:** dbt의 표준 기능을 확장하여 대규모 조직에 적합한 커스텀 시스템을 구축함으로써 개발 사이클을 획기적으로 단축했습니다. * **자동화된 백필 시스템:** 수동 개입이 많이 필요한 복잡한 데이터 백필 과정을 자동화하여 운영 리소스를 절감하고 데이터의 정합성을 높였습니다. * **플랫폼 독립적 설계:** Google BigQuery를 사용하면서도 특정 클라우드 제공업체에 종속되지 않는(Provider-agnostic) 구조를 취해 범용적인 적용이 가능하도록 설계했습니다. 디스코드의 이러한 시도는 단순한 도구 도입을 넘어, 대규모 데이터 스택을 운용할 때 발생하는 병목 현상을 엔지니어링 기반의 커스텀 솔루션으로 해결할 수 있음을 보여줍니다. 데이터 규모가 급격히 성장하는 조직이라면 dbt의 기본 기능에만 의존하기보다, 자사의 인프라에 맞춘 자동화와 확장 도구를 결합하는 전략이 필수적입니다.

coupang원문

쿠팡 SCM 워크플로우: 효율적이고 확장 가능한 low-code, no-code 플랫폼 개발 (새 탭에서 열림)

쿠팡 SCM 팀은 복잡한 공급망 관리 과정에서 발생하는 다양한 직군 간의 협업 비용을 줄이고 시스템 확장성을 높이기 위해 'SCM 워크플로우 플랫폼'을 구축했습니다. 이 플랫폼은 Low-code와 No-code 방식을 도입하여 개발자뿐만 아니라 비개발자도 직접 데이터 파이프라인을 설계하고 서비스에 적용할 수 있는 환경을 제공합니다. 이를 통해 요구사항 변화에 민첩하게 대응하며, 데이터 생성부터 프로덕션 연동까지의 전 과정을 효율화하는 것을 목표로 합니다. **No-code 데이터 빌더를 통한 데이터 접근성 혁신** * **다양한 데이터 소스 통합:** Redshift, Hive, Presto, Aurora, MySQL, Elasticsearch, S3 등 산재한 공용 데이터 소스에 대한 접근 및 질의를 코드 없이 수행할 수 있습니다. * **시각적 노드 기반 설계:** 사용자는 데이터 추출, 계산, 연동 등의 과정을 시각적인 '노드'로 생성하고 연결함으로써 직관적인 데이터 워크플로우를 구성할 수 있습니다. * **협업 효율화:** 비즈니스 분석가(BA)나 데이터 사이언티스트가 개발자에게 매번 파이프라인 생성을 요청하던 기존 프로세스를 개선하여, 스스로 데이터를 가공하고 시스템에 반영할 수 있게 함으로써 커뮤니케이션 비용을 획기적으로 낮췄습니다. **Low-code 기반의 서비스 확장 및 운영 효율화** * **도메인 확장성 확보:** 새로운 시스템을 매번 구축하지 않고도 워크플로우 설정을 통해 도메인을 확장할 수 있어, 변화가 빠른 이커머스 환경에 유연하게 대처합니다. * **기존 도구의 복잡성 해소:** Jenkins, Airflow, Notebook 등 파편화된 도구들이 가진 연결성 문제를 단일 플랫폼 안에서 통합하여 관리 편의성을 높였습니다. * **신속한 서비스 론칭:** 간단한 조작만으로 데이터를 시각화하거나 간단한 서비스를 출시할 수 있는 환경을 제공하여 아이디어의 실행 속도를 높였습니다. **실용적인 결론 및 제언** SCM 워크플로우 플랫폼은 데이터 기반 의사결정의 주체를 전 직군으로 확대하는 '데이터 민주화'를 실현하는 도구입니다. 복잡한 MSA(마이크로서비스 아키텍처) 환경에서 데이터 파이프라인 유지보수에 많은 리소스를 소모하고 있는 조직이라면, 이러한 로우코드 기반의 워크플로우 플랫폼을 도입하여 엔지니어링 역량을 핵심 알고리즘 개발에 집중시키고 운영 효율을 극대화할 것을 추천합니다.