analytics-engineering

4 개의 포스트

netflix4분 읽기큐레이션 요약

콘텐츠 출시의 위험 예측: 데이터 기반 인사이트가 출시 계획을 혁신하는 방법

넷플릭스는 콘텐츠 출시 준비 과정에서 수작업으로 입력된 미디어 전달 일정이 자주 부정확하거나 누락된다는 문제를 발견했습니다. 이에 제작 진행 데이터와 메타데이터를 활용한 머신러닝 모델로 Locked Cut과 최종 IMF 전달까지 남은 일수를 예측하고, 출시 지연 위험을 줄이려 합니다. 백테스트 결과 예측 일정은 수작업 일정에 비해 정확도와 제공 범위가 높았으며, 출시 직전 일정 오차와 출시 지연 사이의 상관관계도 완화했습니다. ## 콘텐츠 출시 준비와 일정 리스크 - 넷플릭스 콘텐츠는 개발, 프리프로덕션, 제작, 후반작업, 출시 준비 단계를 거쳐 공개됩니다. - 후반작업이 끝나면 최종 오디오·비디오 파일인 IMF가 전달되고, 이를 기반으로 다음 작업이 진행됩니다. - 아트워크와 예고편 제작 - 자막 생성 - 관람등급 지정 - 품질관리(QC) - 일부 작업은 최종본이 아닌 Locked Cut으로 미리 시작할 수 있습니다. - 다만 Locked Cut 이후 IMF가 크게 변경되면 추가 conformance 작업이 필요합니다. - IMF를 기다리면 일정이 압축될 수 있고, Locked Cut으로 일찍 시작하면 수정 비용이 발생하는 트레이드오프가 존재합니다. ## 수작업 일정의 한계 - 콘텐츠 파트너가 제작 일정에 Locked Cut과 IMF의 예상 전달일을 수동으로 입력합니다. - 실제 제작은 일정 변경, 인력·장비 충돌, 예기치 못한 문제 등으로 지속적으로 변동됩니다. - 그 결과 다음 문제가 발생합니다. - 일부 콘텐츠에는 예상 전달일 자체가 없음 - 기존 예상일이 실제 전달일과 크게 다름 - 출시 준비팀이 언제 작업을 시작해야 할지 판단하기 어려움 - 넷플릭스는 축적된 제작 데이터를 활용해 일정 누락을 보완하고 예상일의 정확도를 높이려 했습니다. ## 일정 오차와 출시 지연의 관계 - 일정 부정확성을 측정하기 위해 **Accumulated Error Days(AED)**라는 지표를 만들었습니다. - AED는 예상 전달일과 실제 전달일 사이의 편차를 시간에 따라 누적한 값으로, 두 일정 곡선 사이의 면적에 해당합니다. - 출시 지연이 발생한 콘텐츠는 지연이 없는 콘텐츠보다 평균 AED가 유의미하게 높았습니다. - 특히 전달일에 가까운 마지막 기간의 AED가 출시 지연과 더 강한 상관관계를 보였습니다. - 따라서 장기적인 평균 오차뿐 아니라 출시 직전 일정이 얼마나 정확한지가 출시 리스크 관리에 중요합니다. ## 머신러닝 기반 전달일 예측 - 예측 모델은 부스티드 트리 회귀 모델로, 진행 중인 제작물에 대해 IMF 또는 Locked Cut 전달까지 남은 일수를 예측합니다. - 다음과 같은 데이터를 입력값으로 활용합니다. - 제작 진행 상황과 관련된 운영 신호 - 콘텐츠 및 타이틀 메타데이터 - 계절성 신호 - 제작 과정의 매일 업데이트된 스냅샷 데이터를 사용해, 각 날짜 시점의 제작 상태를 모델링합니다. - 이 방식의 장점은 다음과 같습니다. - 새로운 정보가 들어올 때마다 최신 예측 생성 - 제작 단계가 달라도 적용 가능한 유연한 모델 구축 - 시간에 따라 변하는 동적 특성 반영 - 수작업 일정이 없는 콘텐츠에도 항상 예측일 제공 ## 종합적인 모델 평가 지표 - 실제 전달일과 비교해 예측일의 정확도를 평가하기 위해 여러 지표를 사용했습니다. - 평균·중앙값 절대 오차(MAE 등) - 평균·중앙값 오차를 통한 과대·과소 예측 편향 - 오차 표준편차를 통한 예측 분포의 변동성 - 전달일까지 일정 기간 이상 차이 나는 큰 오차의 비율 - 수작업 일정은 전달일까지 남은 기간별로 일정이 존재하는 콘텐츠의 비율인 coverage도 측정했습니다. - 예측 모델은 항상 날짜를 제공하도록 설계되어 수작업 일정의 공백을 보완할 수 있습니다. ## 수작업 일정 대비 개선 효과 - 백테스트에서 예측 일정은 대부분의 전달 시점과 평가 지표에서 수작업 일정보다 우수했습니다. - IMF와 Locked Cut 모두에서 평균 절대 오차가 크게 감소했습니다. - 큰 오차나 이상치도 수작업 일정에서 예측 일정으로 전환했을 때 줄어들었습니다. - 예측 모델은 단순히 최종 시점의 정확도를 높이는 것뿐 아니라 더 일찍 유용한 신호를 제공합니다. - Locked Cut 전달 6개월 전부터 예측일이 수작업 일정보다 정확했던 콘텐츠 비율은 76%였습니다. - 예측 일정의 MAE는 6.1주였으며, 수작업 일정이 같은 수준에 도달하려면 전달 11주 전까지 기다려야 했습니다. - AED를 6개월 또는 더 짧은 기간에 걸쳐 계산했을 때도 예측 IMF·Locked Cut 일정이 수작업 일정 대비 AED를 낮췄습니다. - 이러한 효과는 여러 구매 조직과 콘텐츠 유형, 즉 시리즈와 단편 콘텐츠 전반에서 대체로 나타났습니다. ## 기존 업무 흐름에 예측 일정 적용 - 전달 예상일은 이미 관련 팀의 업무 과정에 포함되어 있기 때문에, 예측 날짜를 도입해도 기존 프로세스를 전면 개편할 필요가 없습니다. - 다만 수작업 일정과 예측 일정이 동시에 존재하면 어느 쪽을 더 신뢰할지 판단해야 합니다. - 예측 일정이 평균적으로 더 정확하더라도 모든 상황에서 수작업 일정을 능가하는 것은 아니므로, 두 일정의 신뢰도를 비교하고 상황별로 선택하는 운영 체계가 필요합니다. - 제공된 글은 이 문제를 해결하기 위한 후속 방식 설명 중간에서 끝나 있어, 최종 의사결정 규칙이나 운영 정책은 확인할 수 없습니다. 실무적으로는 예측일을 기존 일정의 대체재라기보다, 누락된 일정을 보완하고 위험 신호를 조기에 제공하는 계층으로 도입하는 것이 적절합니다. 특히 출시 직전 AED와 일정 오차를 지속적으로 모니터링하면 출시 지연 가능성이 높은 콘텐츠에 우선 대응할 수 있습니다.

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

