DOCS/plans/250823_4pm_email_briefing_demo_plan.md
happybell80 a303988244 docs: 오후 4시 이메일 브리핑 자동화 데모 계획 추가
- 2025-08-23 16:00 데모 실행 계획
- rb8001 스케줄러 → skill-email 요약 → Slack/Web 전송
- 3명 사용자 동시 테스트 시나리오
- 시퀀스 다이어그램 포함
2025-08-23 09:37:11 +09:00

6.0 KiB

오후 4시 이메일 브리핑 자동화 데모 계획

작성일: 2025-08-23

목표 시간: 2025-08-23 16:00

작성자: 51123 서버 관리자


1. 데모 개요

1.1 핵심 목표

  • 매일 오후 4시 정각 각 사용자의 Gmail을 자동으로 읽고 요약
  • 이메일을 중요도별로 분류 (긴급/중요/일반)
  • Slack DM과 웹 프론트엔드에 동시 전송
  • 3명의 사용자 동시 테스트

1.2 성공 기준

  • 오후 4시 정각 자동 실행 (수동 트리거 없음)
  • 3명 사용자 개별 이메일 요약 생성
  • Slack DM 자동 전송
  • 웹 대시보드 실시간 업데이트

2. 시스템 아키텍처

2.1 관련 서비스 및 포트

서버 서비스 포트 역할
51123 robeing-gateway 8100 API 프록시, JWT 인증
51123 auth-server 9000 OAuth 인증
51123 PostgreSQL 5432 데이터베이스
51124 rb8001 8001 메인 로빙 (스케줄러 실행)
51124 skill-email 8501 Gmail 읽기/요약
51124 robeing-monitor 9024 Gmail 토큰 관리

2.2 데이터 흐름

  1. rb8001 컨테이너에서 스케줄러 실행
  2. skill-email 서비스 호출하여 이메일 수집
  3. 이메일 요약 생성
  4. Slack API 및 프론트엔드로 전송

3. 시퀀스 다이어그램

3.1 오후 4시 자동 실행 시퀀스

sequenceDiagram
    participant Scheduler as rb8001<br/>Scheduler
    participant SkillEmail as skill-email<br/>(8501)
    participant Monitor as robeing-monitor<br/>(9024)
    participant DB as PostgreSQL
    participant Gmail as Gmail API
    participant Slack as Slack API
    participant Frontend as Web Frontend

    Note over Scheduler: 매일 16:00:00

    Scheduler->>DB: 활성 사용자 목록 조회
    DB-->>Scheduler: users (3명)
    
    loop 각 사용자별 처리
        Scheduler->>Monitor: Gmail 토큰 확인<br/>(X-User-Id)
        Monitor->>DB: gmail_tokens 조회
        DB-->>Monitor: token_data
        
        alt 토큰 유효
            Monitor-->>Scheduler: 토큰 정보
            Scheduler->>SkillEmail: 이메일 요약 요청<br/>(user_id, token)
            
            SkillEmail->>Gmail: 최근 24시간 이메일 조회
            Gmail-->>SkillEmail: 이메일 목록
            
            SkillEmail->>SkillEmail: 이메일 분류<br/>(긴급/중요/일반)
            SkillEmail->>SkillEmail: 요약 생성
            
            SkillEmail-->>Scheduler: 요약 결과
            
            par Slack 전송
                Scheduler->>Slack: DM 전송<br/>(user_slack_id)
                Slack-->>Scheduler: 전송 완료
            and 프론트엔드 업데이트
                Scheduler->>DB: 요약 저장
                Frontend->>DB: 폴링/WebSocket
                DB-->>Frontend: 새 요약 데이터
            end
            
        else 토큰 없음/만료
            Monitor-->>Scheduler: NO_TOKEN
            Scheduler->>DB: 에러 로그 기록
        end
    end
    
    Note over Scheduler: 다음 실행: 16:00:00 +1일

3.2 이메일 분류 및 요약 프로세스

sequenceDiagram
    participant SE as skill-email
    participant Gmail as Gmail API
    participant AI as AI Model

    SE->>Gmail: messages.list()<br/>(최근 24시간)
    Gmail-->>SE: message_ids[]
    
    loop 각 메일별
        SE->>Gmail: messages.get(id)
        Gmail-->>SE: 메일 상세
        
        SE->>SE: 메타데이터 추출<br/>(발신자, 제목, 시간)
        SE->>AI: 중요도 분류 요청
        AI-->>SE: 긴급/중요/일반
    end
    
    SE->>SE: 카테고리별 그룹화
    SE->>AI: 전체 요약 생성
    AI-->>SE: 요약 텍스트
    
    SE-->>SE: 최종 포맷팅
    Note over SE: 📧 일일 브리핑<br/>긴급: N건<br/>중요: N건<br/>일반: N건

4. 구현 체크리스트

4.1 51123 서버 (완료)

  • OAuth 로그인 시스템
  • JWT 인증 구현
  • Gateway UUID 변환
  • PostgreSQL 사용자 관리

4.2 51124 서버 (진행 중)

  • rb8001 스케줄러 구현
    • Python schedule 라이브러리 설치
    • 16:00 트리거 설정
    • 사용자 목록 조회 로직
  • skill-email 요약 기능
    • Gmail API 연동 확인
    • 이메일 분류 로직
    • AI 요약 프롬프트
  • Slack DM 전송
    • Slack API 토큰 설정
    • DM 채널 ID 매핑

4.3 프론트엔드 (확인 필요)

  • JWT 헤더 전송
  • 실시간 업데이트 (폴링/WebSocket)
  • 요약 표시 UI

5. 테스트 시나리오

5.1 사전 준비

  1. 3명 사용자 Gmail OAuth 인증 완료
  2. 각 사용자별 테스트 이메일 준비
  3. Slack 워크스페이스 접속

5.2 테스트 진행

시간 액션 예상 결과
15:55 시스템 상태 확인 모든 서비스 정상
15:58 테스트 이메일 발송 Gmail 수신 확인
16:00 자동 실행 스케줄러 트리거
16:01 Slack 확인 DM 수신 확인
16:01 웹 확인 대시보드 업데이트

6. 장애 대응

6.1 예상 이슈

이슈 원인 대응
스케줄러 미실행 시간대 설정 TZ 환경변수 확인
Gmail API 실패 토큰 만료 토큰 갱신
Slack 전송 실패 API 제한 재시도 로직
프론트엔드 미갱신 캐시 강제 새로고침

6.2 모니터링 포인트

  • rb8001 컨테이너 로그
  • skill-email 서비스 로그
  • PostgreSQL 쿼리 로그
  • nginx 액세스 로그

7. 다음 단계

7.1 데모 후 개선사항

  • 이메일 필터링 옵션
  • 요약 커스터마이징
  • 시간대별 설정
  • 팀 단위 브리핑

7.2 확장 계획

  • 캘린더 연동
  • 작업 우선순위 제안
  • 자동 회신 기능
  • 다국어 지원

8. 연락처

  • 51123 서버: 서버 관리자
  • 51124 서버: 개발팀
  • 긴급 상황: Slack #dev-emergency

이 문서는 2025-08-23 오후 4시 데모를 위한 실행 계획입니다.