> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sifi.life/llms.txt
> Use this file to discover all available pages before exploring further.

# Marketplace

> 이 문서는 **[Unity Catalog](/training/07-unity-catalog/overview)** 섹션의 일부입니다.

## Marketplace란?

> 💡 **Databricks Marketplace** 는 데이터, AI 모델, 노트북 등의 **데이터 제품을 검색하고 공유할 수 있는 개방형 마켓플레이스** 입니다. 마치 앱스토어에서 앱을 다운로드하듯, 필요한 데이터 제품을 클릭 한 번으로 자신의 Unity Catalog에 추가할 수 있습니다.

### 왜 Marketplace가 필요한가요?

데이터 기반 의사결정을 위해서는 **내부 데이터만으로는 부족한 경우** 가 많습니다. 외부 데이터(날씨, 인구통계, 금융 시장 데이터 등)를 결합하면 분석의 깊이가 달라집니다.

| 기존 방식            | 고려사항                         |
| ---------------- | ---------------------------- |
| **데이터 브로커와 계약**  | 협상 기간이 길고, 계약 절차가 복잡합니다      |
| **공개 데이터셋 다운로드** | 수동 다운로드, 포맷 변환, 적재 과정이 필요합니다 |
| **API 연동 개발**    | 개발 비용과 유지보수 부담이 큽니다          |
| **파일 전송**        | 데이터 최신성 보장이 어렵고, 보안 위험이 있습니다 |

Databricks Marketplace는 이 과정을 혁신적으로 단순화합니다.

| Marketplace 장점 | 설명                                   |
| -------------- | ------------------------------------ |
| **즉시 접근**      | 클릭 한 번으로 데이터가 Unity Catalog에 나타납니다   |
| **데이터 복사 없음**  | Delta Sharing 기반으로 원본 데이터를 직접 읽습니다   |
| **항상 최신**      | 제공자가 데이터를 갱신하면 소비자도 최신 데이터를 봅니다      |
| **거버넌스 적용**    | Unity Catalog의 권한, 리니지 추적이 그대로 적용됩니다 |
| **다양한 제품**     | 테이블, 볼륨, ML 모델, 노트북까지 공유 가능합니다       |

***

## 데이터 제품 유형

Marketplace에서 공유할 수 있는 제품 유형은 다음과 같습니다.

| 제품 유형               | 설명                       | 예시                          |
| ------------------- | ------------------------ | --------------------------- |
| **테이블 (Tables)**    | Delta 테이블 형태의 구조화된 데이터   | 날씨 데이터, 인구통계, 금융 지표         |
| **볼륨 (Volumes)**    | 파일 형태의 비정형 데이터           | 이미지 데이터셋, PDF 문서 모음, 지도 데이터 |
| **모델 (Models)**     | Unity Catalog에 등록된 ML 모델 | 감성 분석 모델, 이미지 분류 모델         |
| **노트북 (Notebooks)** | 분석 코드 및 튜토리얼             | 데이터 탐색 가이드, 모델 학습 예제        |

***

## 데이터 소비자로서 활용

### 리스팅 검색 및 탐색

Marketplace에 접속하면 다양한 **리스팅(Listing)** 을 카테고리, 키워드, 제공자별로 검색할 수 있습니다.

1. Databricks Workspace 좌측 메뉴에서 **Marketplace** 를 클릭합니다
2. 카테고리(산업별, 데이터 유형별)를 탐색하거나 키워드로 검색합니다
3. 리스팅 상세 페이지에서 **데이터 미리보기, 스키마, 갱신 주기** 등을 확인합니다

### 데이터 구독 (Get Access)

```
리스팅 상세 페이지 → "Get Access" 버튼 클릭
  → 무료 리스팅: 즉시 접근 권한 부여
  → 유료 리스팅: 제공자에게 접근 요청 전송
  → 승인 후: Unity Catalog에 공유 카탈로그가 나타남
```

### 구독한 데이터 사용