글로벌 스토리텔링의 (새 탭에서 열림)

넷플릭스는 전 세계 190개국 이상에서 50개 이상의 언어로 서비스를 제공하며 급격히 성장했으나, 이 과정에서 로컬라이제이션(현지화) 분석 워크플로우가 파편화되고 파이프라인이 중복되는 기술 부채를 겪게 되었습니다. 이를 해결하기 위해 넷플릭스는 비즈니스 로직을 중앙 집중화하고 데이터 파이프라인을 통합하는 현대화 전략을 추진하여 보고의 일관성을 확보하고 운영 효율성을 높였습니다. 결과적으로 이러한 아키텍처 개선은 단순한 지표 관리를 넘어, 사용자 경험을 심층적으로 이해하고 현지화 품질을 고도화하는 기반이 되고 있습니다. **데이터 감사와 백엔드 통합 파이프라인 구축** * 기존의 40개가 넘는 대시보드와 도구를 전수 조사하여 사용성과 코드 품질을 평가하고, 프론트엔드 시각화 수정보다는 백엔드 파이프라인 통합에 집중했습니다. * 운영 성과, 생산 역량, 재무 지표 등 서로 분산되어 있던 기존의 더빙 파트너 관련 대시보드들을 하나의 통합 데이터 레이어로 병합하여 관리 효율을 극대화했습니다. * 데이터 소스를 통합함으로써 "특정 자산을 누가 제작했는가"와 같은 복잡한 질문에 대해 단일화된 답변을 제공할 수 있는 환경을 조성했습니다. **'기술 외적 부채' 해결을 통한 인사이트 도출** * 도구가 복잡하여 이해관계자들이 해석에 어려움을 겪는 '기술 외적 부채(Not-So-Tech Debt)'를 해결하기 위해 데이터 스토리텔링 방식을 개선했습니다. * 개별적으로 보고되던 오디오(더빙)와 텍스트(자막) 지표를 '소비 언어(Consumption Language)'라는 개념으로 결합하여, 사용자가 원어로 감상하는지 혹은 현지화된 콘텐츠를 선호하는지 더 직관적으로 파악할 수 있게 했습니다. * 이를 통해 자막과 더빙 중 어떤 방식을 조합했을 때 사용자의 만족도가 높은지 등 구체적인 선호도 데이터를 분석할 수 있게 되었습니다. **중앙 집중형 비즈니스 로직(Write Once, Read Many) 설계** * 로컬라이제이션 지표의 핵심 로직을 '언어 자산 생산자(Language Asset Producer)' 테이블과 같은 공유 테이블로 중앙화하여 비즈니스 로직의 중복을 제거했습니다. * 한 번 정의된 로직을 여러 하위 도메인(더빙 품질, 번역 품질 등)에서 참조하는 구조를 통해, 상위 로직이 변경될 때 모든 시스템에 즉각적으로 반영되도록 설계했습니다. * 이러한 구조적 변화는 데이터의 일관성을 보장하고, 로직 수정 시 발생하는 대규모 유지보수 부담을 획기적으로 줄여주었습니다. **이벤트 레벨 분석을 통한 세밀한 사용자 경험 최적화** * 자산 단위의 지표를 넘어, 개별 자막 줄(line) 단위의 데이터를 캡처하는 '이벤트 레벨 분석'으로 데이터 모델을 확장하고 있습니다. * 자막의 읽기 속도(reading speed)와 같은 미세한 특성이 사용자의 몰입도와 리텐션에 어떤 영향을 미치는지 정교하게 분석합니다. * 분석된 데이터를 바탕으로 번역가들에게 제공하는 스타일 가이드를 정교화하여, 전 세계 모든 사용자가 언어 장벽 없이 최상의 시청 경험을 누릴 수 있도록 지원합니다. 현대적인 데이터 분석 환경을 구축하기 위해서는 단순히 도구를 늘리는 것이 아니라, 파편화된 로직을 중앙화하고 사용자 중심의 데이터 모델로 재설계하는 과정이 필수적입니다. 넷플릭스의 사례처럼 데이터 아키텍처를 '자산' 단위에서 '이벤트' 단위로 구체화하면, 비즈니스 운영 효율화뿐만 아니라 실제 제품의 품질과 고객 경험을 직접적으로 개선하는 강력한 인사이트를 얻을 수 있습니다.

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 모델이 필요할 때 설정값만 입력하면 자동으로 수십 개의 모델이 생성되도록 자동화했습니다. * 이를 통해 데이터 엔지니어의 반복 작업을 줄이고, 분석가들이 필요할 때 즉시 공통 레이어를 확장할 수 있는 환경을 만들었습니다. 데이터를 단순히 쿼리 결과물로 보는 단계를 넘어, 시스템화된 '인프라'로 구축할 때 비로소 전사적인 데이터 활용도가 극대화됩니다. 당근의 사례처럼 상태 전이와 같은 복잡한 로직을 공통 레이어로 추상화하고 자동화한다면, 분석 효율성을 높이는 동시에 데이터 기반의 의사결정 문화를 더욱 공고히 할 수 있습니다.

