복잡한 시스템 속에서 데이터 모델이 제각각이라면, 협업은 어렵고 데이터 품질은 떨어집니다. 넷플릭스는 이러한 문제를 해결하기 위해 'UDA(Unified Data Architecture)'라는 통합 데이터 아키텍처를 도입했습니다.
이 블로그에서는 넷플릭스가 왜 UDA를 만들었는지, 그것이 어떻게 작동하는지, 실제로 어떤 문제를 해결하고 있는지를 알아봅니다. 아키텍처 개념부터 실제 적용 사례까지 전체 흐름을 따라가며, UDA가 단순히 기술적 시스템이 아니라 데이터 협업 방식을 바꾸는 전환점임을 설명합니다.
시스템마다 다른 ‘actor’와 ‘movie’가 만드는 혼란
넷플릭스는 영화, 시리즈, 게임, 라이브 이벤트, 광고 등 다양한 콘텐츠 서비스를 운영하고 있습니다. 이처럼 확장된 비즈니스는 필연적으로 다양한 시스템을 요구합니다. 문제는 각 시스템이 동일한 비즈니스 개념을 제각각 정의하면서 시작됩니다.
예를 들어, ‘actor’나 ‘movie’라는 개념이 콘텐츠 플랫폼, 자산 관리 시스템, 미디어 컴퓨팅 시스템 등에서 서로 다르게 설계되고, 협업 없이 개별적으로 운용되는 겁니다. 이로 인해 다음과 같은 문제가 발생합니다.
- 중복 및 불일치 모델
- 용어 불일치로 인한 커뮤니케이션 오류
- 마이크로서비스 간 데이터 품질 문제
- 시스템 간 연결성 부족
결국 데이터를 어디서 어떻게 가져와야 하는지 모르는 상황이 반복되고, 이는 개발자뿐만 아니라 비즈니스 사용자에게도 큰 혼란을 줍니다.
UDA란 무엇인가?
UDA(Unified Data Architecture)는 넷플릭스의 콘텐츠 엔지니어링 팀이 구축한 데이터 연결성 중심의 플랫폼입니다. 목표는 간단합니다. 도메인 개념을 한 번 정의해서, 모든 시스템에 일관되게 연결하고 자동화하는 것입니다.
이 플랫폼은 시맨틱 기술 기반의 지식 그래프를 활용하여, 도메인 모델에서부터 실제 데이터 저장 위치까지 하나의 구조로 연결합니다. 핵심은 **“모델을 한 번만 정의하고, 어디서든 활용하자”**는 접근입니다.
UDA 아키텍처의 핵심 구성요소
1. Knowledge Graph
UDA는 RDF/SHACL 기반의 지식 그래프 위에 구축되었습니다. 이 그래프는 도메인 모델, 스키마, 데이터 컨테이너, 매핑 정보 등을 하나의 구조로 연결하며, 각 정보는 '명명된 그래프(named graph)' 단위로 관리됩니다. 이 구조를 통해 일관된 해석과 모듈화, 거버넌스를 가능하게 만듭니다.
2. Upper 메타모델
‘Upper’는 UDA의 핵심 언어입니다. 이는 각 도메인의 주요 개체와 속성을 엄격하게 정의하며, RDF 기반으로 모델링, 검색, 버전 관리가 가능합니다. 특징은 다음과 같습니다.
- 도메인에 맞는 맞춤 속성 값 표현
- Upper 자체도 Upper로 모델링된 자기참조 구조
- Jena 기반 Java API 및 GraphQL 스키마 자동 생성 가능
시맨틱 웹 개념에 익숙하지 않아도 효과적으로 도메인 모델링이 가능한 것이 강점입니다.
3. 데이터 컨테이너 및 매핑
여기서 말하는 데이터 컨테이너는 실제 데이터를 담고 있는 저장소입니다. 예를 들면 GraphQL의 엔티티, Iceberg의 테이블, Avro 레코드 등이 여기에 해당합니다. UDA는 도메인 모델의 개념을 이 실제 컨테이너와 일대일로 매핑시킵니다.
이를 통해,
- 데이터의 실제 위치를 추적하거나
- 반대로 데이터를 통해 어떤 비즈니스 개념에 연결되는지
를 쉽게 파악할 수 있습니다. 이 매핑을 기반으로 데이터 흐름과 변환도 시스템이 자동으로 처리합니다.
4. Projections: 자동 스키마 변환
UDA는 도메인 모델을 기반으로 GraphQL, Avro, SQL, Java 등 다양한 시스템용 스키마를 자동 생성합니다. 이 과정을 통해 코드, 파이프라인, API를 자동화하면서도 일관된 구조를 유지할 수 있습니다. 즉, 스키마를 중복해서 정의할 필요가 없어집니다.
실제 적용 사례
PDM (Primary Data Management)
PDM은 참조 데이터와 분류 체계를 관리하는 플랫폼입니다. 도메인 모델을 입력하면, 이 모델을 기반으로 UI와 GraphQL API, 데이터 파이프라인이 자동으로 생성됩니다. SKOS 모델 기반으로 일관된 비즈니스 용어 정의가 가능하며, 데이터 생성에서 활용까지 전 과정을 자동화합니다.
Sphere (Operational Reporting)
Sphere는 비즈니스 사용자를 위한 자가 서비스 리포팅 도구입니다. 기술적 쿼리 지식 없이도 원하는 데이터를 탐색하고 리포트를 만들 수 있게 해줍니다. 친숙한 용어(예: ‘actor’, ‘movie’)로 검색하면, UDA의 지식 그래프를 따라 자동으로 SQL 쿼리가 생성됩니다. 별도의 조인 조건 없이도 원하는 데이터를 빠르게 얻을 수 있습니다.
UDA가 바꾸는 데이터 협업의 미래
Netflix의 UDA는 단지 기술 시스템의 개선이 아니라, 조직 전체의 데이터 협업 방식을 근본적으로 바꾸고 있습니다. 다음과 같은 변화가 가능합니다.
- 중복 없는 도메인 모델로 시스템 간 연결성 확보
- 실제 데이터와 구조적 통합을 통한 신뢰도 향상
- 자동화된 스키마 변환으로 개발 생산성 향상
- 비즈니스 사용자 중심의 데이터 탐색 환경 제공
넷플릭스는 앞으로 UDA의 적용 범위를 더 넓힐 계획입니다. gRPC/Protobuf 지원, 지식 그래프와 실제 데이터의 직접 연결 등도 포함됩니다.
데이터가 많다고 좋은 시스템은 아닙니다. 핵심은 데이터를 신뢰할 수 있고, 어디서든 쉽게 활용할 수 있도록 만드는 것입니다. Netflix의 UDA는 이 문제를 구조적으로 해결하는 하나의 방법입니다.
지금 데이터 모델의 중복, 불일치, 협업 혼선에 고민이 있다면, UDA는 그 해답이 될 수 있습니다. 한 번의 모델링으로 모든 시스템이 연결되는 환경. 그것이 바로 Netflix가 지향하는 데이터의 미래입니다.
https://netflixtechblog.com/uda-unified-data-architecture-6a6aee261d8d
Model Once, Represent Everywhere: UDA (Unified Data Architecture) at Netflix
Introducing UDA, the knowledge-graph-based architecture that translates conceptual domain models into consistent schemas and data…
netflixtechblog.com
'빅데이터' 카테고리의 다른 글
Elasticsearch와 ClickHouse를 넘어서는 옵저버빌리티 엔진은? Apache Doris의 압도적 선택지 (0) | 2025.06.20 |
---|---|
AI 시대, 실시간 동기화의 해답: ElectricSQL로 구축하는 로컬 우선 데이터 인프라 (0) | 2025.06.19 |
Apache Iceberg 1.9.0, 왜 지금 주목해야 할까? (0) | 2025.06.17 |
SQL로 Spark를 쉽게? Apache Kyuubi가 답입니다 (0) | 2025.06.15 |
실시간 로그 수집의 핵심, Fluent Bit란 무엇인가? (0) | 2025.06.01 |