<aside>
🔁 파이프라인 단계 · 정규화 · 검증 · 풍부화 · 임베딩 · 벡터 저장 · 클러스터링 · 이슈 식별 · 트렌딩 · 원본: .claude/rules/03-data-processing.md
</aside>
<aside>
🔗 Pipeline 단계 다이어그램은 [설계] 서브페이지의 Mermaid 참조.
</aside>
파이프라인 단계 원칙
- 각 stage 는 idempotent (재시도 안전)
- isolated — 실패가 다른 stage 에 전파되지 않음
- logged — 데이터 lineage 추적
- versioned — schema 변경 추적
정규화 (Normalize)
- Language detect: pemistahl/lingua-go — source 언어와 mismatch 시 flag
- Encoding: 모두 UTF-8, NFC unicode normalize, zero-width 문자 제거
- Content cleaning: HTML/스크립트/광고/네비/푸터 제거, 본문만 추출 (readability)
- Date/Time: 다양한 포맷 → UTC, 미래 / 너무 과거 reject. published_at 우선, fallback crawled_at
- URL: canonical 우선, tracking param 제거, 원본 + canonical 둘 다 저장
- Categories: 소스별 → 표준 taxonomy 매핑
표준 Article 스키마 (요약)
type NormalizedArticle struct {
ID, SourceID, CanonicalURL string
Country, Language string // ISO codes
Region *string
Title, Body, Summary string
Author []string
PublishedAt time.Time
ModifiedAt *time.Time
Categories, Tags []string
WordCount, ReadingTime int
HasImage bool
ImageCount, VideoCount, LinkCount int
ProcessedAt time.Time
SchemaVersion int
}
검증 (Validate)
- Required: Title 10~500자 · Body 100~50000자 · 유효 URL · PublishedAt 30일 이내 · Language non-empty
- Quality score 0.0~1.0 — word count · paragraph 구조 · 메타데이터 · 미디어 · 소스 평판 가중치
- 처리 임계값 0.5 미만은 stage 진행 차단