검색 K
밝은/어두운 배경
밝은/어두운 배경
게시물 정보
┌─────────────────────────────────────────────────────────────┐
│ GitHub Actions │
│ (스케줄 트리거 · scraper 실행 · VitePress 빌드 · 배포) │
└───────────────────────────┬─────────────────────────────────┘
│
┌─────────────────▼──────────────────┐
│ scraper/ (파트 1) │
│ │
│ fetchService → parserService │
│ ↓ ↓ │
│ jsonStoreService markdownWriter │
│ ↓ ↓ │
│ JSON 파일 Markdown 파일 │
└──────────┬──────────────┬───────────┘
│ │
┌──────────▼──┐ ┌────────▼──────────┐
│ src/_data/ │ │ src/{folderName}/ │
│ (JSON 스토어)│ │ (VitePress 소스) │
└─────────────┘ └───────────────────┘
│
┌────────▼────────┐
│ VitePress 빌드 │
│ (정적 사이트) │
└─────────────────┘
┌──────────────────────────────────┐
│ api/ + 프론트엔드 (파트 2) │
│ 피드 등록 신청 · 승인 · 철회 관리 │
│ ↕ Neon DB │
└──────────────────────────────────┘scraper/) registered_feeds 테이블 조회 · 성공/실패 카운트 갱신, scraper_lock 테이블 락 관리.api/) registered_feeds · feed_requests · withdraw_requests 테이블 CRUD.scripts/ · .github/workflows/) rss-scraper.yml: 스케줄·수동·API 트리거로 스크래퍼를 실행하고 신규 포스트가 있을 때만 빌드·배포합니다.send-reminders.yml: 3일 이상 미처리 등록 신청을 운영자에게 재알림합니다._github.ts가 GitHub API를 호출해 스크래퍼를 즉시 트리거합니다.| 구성 요소 | 용도 |
|---|---|
| Neon DB (PostgreSQL) | registered_feeds · scraper_lock 테이블 |
| GitHub Actions | 스크래퍼 스케줄 실행 · 빌드 · 배포 |
| VitePress | Markdown → 정적 사이트 변환 |
파트 간 직접 함수 호출은 없습니다. DB 테이블이 유일한 통신 채널입니다.
파트 2 (피드 관리)
└─ registered_feeds 테이블에 행 삽입/수정
↓
파트 1 (스크래퍼)
└─ fetchActiveFeeds() / fetchInactiveFeeds() 로 조회이 구조 덕분에 두 파트는 독립적으로 배포·수정할 수 있습니다.