구독이 완료되면 Unity Catalog에 **읽기 전용 카탈로그** 가 자동으로 생성됩니다.

```sql theme={null}
-- Marketplace에서 구독한 날씨 데이터 조회
SELECT *
FROM weather_provider.public.daily_weather
WHERE city = 'Seoul'
  AND date >= '2025-01-01'
LIMIT 100;

-- 내부 데이터와 조인하여 분석
SELECT
    s.store_id,
    s.daily_sales,
    w.temperature,
    w.precipitation
FROM catalog.schema.store_sales s
JOIN weather_provider.public.daily_weather w
    ON s.date = w.date AND s.city = w.city;
```

### 소비자 활용 팁

| 팁            | 설명                                 |
| ------------ | ---------------------------------- |
| **미리보기 확인**  | 구독 전에 샘플 데이터와 스키마를 반드시 확인합니다       |
| **갱신 주기 확인** | 데이터가 얼마나 자주 업데이트되는지 확인합니다          |
| **라이선스 확인**  | 상업적 사용 가능 여부, 재배포 제한 등을 검토합니다      |
| **비용 확인**    | 유료 리스팅의 경우 가격 모델(건당, 월정액 등)을 확인합니다 |

***

## 데이터 제공자로서 공유

### 리스팅 생성 절차

데이터를 Marketplace에 공유하려면 **Provider 프로필** 을 먼저 설정해야 합니다.

| 단계 | 작업                  | 상세                                    |
| -- | ------------------- | ------------------------------------- |
| 1  | **Provider 프로필 생성** | 조직명, 설명, 로고, 연락처를 등록합니다               |
| 2  | **Share 생성**        | 공유할 테이블/볼륨을 Delta Sharing Share로 묶습니다 |
| 3  | **리스팅 생성**          | 제목, 설명, 카테고리, 샘플 데이터 등을 작성합니다         |
| 4  | **가격 설정**           | 무료 또는 유료 (가격 협의) 모델을 선택합니다            |
| 5  | **게시**              | 리스팅을 퍼블릭 또는 프라이빗으로 게시합니다              |

### Share 생성 (데이터 준비)

```sql theme={null}
-- 1. Share 생성
CREATE SHARE IF NOT EXISTS marketplace_weather_data
COMMENT 'Marketplace에서 공유할 날씨 데이터';

-- 2. 테이블 추가
ALTER SHARE marketplace_weather_data
ADD TABLE gold.daily_weather;

ALTER SHARE marketplace_weather_data
ADD TABLE gold.hourly_weather;

-- 3. 볼륨 추가 (선택)
ALTER SHARE marketplace_weather_data
ADD VOLUME raw.weather_images;
```

### 리스팅 생성 (UI)

Marketplace 관리 페이지에서 다음 정보를 입력합니다.

| 필드         | 설명                      | 예시                                |
| ---------- | ----------------------- | --------------------------------- |
| **제목**     | 리스팅의 이름                 | "Korea Daily Weather Data"        |
| **설명**     | 데이터의 내용, 범위, 활용 사례      | "2010년부터 현재까지 한국 주요 도시 일별 날씨 데이터" |
| **카테고리**   | 산업/도메인 분류               | Weather & Environment             |
| **Share**  | 연결할 Delta Sharing Share | marketplace\_weather\_data        |
| **샘플 노트북** | 활용 예제 노트북 (선택)          | weather\_analysis\_example.py     |
| **갱신 주기**  | 데이터 업데이트 빈도             | Daily                             |
| **가격**     | 무료 또는 가격 협의             | Free / Contact for pricing        |

***

## 퍼블릭 vs 프라이빗 마켓플레이스

