이 문서는 레이크하우스 아키텍처 섹션의 일부입니다.
Medallion 아키텍처란?
💡 Medallion(메달리온) 아키텍처 는 데이터를 품질과 가공 수준에 따라 Bronze(원본), Silver(정제), Gold(집계) 세 계층으로 나누어 관리하는 데이터 설계 패턴입니다.동메달(Bronze)부터 금메달(Gold)로 갈수록 데이터의 품질과 비즈니스 가치가 높아집니다.
출처: Databricks 공식 문서 — Medallion Architecture
왜 Medallion 아키텍처가 필요한가요?
단일 테이블로 원본 수집과 정제, 집계를 한 번에 처리하면 간단해 보이지만, 프로덕션 환경에서는 반드시 문제가 발생합니다. Medallion 아키텍처는 이러한 현실적 문제들을 해결하기 위해 설계된 패턴입니다.1. 장애 격리와 역추적 (Fault Isolation & Traceability)
데이터 파이프라인에서 문제가 발생하면, 어느 단계에서 무엇이 잘못되었는지 를 빠르게 파악해야 합니다. 단일 테이블 구조에서는 원본과 변환 결과가 뒤섞여 있어 원인 추적이 거의 불가능합니다.💡 핵심: 각 계층이 독립적이므로, 문제가 발생한 계층만 재처리하면 됩니다. Silver에 버그가 있으면 Silver만 다시 돌리면 Gold가 자동으로 정상화됩니다. Bronze는 건드릴 필요가 없습니다.
2. 테이블 재생성 (Reprocessing & Rebuild)
프로덕션 데이터 파이프라인에서 “처음부터 다시 만들어야 하는 상황” 은 생각보다 자주 발생합니다.
Medallion이 없으면: 소스 시스템에서 데이터를 다시 추출해야 합니다. 그러나 소스 시스템은 영구 보관하지 않는 경우가 많습니다 (CDC binlog 만료, API 페이징 한계, SaaS 데이터 보존 정책 등).
Medallion이 있으면: Bronze에 원본이 보존되어 있으므로, Silver/Gold만 재처리하면 됩니다. 소스 시스템에 접근할 필요가 없습니다.
3. 컴퓨트 비용 최적화 (Compute Cost Reduction)
클라우드에서 스토리지는 싸고, 컴퓨트는 비쌉니다. 데이터를 미리 가공해두면 조회할 때마다 복잡한 변환을 반복하지 않아도 됩니다.💡 스토리지 추가 비용(1,435/월 절감합니다. 대시보드 사용자가 늘어날수록 이 차이는 더 벌어집니다. Gold 테이블은 이미 집계가 완료되어 있으므로, 100명이 동시에 조회해도 비용이 거의 동일합니다.
4. 관심사의 분리 (Separation of Concerns)
각 계층이 명확한 책임 을 가지므로, 팀 간 역할 분리가 자연스럽게 이루어집니다.
이 구조의 장점은 Gold 계층을 자유롭게 수정해도 Bronze/Silver에 영향이 없다 는 것입니다. 마케팅 팀이 새로운 KPI 테이블을 요청하면, Silver에서 새로운 Gold를 만들기만 하면 됩니다. 기존 파이프라인을 건드릴 필요가 없습니다.
5. 다목적 재사용 (Multi-Purpose Reuse)
하나의 Silver 테이블에서 목적이 다른 여러 Gold 테이블 을 생성할 수 있습니다.
Silver 정제 로직은 한 번만 작성하고, Gold는 소비자별로 다양하게 만듭니다. 이렇게 하면 정제 로직의 중복을 방지하면서도 각 팀의 요구를 독립적으로 충족할 수 있습니다.
6. 감사 및 규정 준수 (Audit & Compliance)
금융, 의료, 공공 분야에서는 “원본 데이터를 변경 없이 보관하라” 는 규제 요건이 있습니다.각 계층의 역할
🥉 Bronze Layer (원본 데이터 계층)
💡 왜 원본을 보존해야 하나요? 나중에 변환 로직에 오류가 발견되더라도, 원본이 있으면 처음부터 다시 정제할 수 있습니다. 원본 없이 변환된 데이터만 있으면, 소스 시스템에 다시 요청해야 하는데 이미 삭제되었거나 변경되었을 수 있습니다.
🥈 Silver Layer (정제된 데이터 계층)
💡 정규화(Normalization)란? 데이터를 중복 없이 효율적으로 저장하기 위해 테이블을 분리하고 관계를 정의하는 과정입니다. 예를 들어, 주문 테이블에 고객 이름을 직접 넣는 대신, 고객 ID만 저장하고 고객 테이블을 별도로 만드는 것입니다. 이렇게 하면 고객 이름이 변경되어도 한 곳만 수정하면 됩니다.
🥇 Gold Layer (비즈니스 집계 계층)
💡 비정규화(Denormalization)란? 정규화의 반대 개념입니다. 분석 성능을 위해 의도적으로 데이터를 중복 저장합니다. 예를 들어, 고객 360 뷰에서는 고객 정보와 주문 집계를 하나의 넓은 테이블에 미리 합쳐 놓아, 조인 없이 빠르게 조회할 수 있습니다.
전체 흐름 다이어그램
전체 흐름:
출처: Databricks Docs
계층 간 비교
모범 사례
네이밍 컨벤션
일관된 이름 규칙을 사용하면 테이블의 계층을 쉽게 식별할 수 있습니다.
Databricks에서는 Unity Catalog의 3-Level 네임스페이스(Catalog → Schema → Table) 를 활용하여 계층을 체계적으로 관리하는 것을 권장합니다.
권한 관리
정리
다음 문서에서는 Delta Lake의 실전 조작법(MERGE, OPTIMIZE, VACUUM 등)을 자세히 살펴보겠습니다.