검색 K
밝은/어두운 배경
밝은/어두운 배경
게시물 정보
스크래퍼의 동작을 제어하는 설정값은 두 곳에서 관리됩니다.
config/_shared.ts): 타임존, 요약 길이, 병렬 처리 수 등 시스템 동작 설정registered_feeds 테이블): 피드별 수집 옵션config/_shared.ts) UTC_OFFSET_HOURS 시스템 전체의 시간 표현에 적용되는 UTC 오프셋입니다.
UTC_OFFSET_HOURS = 9 // KST (한국 표준시)이 값 하나가 JSON 파일의 collectedAt · updatedAt, Markdown frontmatter의 updated, 로그 타임스탬프 전체에 반영됩니다. 서버 타임존과 무관하게 동작하므로, 서버를 이전해도 이 값만 유지하면 시간 표현이 일관됩니다.
변경 시 영향 범위:
nowISO() → JSON 필드 (collectedAt, updatedAt 등)nowLog() → 스크래퍼 실행 로그의 타임스탬프nowFrontmatter() → Markdown frontmatter의 updated 필드STORE_CONFIG export const STORE_CONFIG: JsonStoreConfig = {
dataDir: 'src/_data', // JSON 저장 루트 경로 (PROJECT_ROOT 기준 상대)
mdSummaryLength: 300, // Markdown에 출력할 본문 최대 글자 수
};| 항목 | 설명 | 변경 시 영향 |
|---|---|---|
dataDir | JSON 파일이 저장될 디렉토리 | 기존 파일 이전 필요. VitePress 설정과 일치해야 함 |
mdSummaryLength | Markdown 본문 truncate 길이 | JSON 원본에는 무제한 저장. 이 값은 화면 출력에만 영향 |
CONCURRENCY_LIMIT (index.ts) const CONCURRENCY_LIMIT = 3;도메인 단위 병렬 처리 상한입니다. 값을 높이면 수집 속도가 빨라지나 외부 서버에 과도한 요청이 갈 수 있습니다. 값 변경 시에는 대상 서버의 rate limit을 먼저 확인하세요.
registered_feeds 테이블) 피드별 수집 동작은 DB 행으로 관리합니다. 코드 배포 없이 DB 수정만으로 변경할 수 있습니다.
| 컬럼 | 타입 | 설명 |
|---|---|---|
feed_url | text | RSS 피드 URL. 파일명 생성의 기준이 됨 (urlToFileName) |
feed_title | text | 피드 표시 이름. Markdown 파일명({feed_title}.md)에 사용 |
folder_name | text | VitePress 소스 내 폴더명 (src/{folder_name}/) |
source_link | text | 피드 원본 웹사이트 URL |
scope | text | 수집 날짜 범위. all · today · 3days · weekly |
include_image | boolean | 대표 이미지 추출 여부 |
meta_display | boolean | Markdown에 발행일·저자·카테고리 블록 출력 여부 |
active | boolean | false이면 수집에서 제외 |
withdrawn_at | timestamptz | 철회 처리 시각. IS NOT NULL이면 고아 파일 정리 대상 |
consecutive_failures | int | 연속 fetch 실패 횟수. 자동 경보 기준으로 활용 가능 |
scope 설정 선택 기준 | 상황 | 권장 scope |
|---|---|
| 과거 포스트까지 모두 수집 | all |
| 발행 빈도가 높고 최신 뉴스만 필요 | today 또는 3days |
| 주간 단위 모니터링 | weekly |
주의:
scope필터 이후 스크래퍼는 당월 데이터만 추가로 필터링합니다. 예를 들어scope: 'all'이라도 이전 달 포스트는 저장되지 않습니다. 과거 데이터를 소급 수집하려면index.ts의 월 필터링 로직을 별도로 조정해야 합니다.
logo_name (RssFeedConfig) Markdown 상단에 삽입할 로고 이미지 파일명입니다. 파일은 src/{folderName}/logo-assets/ 경로에 위치해야 합니다. 설정하지 않으면 로고 블록이 생략됩니다.
| 변수 | 필수 여부 | 설명 |
|---|---|---|
DATABASE_URL | 필수 | Neon DB 연결 문자열 |
로컬 실행 시 .env 파일 또는 셸 환경에 설정합니다. GitHub Actions에서는 Repository Secrets로 관리합니다.