| 비교 항목         | 퍼블릭 마켓플레이스               | 프라이빗 마켓플레이스             |
| ------------- | ------------------------ | ----------------------- |
| **접근 범위**     | 모든 Databricks 사용자가 검색 가능 | 같은 조직(Account) 내부에서만 접근 |
| **사용 목적**     | 외부 데이터 판매/공유             | 내부 팀 간 데이터 공유           |
| **승인 절차**     | 제공자 승인 필요 (유료 시)         | 조직 정책에 따름               |
| **대표 사용 사례**  | 데이터 벤더가 고객에게 데이터 제공      | 부서 간 데이터 카탈로그           |
| **리스팅 공개 범위** | 인터넷에서 검색 가능              | 조직 내부에서만 표시             |

### 프라이빗 마켓플레이스 활용 예시

대기업에서 **각 부서가 자신의 데이터를 다른 부서에 공유** 할 때 프라이빗 마켓플레이스가 유용합니다.

| 제공 부서 | 데이터 제품       | 소비 부서     |
| ----- | ------------ | --------- |
| 마케팅팀  | 고객 세그먼트 데이터  | 영업팀, 제품팀  |
| 재무팀   | 월별 재무 보고 데이터 | 경영진, 전략팀  |
| 데이터팀  | 정제된 Gold 테이블 | 분석팀, ML팀  |
| ML팀   | 학습된 예측 모델    | 운영팀, 마케팅팀 |

***

## Delta Sharing과의 관계

Marketplace는 내부적으로 **Delta Sharing** 을 기반으로 동작합니다.

| 기능        | Delta Sharing             | Marketplace              |
| --------- | ------------------------- | ------------------------ |
| **공유 방식** | 수동으로 Recipient 생성 및 권한 부여 | 리스팅을 통해 셀프서비스 구독         |
| **검색/탐색** | 불가 (URL/식별자 직접 공유)        | 카테고리, 키워드 검색 가능          |
| **메타데이터** | 최소한의 정보                   | 상세 설명, 샘플, 스키마, 갱신 주기    |
| **가격 모델** | 없음 (직접 협의)                | 내장 가격 설정                 |
| **프로필**   | 없음                        | Provider 프로필 (조직 정보, 로고) |

> 💡 **Delta Sharing은 인프라, Marketplace는 경험**: Delta Sharing이 데이터 공유의 기술적 기반을 제공한다면, Marketplace는 그 위에 **검색, 구독, 가격 책정** 같은 사용자 경험을 추가한 것입니다.

***

## 모범 사례

### 소비자

| 항목             | 권장 사항                        |
| -------------- | ---------------------------- |
| **데이터 품질 확인**  | 구독 전 샘플 데이터와 스키마를 검토합니다      |
| **갱신 주기 모니터링** | 기대한 주기로 데이터가 갱신되는지 확인합니다     |
| **라이선스 준수**    | 상업적 이용, 재배포 등 라이선스 조건을 준수합니다 |
| **비용 관리**      | 유료 데이터의 사용량과 비용을 정기적으로 검토합니다 |

### 제공자

| 항목          | 권장 사항                                |
| ----------- | ------------------------------------ |
| **상세한 설명**  | 데이터의 범위, 포맷, 갱신 주기, 활용 사례를 명확히 기술합니다 |
| **샘플 노트북**  | 데이터 활용 예제를 제공하면 구독률이 높아집니다           |
| **안정적 갱신**  | 공지한 주기대로 데이터를 갱신합니다                  |
| **스키마 안정성** | 스키마 변경 시 사전에 소비자에게 공지합니다             |
| **품질 보증**   | 데이터 품질을 주기적으로 검증합니다                  |

***

## 데이터 제품 설계 전략

Marketplace에서 성공적으로 데이터를 제공하려면, 단순히 테이블을 공유하는 것을 넘어 **데이터 제품(Data Product)** 관점에서 설계해야 합니다.

### 데이터 제품의 구성 요소

