KV Deduplication Logic
Overview
섹션 제목: “Overview”KV 기반 중복 검사 시스템은 NEWSFORK_DEDUP 환경변수로 활성화됩니다.
Environment Variables
섹션 제목: “Environment Variables”로컬 개발
섹션 제목: “로컬 개발”export NEWSFORK_DEDUP=trueexport CF_ACCOUNT_ID="your-account-id"export CF_KV_NAMESPACE_ID="your-namespace-id"export CF_API_TOKEN="your-api-token"GitHub Secrets
섹션 제목: “GitHub Secrets”gh secret set NEWSFORK_DEDUP --body "true"gh secret set CF_ACCOUNT_ID --body "your-account-id"gh secret set CF_KV_NAMESPACE_ID --body "your-namespace-id"gh secret set CF_API_TOKEN --body "your-api-token"Deduplication Functions
섹션 제목: “Deduplication Functions”// URL 중복 여부 확인isDuplicate(url: string, config: KVConfig): Promise<DeduplicationResult>
// 배치 중복 검사batchDeduplication(urls: string[], config: KVConfig, batchSize: number): Promise<BatchDeduplicationResult>
// 중복 검사 통계generateDeduplicationStats(results: DeduplicationResult[]): Record<string, any>동작 방식
섹션 제목: “동작 방식”- URL 해시 생성: SHA-1 해시로 KV 키 생성
- KV 조회: 해당 키가 존재하는지 확인
- 중복 판정:
- 존재하면 → 중복 (처리 안함)
- 없으면 → 신규 (KV에 등록 후 처리)
- TTL 설정: 30일 후 자동 삭제
활성화 조건
섹션 제목: “활성화 조건”NEWSFORK_DEDUP=true환경변수 설정- Cloudflare KV 환경변수들 모두 설정
Related Files
섹션 제목: “Related Files”test/utils/kv-deduplication.ts— KV 연결 및 중복 검사 로직test/kv-deduplication.test.ts— 테스트 스위트