DOCS/troubleshooting/250919_naverworks_slack_02_daily_briefing.md

2.1 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. 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)

4. 구현 체크리스트

4.1 스케줄러 구조 개편

  • app/scheduler/registry.py 생성
  • app/scheduler/jobs/ 디렉토리 생성
  • 기존 스케줄 코드 main.py에서 이동 (130줄 감소)

4.2 네이버웍스 브리핑 구현

  • app/scheduler/jobs/naverworks_briefing.py 생성
  • app/skills/naverworks_briefing.py 생성
  • 환경변수: NAVERWORKS_BRIEFING_ENABLED, CHANNEL_ID, SCHEDULE
  • DB에서 info@company-x.partners 조회
  • 중요 메일 필터링 로직
  • Gemini 요약 및 Slack 전송

5. 문제점 및 개선 방안

5. 문제점

  • API Rate Limit 위험: 24시간 메일만 조회로 해결
  • 보안: 제목/발신자만 요약, 본문 제외
  • main.py 732줄 문제: scheduler/ 분리로 해결

6. 참고