| 구성 요소      | 설명                       | 예시                                |
| ---------- | ------------------------ | --------------------------------- |
| **핵심 데이터** | 소비자가 실제로 사용하는 테이블/볼륨     | `daily_weather`, `hourly_weather` |
| **메타데이터**  | 스키마, 데이터 사전, 갱신 주기, 커버리지 | "2010\~현재, 한국 256개 관측소, 일별"       |
| **샘플 노트북** | 데이터 활용 방법을 보여주는 예제 코드    | 날씨-매출 상관분석 노트북                    |
| **SLA 문서** | 데이터 갱신 보장, 가용성, 지원 채널    | "매일 06:00 UTC까지 갱신, 99.5% 가용성"    |
| **변경 로그**  | 스키마 변경, 데이터 범위 변경 이력     | "v2.0: precipitation\_mm 컬럼 추가"   |

### 소비자 중심 스키마 설계

| 원칙               | 설명                 | 예시                                           |
| ---------------- | ------------------ | -------------------------------------------- |
| **직관적 컬럼명**      | 약어 대신 명확한 이름 사용    | `temp_avg_c` → `average_temperature_celsius` |
| **표준 데이터 타입**    | 범용적으로 사용 가능한 타입    | 날짜는 `DATE`, 타임스탬프는 `TIMESTAMP`               |
| **파티션 키 제공**     | 효율적인 쿼리를 위한 파티션    | `date`, `region` 파티션으로 불필요한 스캔 방지            |
| **문서화된 NULL 정책** | NULL 값의 의미를 명확히 기술 | "precipitation이 NULL이면 관측 데이터 없음"            |
| **버전 관리**        | 스키마 변경 시 하위 호환 유지  | 새 컬럼 추가는 OK, 기존 컬럼 삭제/변경 시 사전 공지             |

***

## 가격 모델 설계

### Marketplace 가격 유형

| 가격 모델               | 설명                     | 적합한 경우                         |
| ------------------- | ---------------------- | ------------------------------ |
| **무료 (Free)**       | 누구나 즉시 접근 가능           | 공공 데이터, 오픈 데이터, 마케팅 목적의 샘플 데이터 |
| **유료 - 고정 가격**      | 월/연 정액 구독              | 정기적으로 갱신되는 프리미엄 데이터셋           |
| **유료 - 가격 협의**      | "Contact for pricing"  | 기업 고객 대상, 대규모 라이선스, 커스텀 데이터 제공 |
| **프리미엄 (Freemium)** | 기본 데이터는 무료, 고급 데이터는 유료 | 무료로 유입 → 유료로 전환하는 퍼널 전략        |

### 가격 책정 시 고려 요소

| 요소            | 설명                                      |
| ------------- | --------------------------------------- |
| **데이터 수집 비용** | 원본 데이터를 수집, 정제, 유지하는 데 드는 비용            |
| **고유성**       | 다른 곳에서 구할 수 없는 데이터인가? (희소성이 높을수록 높은 가격) |
| **갱신 빈도**     | 실시간/일별/월별. 빈번한 갱신은 더 높은 가치              |
| **과거 데이터 깊이** | 10년치 vs 1년치. 긴 이력은 ML 학습에 더 유용          |
| **경쟁사 가격**    | 유사 데이터셋의 시장 가격 벤치마크                     |

***

## 데이터 품질 보증 패턴

데이터 제품의 신뢰성은 구독 유지율에 직결됩니다.

### 품질 보증 파이프라인

```python theme={null}
# 데이터 품질 검증 후 Share에 반영하는 파이프라인 예시
from pyspark.sql import functions as F

# 1. 원본 데이터 적재
df_raw = spark.table("bronze.weather_raw")

# 2. 데이터 품질 검증
quality_checks = {
    "null_check": df_raw.filter(F.col("temperature").isNull()).count() / df_raw.count() < 0.05,
    "range_check": df_raw.filter((F.col("temperature") < -60) | (F.col("temperature") > 60)).count() == 0,
    "freshness_check": df_raw.agg(F.max("observation_date")).collect()[0][0] >= (datetime.today() - timedelta(days=1)),
    "completeness_check": df_raw.select("city").distinct().count() >= 250,
}

# 3. 모든 검증 통과 시에만 Gold 테이블 갱신
if all(quality_checks.values()):
    df_raw.write.mode("overwrite").saveAsTable("gold.daily_weather")
    print("데이터 품질 검증 통과. Share 갱신 완료.")
else:
    failed = [k for k, v in quality_checks.items() if not v]
    raise Exception(f"데이터 품질 검증 실패: {failed}. Share 갱신 중단.")
```

