@restnfeel/agentc-starter-kit
Version:
한국어 기업용 CMS 모듈 - Task Master AI와 함께 빠르게 웹사이트를 구현할 수 있는 재사용 가능한 컴포넌트 시스템
199 lines (131 loc) • 5.12 kB
Markdown
# RSS 자동 업데이트 가이드
이 가이드는 네이버 블로그 RSS 피드를 매일 자동으로 업데이트하여 최신 콘텐츠를 RAG 시스템에 학습시키는 방법을 설명합니다.
## 🎯 개요
RSS 자동 업데이트 시스템은 다음과 같이 작동합니다:
1. **RSS URL 등록**: 관리자 페이지에서 네이버 블로그 RSS URL을 등록
2. **자동 스케줄링**: 매일 새벽 1시에 cron job이 실행
3. **자동 학습**: 등록된 RSS 피드에서 최신 포스트를 가져와 RAG 시스템에 학습
4. **로그 기록**: 모든 업데이트 과정이 로그 파일에 기록
## 🚀 설정 방법
### 1. Cron Job 설정
프로젝트 루트에서 다음 명령을 실행하여 cron job을 설정합니다:
```bash
./scripts/setup-cron.sh
```
이 스크립트는 다음 작업을 수행합니다:
- RSS 자동 업데이트 실행 스크립트 생성
- 매일 새벽 1시 실행되는 cron job 등록
- 로그 디렉토리 생성
### 2. 환경 변수 설정
`.env` 파일에 다음 환경 변수를 추가합니다:
```env
# RSS 자동 업데이트 설정
NEXT_PUBLIC_BASE_URL=http://localhost:3000 # 또는 실제 도메인
CRON_SECRET=your-secure-cron-secret-key # 보안을 위한 시크릿 키
```
### 3. 서버 실행
cron job이 작동하려면 Next.js 서버가 실행 중이어야 합니다:
```bash
npm run dev
# 또는 프로덕션 환경에서
npm run build && npm start
```
## 📱 관리자 페이지 사용법
### RSS URL 등록
1. 관리자 페이지 접속: `http://localhost:3000/rag-admin`
2. "RSS 자동화" 탭 클릭
3. RSS URL 입력 (예: `https://rss.blog.naver.com/blogid`)
4. "등록" 버튼 클릭
### 수동 업데이트
등록된 RSS를 즉시 업데이트하려면:
1. "지금 업데이트" 버튼 클릭
2. 업데이트 결과 확인
### RSS URL 관리
- **목록 확인**: 등록된 RSS URL 목록과 상태 확인
- **URL 제거**: 불필요한 RSS URL 제거
- **업데이트 결과**: 최근 업데이트 결과 및 오류 확인
## 🔧 API 엔드포인트
### RSS 자동 업데이트 관리
- **GET** `/api/rag/rss/auto-update`: 등록된 RSS URL 목록 조회
- **POST** `/api/rag/rss/auto-update`: RSS URL 등록 또는 업데이트 실행
- **DELETE** `/api/rag/rss/auto-update`: RSS URL 등록 해제
### Cron Job 엔드포인트
- **GET** `/api/cron/rss-update`: cron job에서 호출하는 자동 업데이트 엔드포인트
## 📊 로그 및 모니터링
### 로그 파일 위치
```
logs/rss-auto-update.log
```
### 로그 내용 예시
```
2025-01-15 01:00:01 - RSS 자동 업데이트 시작
{"success":true,"message":"RSS 자동 업데이트 완료: 2/2 성공","results":[...]}
2025-01-15 01:00:15 - RSS 자동 업데이트 완료
```
### 로그 확인 명령
```bash
# 최근 로그 확인
tail -f logs/rss-auto-update.log
# 특정 날짜 로그 검색
grep "2025-01-15" logs/rss-auto-update.log
```
## 🛠️ 문제 해결
### Cron Job이 실행되지 않는 경우
1. **Cron 서비스 상태 확인**:
```bash
# macOS
sudo launchctl list | grep cron
# Linux
systemctl status cron
```
2. **Cron Job 등록 확인**:
```bash
crontab -l
```
3. **스크립트 권한 확인**:
```bash
ls -la scripts/rss-auto-update.sh
```
### API 호출 실패
1. **서버 실행 상태 확인**
2. **환경 변수 확인** (CRON_SECRET, BASE_URL)
3. **네트워크 연결 확인**
4. **로그 파일에서 오류 메시지 확인**
### RSS 피드 가져오기 실패
1. **RSS URL 유효성 확인**
2. **네이버 블로그 RSS 형식 확인**: `https://rss.blog.naver.com/{블로그아이디}`
3. **프록시 설정 확인** (CORS 문제 시)
## 🔒 보안 고려사항
1. **CRON_SECRET**: 강력한 시크릿 키 사용
2. **API 접근 제한**: 필요시 IP 화이트리스트 적용
3. **로그 파일 권한**: 민감한 정보 노출 방지
4. **HTTPS 사용**: 프로덕션 환경에서 HTTPS 적용
## 📈 성능 최적화
1. **배치 처리**: 여러 RSS를 동시에 처리
2. **중복 제거**: 이미 학습된 콘텐츠 스킵
3. **오류 처리**: 개별 RSS 실패가 전체에 영향 없도록
4. **로그 로테이션**: 로그 파일 크기 관리
## 🚀 고급 설정
### 커스텀 스케줄
기본 스케줄(매일 새벽 1시) 외에 다른 시간으로 변경하려면:
```bash
# cron job 편집
crontab -e
# 예시: 매일 오전 6시
0 6 * * * /path/to/scripts/rss-auto-update.sh
# 예시: 매 6시간마다
0 */6 * * * /path/to/scripts/rss-auto-update.sh
```
### 다중 환경 설정
개발/스테이징/프로덕션 환경별로 다른 설정 사용:
```bash
# 환경별 스크립트 실행
ENVIRONMENT=production ./scripts/setup-cron.sh
```
## 📞 지원
문제가 발생하거나 추가 기능이 필요한 경우:
1. 로그 파일 확인
2. GitHub Issues 등록
3. 관리자 페이지에서 수동 테스트 실행
---
이 시스템을 통해 네이버 블로그의 최신 콘텐츠를 자동으로 학습하여 항상 최신 정보를 제공하는 RAG 시스템을 구축할 수 있습니다.