toss원문

토스 피플 : 데이터를 ‘이해하는’ 구조를 설계합니다 (새 탭에서 열림)

데이터의 품질은 사후 수습이 아닌 생성 단계의 초기 설계에서 결정되며, 특히 AI 시대에는 사람뿐만 아니라 기계도 데이터의 맥락을 완벽히 이해할 수 있는 의미 기반의 구조 설계가 필수적입니다. 토스는 이를 위해 데이터의 생성부터 활용까지 전 과정을 관리하는 'End-to-End 데이터 거버넌스'를 지향하며, 개발 속도를 저해하지 않으면서도 품질을 높이는 유연한 설계 표준을 구축하고 있습니다. 결과적으로 데이터 아키텍처는 단순한 규칙 강제가 아니라 비즈니스의 빠른 변화 속에서 데이터의 정합성을 유지하고 AI와 사람이 신뢰할 수 있는 기반을 만드는 핵심적인 역할을 수행합니다. **데이터 설계의 본질과 품질 관리의 전환** * 데이터의 품질은 분석 단계에서의 정제가 아니라, 데이터가 처음 만들어지는 순간의 설계(Design)에 의해 결정됩니다. * 서비스가 빠르게 변하는 플랫폼 환경에서는 데이터 수습에 에너지를 쏟는 사후 대응보다, 데이터가 생성되는 흐름부터 구조적으로 정리하는 사전 설계가 중요합니다. * '속도'와 '품질'은 대립하는 가치가 아니며, 설계 시 미래의 변화 가능성을 고려한 유연한 기준선을 마련함으로써 두 가치 사이의 균형을 잡아야 합니다. **AI가 이해할 수 있는 의미 중심의 데이터 구조** * 현대의 데이터 아키텍처는 사람뿐만 아니라 AI가 질문하고 분석하는 시대를 대비하여 기계가 읽을 수 있는(Machine-readable) 형태로 진화해야 합니다. * 단순한 메타데이터 관리를 넘어, 데이터 간의 의미 관계를 명확히 하는 '의미 기반 표준 사전'과 '온톨로지(Ontology)'를 도입하여 AI가 맥락을 놓치지 않도록 설계합니다. * 데이터 간의 연결 고리를 명확히 설계함으로써 AI가 스스로 의미를 추론하며 발생할 수 있는 해석 오류를 줄이고 데이터의 신뢰성을 극대화합니다. **실천적인 데이터 거버넌스와 아키텍트의 역할** * 효과적인 거버넌스는 규칙을 강제하는 것이 아니라, "표준을 따르는 것이 오히려 더 편하다"고 느낄 수 있도록 자연스러운 프로세스를 설계하는 것입니다. * 비즈니스의 빠른 사이클 속에서 모든 것을 완벽하게 설계하기보다, 현재 맥락에 맞으면서도 나중에 무리 없이 정리할 수 있는 '확장성 있는 여지'를 남겨두는 전략이 필요합니다. * 데이터 아키텍트는 거창한 담론에서 시작하는 것이 아니라, 작은 구조 하나를 더 낫게 만들고 싶어 하는 데이터 엔지니어와 분석가 모두가 도달할 수 있는 전문 영역입니다. 데이터 아키텍처는 단순히 테이블 명세서를 관리하는 일이 아니라 비즈니스의 복잡도를 구조로 풀어내는 일입니다. 고품질의 데이터를 유지하면서도 개발 속도를 잃지 않으려면, 초기 설계 단계에서부터 AI와 협업할 수 있는 표준 체계를 구축하고 이를 조직 내에서 자연스럽게 수용할 수 있는 '실현 가능한 거버넌스 모델'을 고민해 보는 것이 좋습니다.