### 품질 SLA 정의 예시

| SLA 항목  | 기준                       | 측정 방법                    |
| ------- | ------------------------ | ------------------------ |
| **완전성** | NULL 비율 5% 미만            | 주요 컬럼의 NULL 카운트 / 전체 행 수 |
| **정확성** | 유효 범위 내 값 99%+           | 도메인 규칙 기반 이상치 탐지         |
| **신선도** | 매일 06:00 UTC까지 전일 데이터 반영 | 최신 레코드 날짜 모니터링           |
| **가용성** | 월 99.5% 이상               | Share 접근 가능 시간 / 총 시간    |

***

## 리스팅 최적화 (검색 SEO)

Marketplace에서 리스팅이 검색 상위에 노출되려면 다음을 최적화해야 합니다.

| 최적화 항목     | 권장 사항              | 이유                                                                                    |
| ---------- | ------------------ | ------------------------------------------------------------------------------------- |
| **제목**     | 핵심 키워드 포함, 20\~60자 | "Korea Weather Data" → "South Korea Daily Weather Data - 256 Stations (2010-Present)" |
| **설명**     | 첫 2문장에 핵심 가치 요약    | 검색 결과에서 첫 부분만 표시됩니다                                                                   |
| **카테고리**   | 가장 구체적인 카테고리 선택    | 범용 카테고리보다 세부 카테고리가 노출률 높음                                                             |
| **샘플 데이터** | 풍부한 미리보기 제공        | 소비자가 구독 전 데이터 가치를 판단합니다                                                               |
| **샘플 노트북** | 2\~3개의 활용 예제 포함    | 구독 전환율을 30%+ 높일 수 있습니다                                                                |
| **갱신 이력**  | 정기적 갱신 기록          | 활성화된 리스팅이 검색에서 우선됩니다                                                                  |

***

## Marketplace vs 직접 Delta Sharing 비교

둘 다 데이터 공유 메커니즘이지만, 사용 시나리오가 다릅니다.

| 비교 항목               | Marketplace                  | 직접 Delta Sharing                                 |
| ------------------- | ---------------------------- | ------------------------------------------------ |
| **대상**              | 불특정 다수 (퍼블릭) 또는 조직 내부 (프라이빗) | 특정 파트너/고객                                        |
| **발견 가능성**          | 검색, 카테고리 탐색                  | 수동으로 Share URL 공유 필요                             |
| **셀프서비스**           | 소비자가 직접 구독 신청                | 제공자가 Recipient를 수동 생성                            |
| **가격 책정**           | 내장 가격 설정 UI                  | 별도 계약 필요                                         |
| **비 Databricks 소비** | Marketplace는 Databricks 사용자만 | Delta Sharing은 Pandas, Spark, Power BI 등에서 소비 가능 |
| **메타데이터**           | 풍부한 설명, 샘플, 갱신 주기            | 최소한의 메타데이터                                       |
| **관리 부담**           | 낮음 (셀프서비스)                   | 높음 (Recipient 별 수동 관리)                           |

### 언제 무엇을 선택할지

| 시나리오                      | 권장                                 |
| ------------------------- | ---------------------------------- |
| 외부에 데이터를 광범위하게 공유/판매      | **Marketplace (퍼블릭)**              |
| 조직 내 부서 간 데이터 카탈로그        | **Marketplace (프라이빗)**             |
| 특정 파트너 1\~2곳과 양자 데이터 공유   | **직접 Delta Sharing**               |
| 비 Databricks 환경의 파트너에게 공유 | **직접 Delta Sharing**(Open Sharing) |
| 데이터 판매/수익화                | **Marketplace (퍼블릭)**+ 가격 설정       |

