DOCS/troubleshooting/250919_naverworks_slack_02_daily_briefing.md
happybell80 07496ab3f0 docs: NAVER WORKS 브리핑 구현 준비도 90% 반영
- skill-email, skill-slack 구현 확인
- DB 접근 패턴, API 키 확인
- NAVER WORKS API 엔드포인트 확인
- 필요 환경변수 명시
- 참고 문서 링크 추가
2025-09-22 23:59:51 +09:00

3.2 KiB

NAVER WORKS → Slack 연동 [2/3] 일일 브리핑

날짜: 2025-09-19 (업데이트: 2025-09-22)

작성자: Claude / happybell80

관련 서비스: rb8001, skill-email, skill-slack

상태: 계획


1. 일일 브리핑 개요

목적

회사 대표메일 중요사항을 매일 아침 자동으로 요약하여 Slack 지정 채널에 브리핑

핵심 기능

  • 최근 24시간 메일 중 중요 메일 필터링
  • AI 요약 생성
  • 우선순위별 정렬
  • Slack 지정 채널 자동 포스팅

2. 구현 방식

2.1 트리거 방식

  • 매일 09:00 KST 자동 실행
  • APScheduler 사용 (mon-fri 형식 권장)

2.2 처리 흐름

  1. 09:00 스케줄러 트리거
  2. DB에서 info@company-x.partners 계정 UUID 조회
  3. skill-email /messages 호출 (provider=naverworks, 24시간 필터)
  4. 중요 메일 필터링 (긴급/계약/결제/공지)
  5. Gemini 요약 생성
  6. SlackFormatter.briefing()으로 포맷팅
  7. skill-slack /api/v1/send로 채널 전송 (C09C98KK2TT)

3. 구현 파일 구조

첫 구현 (최소)

  • 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/jobs/ 디렉토리 생성
  • naverworks_briefing.py 파일 (등록 + 래퍼)
  • main.py 2줄 추가

4.2 브리핑 로직

  • app/skills/naverworks_briefing.py 생성
  • register() 함수: 환경변수 읽기, 스케줄 등록
  • 래퍼 함수: 로그 추가 ("Running job" 이슈 해결)
  • DB 조회: info@company-x.partners UUID
  • 중요 메일 필터: 긴급/계약/결제/공지
  • 통합: skill-email, Gemini, skill-slack

5. 구현 원칙

  • 최소 변경: main.py 2줄만, 기존 코드 유지
  • 단순 구조: register(scheduler) 하나, 환경변수는 함수 내부
  • 로그 해결: 래퍼 함수로 "Running job" 추가
  • 점진 확장: 작동 확인 후 registry, formatter 추가

6. 구현 준비도 (90%)

확인된 사항

  • 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. 참고