79 lines
2.1 KiB
Markdown
79 lines
2.1 KiB
Markdown
# 뉴스 시스템 통합 계획
|
|
|
|
**작성일**: 2025-09-06
|
|
**목적**: skill-news, rb8001, skill-publish 통합 연동
|
|
|
|
---
|
|
|
|
## 1. 아키텍처
|
|
|
|
### 서비스 구조
|
|
```
|
|
APScheduler → skill-news:8505 → rb8001 → Slack 채널
|
|
↓
|
|
사용자 버튼 클릭
|
|
↓
|
|
skill-publish:8511 → Squarespace
|
|
```
|
|
|
|
### 데이터 흐름
|
|
- 수집: skill-news (Google News API)
|
|
- 요약: Gemini LLM
|
|
- 전송: skill-slack (Block Kit)
|
|
- 게시: skill-publish (Squarespace CMS)
|
|
|
|
---
|
|
|
|
## 2. 구현 상태
|
|
|
|
### ✅ 완료
|
|
- skill-news 운영 중 (포트 8505)
|
|
- skill-publish 구현 완료 (포트 8511)
|
|
- APScheduler 평일 10:00 자동 실행
|
|
- Slack Block Kit 버튼 전송
|
|
|
|
**상세**: `troubleshooting/250907_company_x_news_zero_articles.md` 외 다수
|
|
|
|
### ⏳ 미구현
|
|
- **PostgreSQL rb_news 테이블**: 현재 JSON 파일 기반
|
|
- **실시간 게시 상태 추적**: skill-publish API 확장 필요
|
|
- **게시 이력 조회**: 프론트엔드 UI 미구현
|
|
|
|
---
|
|
|
|
## 3. 미구현 Phase 3: DB 영구 저장
|
|
|
|
### 현재 제약
|
|
- JSON 파일 (`/app/data/news_state.json`) 사용
|
|
- 컨테이너 재시작 시 이력 손실 가능
|
|
- 통계/분석 어려움
|
|
|
|
### 필요 작업
|
|
1. `rb_news` 테이블 생성 (user_id, article_id, published_at, status)
|
|
2. news_posting_skill.py에 DB 저장 로직 추가
|
|
3. 게시 이력 조회 API (`GET /api/news/history`)
|
|
|
|
---
|
|
|
|
## 4. 환경 설정
|
|
|
|
### rb8001 (.env)
|
|
```bash
|
|
COMPANY_X_NEWS_CHANNEL_ID=C09CP4MDX71
|
|
SKILL_NEWS_URL=http://localhost:8505
|
|
SKILL_PUBLISH_URL=http://localhost:8511
|
|
```
|
|
|
|
### Slack App
|
|
- Interactivity URL: https://ro-being.com/api/slack/interactive
|
|
- Scopes: chat:write, chat:write.public
|
|
|
|
---
|
|
|
|
## 5. 참고 문서
|
|
|
|
- `troubleshooting/250907_company_x_news_zero_articles.md`
|
|
- `troubleshooting/250908_skill_news_companyx_data_integration.md`
|
|
- `troubleshooting/250908_slack_interactive_gateway_proxy.md`
|
|
- `troubleshooting/250920_news_db_persistence_implementation.md`
|