현대 데이터 플랫폼에서는 데이터만큼이나 메타데이터(metadata)의 관리가 중요해졌습니다.
데이터가 무엇인지, 어디서 왔는지, 어떻게 사용되는지를 설명하는 메타데이터는 모든 데이터 흐름의 핵심이자 품질 보장의 기반이 되기 때문입니다.
그런데, 이 메타데이터를 어디에 어떻게 저장하고 관리할 것이지에 따라 플랫폼의 구조는 크게 두 가지 방식으로 나뉩니다.
바로 SSOT(Single Source of Truth)와 Federated Metadata 방식입니다.
메타데이터(Metadata)란?
간단히 말하면, 데이터에 대한 데이터입니다.
즉, 어떤 테이블이 어떤 컬럼으로 이루어져 있고, 누가 만들었으며, 어떻게 사용되는지 등의 정보입니다.
예시:
| 컬럼 이름 | 설명 | 데이터 타입 |
| customer_id | 고객 고유 ID | VARCHAR |
| registration_date | 가입일 | DATE |
| status | 계정 상태 (active/inactive) | STRING |
SSOT (Single Source of Truth)
SSOT는 말 그대로 모든 메타데이터는 오직 한 곳에서 관리되어야한다는 철학입니다.
모든 메타데이터를 하나의 중앙 시스템에서 관리하겠다는 전략입니다.
SSOT구조에서는 이런 정보들이 하나의 기준점(ex: DataHub, Collibra 등)에 통합되어 관리됩니다.
이 기준점을 중심으로 Airflow, Snowflake, Tableau 같은 다른 시스템들이 메타데이터를 읽어오거나 참조합니다.
만약 설명을 바꾸거나 소유자를 변경해야 할 경우. 이 SSOT시스템에서 한 번만 수정하면 모든 연동된 도구들에 변경 내용이 반영됩니다.
이 처럼 SSOT는 일관성관 신뢰성이 매우 높은 구조입니다. 특히 규모가 큰 조직이나 규제산업에서는 반드시 필요한 전략이기도 합니다. 정보가 여러 시스템에 흩어져 있을 경우 생길 수 있는 메타데이터 불일치를 최소화하고, 거버넌스를 적용하기도 수월하기 때문입니다.
Federated Metadata
반면 Federated Metadata 방식은 메타데이터를 하나의 중앙에서 통제하기보다는, 각 시스템이 자율적으로 메타데이터를 소유하고 관리하는 분산 구조입니다.
예를 들어, Snowflake에서는 테이블에 대한 설명을 저장하고, Tableau에서는 해당 데이터를 시각화하며 별도의 설명과 태그를 추가합니다.
Airflow 역시 DAG 내 주석을 통해 데이터 흐름을 설명할 수 있습니다.
이런 방식은 빠르게 변화하는 조직이나, 분석가 중심의 유연한 작업 환경에서는 매우 유용합니다.
특히 스타트업이나 실험이 잦은 조직에서는, 중앙 관리 시스템에 등록하는 절차 없이 각 도구에서 바로 설명을 넣고 태깅을 할 수 있어 호율적입니다.
다만 이런 구조에서는 시스템 간 메타데이터가 서로 다를 가능성이 높아집니다. 예컨대 같은 테이블이 Tableau에서는 "회원테이블"로, Snowflake에서는 "고객 테이블"로 각가 다르게 불리는 일이 생길 수 있습니다. 이런 불일치는 사용자 입장에서는 혼란의 원이이 될 수 있습니다.
그래서 Federated 방식은 자율성과 유연성은 뛰어나지만, 일관성과 중앙 통제 면에서는 단점이 존재합니다.
그래서 뭐가 더 좋을까?

"그럼 SSOT가 더 좋은가요? 아니면 Fe
derated가 더 나은가요?"
제 생각에는 둘은 대립되는 개념이 아니라, 각기 다른 상황에 적합한 전략이라고 생각합니다.
- 조직이 커지고, 여러 팀이 협업하며 품질과 규제가 중요한 상황에서는 SSOT가 안정성과 일관성을 제공합니다.
- 작은 팀이 빠르게 변화하고, 실험 중심으로 움직여야 하는 경우에는 Federated가 훨씬 더 유연하고 실용적일 수 있습니다.
실제로 많이 조직에서 두 방식을 적절히 조합해서 사용한다고 합니다.
제가 다녔던 이전 회사역시 SSOT와 Federated를 같이 사용했었습니다.
중요한 테이블과 핵심 메타데이터는 SSOT 시스템에서 관리하고, 그 외 빠르게 변할 수 있는 설명이나 분석 목적의 정보는 각 도구에서 Federated 방식으로 자율적으로 관리하게 하는 방식입니다.
이러한 하이브리드 구조는 현실적인 타협이자, 가장 유연하고 효율적인 전략으로 자리잡고 있습니다.
데이터는 빠르게 변화하고, 이를 해석하고 활용하는 사람도 점점 다양해지고 있습니다.
그렇기에 메타데이터의 중요성은 날로 커지고 있으며, 그 관리 방식 역시 신중히 설계해야합니다.
SSOT는 기준과 정합성을,
Federated는 속도와 자율성을 줍니다.
당신의 조직이 어떤 방향으로 성장하고 있는지에 따라, 지금 필요한 전략은 다를 수 있습니다.
중요한 것은 메타데이터가 어디에 있느냐가 아니라, 모두가 이해할 수 있고, 신뢰할 수 있게 관리되고 있느냐입니다.
'Data Engineer' 카테고리의 다른 글
| Data Driven 이란? (3) | 2025.07.28 |
|---|---|
| 데이터 인프라 IaC 설계 철학: Monolithic vs Modular, 어떤 전략이 옳을까? (2) | 2025.07.21 |
| PySpark에서 NULL이 많을 때 filter가 안 먹히는 이유 (0) | 2025.04.24 |
| '정규화(Normalization)'를 과도하게 적용하면 Spark 성능이 저하될까? (0) | 2025.04.24 |
| PySpark vs. Scala Spark 어떤 언어를 선택해야할까? (0) | 2025.04.02 |
