데이터 플랫폼 도메인 모델¶
최종 업데이트: 2026-03-27 | 관련 이슈: ARK-1139
개념 한 줄 정의¶
| 개념 | 정의 |
|---|---|
| Source | 데이터를 가져오는 연결 — DB 주소, 크리덴셜 자체 |
| Dataset | 그 연결에서 "어떤 데이터를 어떤 형상으로 볼 것인가"의 스펙 |
| Pipeline | 그 Dataset으로 "무엇을 만들 것인가"의 실행 레시피 |
| Content Model (CM) | Pipeline이 생산한 완성된 시계열 팩터 산출물 |
| Catalog | CM의 집합소 — 팀 간 공유·구독 마켓플레이스 |
각 개념 상세¶
Source¶
원천 시스템과의 연결 정보 그 자체. 소스는 자체로는 아무것도 하지 않는다.
- PostgreSQL / MySQL / MariaDB 연결 (host, port, credentials)
- 파일 업로드 (S3 경로)
- (예정) REST API, FTP/SFTP
Dataset¶
"어떤 데이터인가" 를 정의하는 명사적 개념.
Source에서 특정 테이블/컬럼을 선택하고, 그 데이터가 어떤 구조여야 하는지(스펙)와 언제 갱신되어야 하는지(스케줄)를 정의한다.
{
"name": "KR Daily Transactions",
"columns": [
{ "name": "date", "type": "date" },
{ "name": "ticker", "type": "string" },
{ "name": "close", "type": "float" },
{ "name": "volume", "type": "int" }
],
"time_axis": { "column": "date", "frequency": "daily" },
"entity_axis": { "column": "ticker" },
"schedule": "0 9 * * 1-5"
}
Dataset의 핵심 속성:
- Spec: 컬럼 정의, 타입, time_axis, entity_axis, delivery_lag
- Schedule: 언제 Source에서 데이터를 다시 끌어올지 (cron)
- Vendor: 이 데이터의 출처 (FnGuide, Bloomberg, Internal 등)
Dataset은 Source 없이도 존재할 수 있다:
- CSV/Excel 파일 직접 업로드 → Dataset
- 타팀 Catalog CM 구독 → Dataset
Pipeline¶
"그 데이터로 무엇을 만들 것인가" 를 정의하는 동사적 개념.
Dataset이 갱신되면 Pipeline이 자동 트리거되어 CM을 생성·갱신한다. AI Agent가 CM 초안을 생성하고, 사용자 피드백을 받아 반복 개선하는 루프를 가진다.
- 1 Pipeline = 1 Dataset (Pipeline은 정확히 하나의 Dataset에 귀속)
- 1 Dataset → N Pipelines (같은 데이터에서 다른 관점의 CM을 여럿 뽑을 수 있음)
Pipeline과 Dataset을 분리하는 이유:
같은 데이터 형상에서 여러 관점의 CM을 만들어야 할 때 Dataset을 재정의하지 않아도 된다. Dataset을 변경하면 영향받는 Pipeline 목록이 명확히 추적된다.
Content Model (CM)¶
Pipeline의 산출물. 실제로 Portfolio/Alpha에서 사용하는 데이터.
- 상태:
building→preview→scheduled→running→paused - 결과는 CatalogEntry로 등록됨
Catalog¶
CM의 집합소. is_public 플래그로 팀 간 공유 여부를 결정한다.
CatalogSubscription으로 타팀 CM을 구독 → 자신의 Dataset처럼 활용 가능- 좋은 CM은 코드처럼 재사용된다 (중복 작업 제거)
전체 흐름¶
flowchart LR
subgraph Sources["Source Layer"]
S1[RDS Connection]
S2[File Upload]
S3[Catalog 구독]
end
subgraph Datasets["Dataset"]
D1[spec + schedule + vendor]
end
subgraph Pipelines["Pipeline"]
P1[AI 피드백 루프]
P2[CM 초안 생성]
end
subgraph CMs["Content Model"]
C1[시계열 팩터]
end
subgraph Catalog["Catalog"]
CAT[Marketplace]
end
Sources --> Datasets --> Pipelines --> CMs --> Catalog
Catalog -->|구독| Sources
MISC 구성 예시¶
Source: PostgreSQL (주식 거래 DB)
└── Dataset A: "KR Daily Transactions"
schedule: daily 9am
├── Pipeline 1 → CM: 일별 수익률
├── Pipeline 2 → CM: 20일 변동성
└── Pipeline 3 → CM: 거래량 분위수
Source: CSV 파일 업로드
└── Dataset B: "FnGuide Report Data"
└── Pipeline 4 → CM: 리포트 지표
Catalog (타팀 CM 구독)
└── Dataset C: "Bloomberg Universe"
└── Pipeline 5 → CM: 복합 팩터
하나의 Source에서 여러 Dataset을 만들고, 각 Dataset에서 여러 Pipeline을 만들어 다양한 CM을 생성할 수 있다. Dataset은 Source와 독립적으로도 존재한다.
관련 문서¶
- ARK-1139 데이터 플랫폼 리뉴얼: 이 모델의 설계 배경과 구현 현황