docs: NAVER WORKS 브리핑 구현 준비도 90% 반영
- skill-email, skill-slack 구현 확인 - DB 접근 패턴, API 키 확인 - NAVER WORKS API 엔드포인트 확인 - 필요 환경변수 명시 - 참고 문서 링크 추가
This commit is contained in:
parent
5da123ffc1
commit
07496ab3f0
@ -32,43 +32,65 @@
|
||||
3. skill-email `/messages` 호출 (provider=naverworks, 24시간 필터)
|
||||
4. 중요 메일 필터링 (긴급/계약/결제/공지)
|
||||
5. Gemini 요약 생성
|
||||
6. skill-slack `/api/v1/send`로 채널 전송 (C09C98KK2TT)
|
||||
6. SlackFormatter.briefing()으로 포맷팅
|
||||
7. skill-slack `/api/v1/send`로 채널 전송 (C09C98KK2TT)
|
||||
|
||||
---
|
||||
|
||||
## 3. 구현 파일 구조
|
||||
|
||||
- **app/scheduler/jobs/naverworks_briefing.py**: 스케줄 등록 함수
|
||||
- **app/skills/naverworks_briefing.py**: 브리핑 로직
|
||||
- **app/scheduler/registry.py**: 모든 스케줄 통합 관리
|
||||
- **main.py**: 2줄 추가 (registry.register_all_jobs)
|
||||
### 첫 구현 (최소)
|
||||
- **app/scheduler/jobs/naverworks_briefing.py**: register(scheduler) 함수와 로깅 래퍼
|
||||
- **app/skills/naverworks_briefing.py**: 실제 브리핑 로직
|
||||
- **main.py**: 2줄 추가 (import + register 호출)
|
||||
|
||||
### 나중 확장
|
||||
- **app/formatters/slack_formatter.py**: 다른 스킬과 공유 시
|
||||
- **app/scheduler/registry.py**: 스케줄 2개 이상일 때
|
||||
|
||||
---
|
||||
|
||||
## 4. 구현 체크리스트
|
||||
|
||||
### 4.1 스케줄러 구조 개편
|
||||
- [ ] app/scheduler/registry.py 생성
|
||||
### 4.1 최소 구현
|
||||
- [ ] app/scheduler/jobs/ 디렉토리 생성
|
||||
- [ ] 기존 스케줄 코드 main.py에서 이동 (130줄 감소)
|
||||
- [ ] naverworks_briefing.py 파일 (등록 + 래퍼)
|
||||
- [ ] main.py 2줄 추가
|
||||
|
||||
### 4.2 네이버웍스 브리핑 구현
|
||||
- [ ] app/scheduler/jobs/naverworks_briefing.py 생성
|
||||
### 4.2 브리핑 로직
|
||||
- [ ] app/skills/naverworks_briefing.py 생성
|
||||
- [ ] 환경변수: NAVERWORKS_BRIEFING_ENABLED, CHANNEL_ID, SCHEDULE
|
||||
- [ ] DB에서 info@company-x.partners 조회
|
||||
- [ ] 중요 메일 필터링 로직
|
||||
- [ ] Gemini 요약 및 Slack 전송
|
||||
- [ ] register() 함수: 환경변수 읽기, 스케줄 등록
|
||||
- [ ] 래퍼 함수: 로그 추가 ("Running job" 이슈 해결)
|
||||
- [ ] DB 조회: info@company-x.partners UUID
|
||||
- [ ] 중요 메일 필터: 긴급/계약/결제/공지
|
||||
- [ ] 통합: skill-email, Gemini, skill-slack
|
||||
|
||||
---
|
||||
|
||||
## 5. 문제점 및 개선 방안
|
||||
## 5. 구현 원칙
|
||||
|
||||
## 5. 문제점
|
||||
- **최소 변경**: main.py 2줄만, 기존 코드 유지
|
||||
- **단순 구조**: register(scheduler) 하나, 환경변수는 함수 내부
|
||||
- **로그 해결**: 래퍼 함수로 "Running job" 추가
|
||||
- **점진 확장**: 작동 확인 후 registry, formatter 추가
|
||||
|
||||
- API Rate Limit 위험: 24시간 메일만 조회로 해결
|
||||
- 보안: 제목/발신자만 요약, 본문 제외
|
||||
- main.py 732줄 문제: scheduler/ 분리로 해결
|
||||
## 6. 구현 준비도 (90%)
|
||||
|
||||
## 6. 참고
|
||||
### 확인된 사항
|
||||
- **skill-email**: NaverWorksProvider 구현 완료, 토큰 갱신 로직 존재
|
||||
- **skill-slack**: /api/v1/send 엔드포인트 구현 완료
|
||||
- **DB 접근**: DATABASE_URL 환경변수, asyncpg 사용
|
||||
- **API 키**: INTERNAL_API_KEY로 스킬 간 인증
|
||||
- **NAVER WORKS API**: /mail/mailfolders/0/children 엔드포인트 확인
|
||||
- **24시간 필터**: startSearchDate, endSearchDate 파라미터 지원
|
||||
- **기존 스케줄러**: dm_skill.py, news_posting_skill.py 참고 가능
|
||||
|
||||
### 필요 환경변수 (서버 설정)
|
||||
- NAVERWORKS_BRIEFING_ENABLED=true
|
||||
- NAVERWORKS_BRIEFING_CHANNEL=C09C98KK2TT
|
||||
- NAVERWORKS_BRIEFING_SCHEDULE="0 9 * * mon-fri"
|
||||
|
||||
## 7. 참고
|
||||
- [DB 기반 스케줄러 관리](./250919_naverworks_slack_04_db_scheduler_management.md)
|
||||
- [기본 구성 완료](./250919_naverworks_slack_01_base_configuration.md)
|
||||
- [NAVER WORKS API 이슈 해결](./250918_naverworks_mail_api_mailaddress_null_issue.md)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user