

๐ฅ๐ฅ๐ฅ Medallion Architecture ์ ๋ฆฌ
ํ ์ค ์ ์
๐ ๋ฐ์ดํฐ๋ฅผ ํ์ง ๋จ๊ณ๋ณ๋ก ๋๋ ๊ด๋ฆฌํ๋ ์ํคํ ์ฒ ํจํด
(์๋ณธ → ์ ์ → ๋ถ์์ฉ)
์ ๋์๋๋ฉด?
- Data Lake์ ๋ฐ์ดํฐ๋ง ์์๋๋
- ๋ญ๊ฐ ๋ฏฟ์ ์ ์๋ ๋ฐ์ดํฐ์ธ์ง ๋ชจ๋ฅด๊ฒ ๊ณ
- ๋ค์ ์ฒ๋ฆฌํ๊ธฐ๋ ํ๋ค๊ณ
- ํ ์ปค์ง์๋ก ํผ๋
๊ทธ๋์ Databricks ์ชฝ์์
๐ “๋จ๊ณ๋ณ๋ก ์ฑ ์์ ๋๋์” ํ๊ณ ์ ๋ฆฌํ ๊ฐ๋
์ ์ฒด ๊ตฌ์กฐ (ํต์ฌ)
๐ฅ Bronze → ๐ฅ Silver → ๐ฅ Gold
์๋ณธ ์ ์ ๋ถ์/๋น์ฆ๋์ค
๐ฅ Bronze (Raw / ์๋ณธ)
์ญํ
- ๋ฐ์ดํฐ ์๋ ๊ทธ๋๋ก ๋ณด๊ด
- ์ฌ์ฒ๋ฆฌ(backfill) ๋๋น
ํน์ง
- CSV / JSON / ๋ก๊ทธ
- ์ค๋ณต, null ์์ด๋ OK
- append-only
ํ ์ค ์์ฝ
๐ “์๋์ง ์์ ์๋ณธ ๊ธ๊ณ ”
๐ฅ Silver (Clean / DW Core)
์ญํ
- ์ฌ๋์ด ์ดํด ๊ฐ๋ฅํ ๋ฐ์ดํฐ๋ก ์ ๋ฆฌ
- DW์ ํต์ฌ ์์ญ
์ฃผ์ ์์
- ํ์ ์บ์คํ
- ์ปฌ๋ผ๋ช ์ ๋ฆฌ
- null / ์ค๋ณต ์ฒ๋ฆฌ
- ๊ธฐ๋ณธ ํ์ง ๊ฒ์ฆ (GE, dbt test)
ํ ์ค ์์ฝ
๐ “์ ๋ขฐ ๊ฐ๋ฅํ ํ์ค ๋ฐ์ดํฐ”
๐ฅ Gold (Serve / DM)
์ญํ
- ๋ฐ๋ก ์จ๋จน๋ ๋ฐ์ดํฐ
- ๋ถ์, ๋์๋ณด๋, KPI
ํน์ง
- Fact / Dimension
- ์ง๊ณ ์๋ฃ
- BI, ML ์ง๊ฒฐ
ํ ์ค ์์ฝ
๐ “๋น์ฆ๋์ค ์ง๋ฌธ์ ๋ฐ๋ก ๋ต ๋์ค๋ ๋ฐ์ดํฐ”
Medallion์ ๋ญ๊ฐ ์๋๋?
โ ๋ชจ๋ธ๋ง ๊ธฐ๋ฒ ์๋
โ ํน์ ๋๊ตฌ ์๋
๐ **์ด์ ๊ตฌ์กฐ(ํจํด)**์
- Kimball / Inmon → ์ด๋ป๊ฒ ๋ชจ๋ธ๋งํ ๊น
- Medallion → ์ด๋๊น์ง ์ ์ ๋ ๋ฐ์ดํฐ์ธ๊ฐ
์ค๋ฌด์์ ์ ์ผ ํํ ๋งคํ
Bronze : GCS / S3 raw, parquet
Silver : dbt staging / intermediate
Gold : dbt marts (fact / dim)
๐ dbt๋ ๋ณดํต Silver~Gold ๋ด๋น
์ฅ์ ํ ๋ฐฉ์ ์ ๋ฆฌ
- ๋ฌธ์ ์๊ธฐ๋ฉด ๋จ๊ณ๋ณ ์ถ์ ๊ฐ๋ฅ
- ์ฌ์ฒ๋ฆฌ ์ฌ์
- ์ญํ ๋ถ๋ฆฌ ๋ช ํ
- ํ ์ปค์ ธ๋ ์ ๋ฌด๋์ง
๋ฉด์ ์ฉ 20์ด ๋ต๋ณ (์ด๊ฑฐ ์ธ์๋ ๋จ)
“Medallion Architecture๋ ๋ฐ์ดํฐ๋ฅผ
Bronze–Silver–Gold ๋จ๊ณ๋ก ๋๋
ํ์ง๊ณผ ์ฑ ์์ ๋ถ๋ฆฌํ๋ ์ด์ ํจํด์ ๋๋ค.
Bronze๋ ์๋ณธ ๋ณด์กด,
Silver๋ ์ ์ ๋ DW ์ฝ์ด,
Gold๋ ๋ถ์์ฉ ๋ฐ์ดํฐ ๋งํธ ์ญํ ์ ํฉ๋๋ค.”
๋ค๊ฐ ๋ง๋ ๊ตฌ์กฐ๋ ์ฐ๊ฒฐํ๋ฉด
๐ ๋ค๊ฐ ํ ๊ฒ ๋ฐ๋ก Medallion Architecture์ ์ ์ ๊ตฌํ
- GCS raw → ๐ฅ Bronze
- dbt staging → ๐ฅ Silver
- dbt marts → ๐ฅ Gold
๋ง์ง๋ง ํต์ฌ ๋ฌธ์ฅ
๐ Medallion Architecture =“๋ฐ์ดํฐ ์ ๋ขฐ๋๋ฅผ ๋จ๊ณ๋ก ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ”
'DataEngineering > Architecture' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ๐ฆ Partition & ๐งฒ Clustering ์ ๋ฆฌ (0) | 2026.01.30 |
|---|---|
| DW / DM ๊ตฌ์ถ ์ฒดํฌ๋ฆฌ์คํธ (0) | 2026.01.30 |