***

## 수익화 사례

### 데이터 제공자 수익화 모델

| 사례            | 제공자 유형    | 데이터              | 가격 모델                  |
| ------------- | --------- | ---------------- | ---------------------- |
| **금융 데이터 벤더** | 전문 데이터 회사 | 주가, 환율, 경제 지표    | 월정액 $500~$5,000/데이터셋   |
| **날씨 데이터**    | 기상 데이터 전문 | 글로벌 날씨, 기후 예측    | 무료 (기본) + 유료 (고해상도)    |
| **인구통계/지리**   | 공공+민간 결합  | 인구밀도, 소득수준, POI  | 가격 협의 (연간 라이선스)        |
| **ESG/지속가능성** | ESG 평가 기관 | 기업 ESG 점수, 탄소배출량 | 기업당 연간 라이선스            |
| **내부 데이터 마켓** | 대기업 데이터팀  | 정제된 Gold 테이블     | 무료 (프라이빗) — 내부 데이터 민주화 |

### 프라이빗 마켓플레이스를 활용한 내부 데이터 민주화

| 데이터 플랫폼팀 제공 항목  | 프라이빗 Marketplace 리스팅     | 소비자                |
| --------------- | ------------------------ | ------------------ |
| Gold 고객 360 테이블 | "Customer 360"           | 마케팅팀, 영업팀, 데이터 분석팀 |
| Gold 매출 분석 테이블  | "Sales Analytics"        |                    |
| ML 고객 이탈 예측 모델  | "Churn Prediction Model" |                    |
| 분석 노트북 모음       | "Analytics Starter Kit"  |                    |

> 💡 **실무 권장**: 대기업에서 프라이빗 Marketplace를 도입하면, 각 팀이 "데이터가 어디에 있는지 모르겠다"는 문제를 해결하고, 중복 데이터 파이프라인 구축을 방지할 수 있습니다. 데이터 팀의 가치를 조직 내에서 가시화하는 효과도 있습니다.

***

## 정리

| 개념               | 핵심 내용                                                |
| ---------------- | ---------------------------------------------------- |
| Marketplace      | 데이터 제품을 검색, 구독, 공유할 수 있는 개방형 마켓플레이스입니다               |
| 제품 유형            | 테이블, 볼륨, ML 모델, 노트북을 공유할 수 있습니다                      |
| 소비자              | 클릭 한 번으로 구독하고 Unity Catalog에서 바로 사용합니다               |
| 제공자              | Delta Sharing 기반으로 리스팅을 생성하고 게시합니다                   |
| 퍼블릭 vs 프라이빗      | 외부 공유는 퍼블릭, 조직 내부 공유는 프라이빗을 사용합니다                    |
| 데이터 제품 설계        | 핵심 데이터 + 메타데이터 + 샘플 + SLA를 갖춘 완전한 제품으로 설계합니다         |
| 가격 모델            | 무료/고정/협의/Freemium 중 데이터 특성에 맞게 선택합니다                 |
| 품질 보증            | 품질 검증 파이프라인으로 SLA를 보장합니다                             |
| vs Delta Sharing | 불특정 다수는 Marketplace, 특정 파트너는 직접 Delta Sharing을 사용합니다 |

***

## 참고 링크

* [Databricks Marketplace 공식 문서](https://docs.databricks.com/aws/en/marketplace/)
* [Marketplace에서 데이터 구독하기](https://docs.databricks.com/aws/en/marketplace/consumer-get-data.html)
* [Marketplace에 리스팅 게시하기](https://docs.databricks.com/aws/en/marketplace/provider-create-listing.html)
* [Delta Sharing 공식 문서](https://docs.databricks.com/aws/en/data-sharing/)
* [Databricks 블로그: Marketplace 소개](https://www.databricks.com/blog/announcing-databricks-marketplace)
