DOCS/plans/250823_4pm_email_briefing_demo_plan.md
happybell80 b3c7fdf0e2 Update 4PM demo plan with test user details
- Added test participant status table
  - cdctfm: Slack , Gmail 
  - happybell80: Slack , Gmail 
  - 0914eagle: Slack , Gmail  (changed from eagle0914)
- All 3 users connected to rb8001 (Level 20)
- Added Gateway stats endpoint fix note
- Updated expected results to show Level 20 display

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-23 13:41:03 +09:00

8.7 KiB

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

작성일: 2025-08-23

목표 시간: 2025-08-23 16:00 (오전 9시 기능을 4시에 테스트)

작성자: 51123 서버 관리자


1. 데모 개요

1.1 핵심 목표

  • 매일 오전 9시 일일 브리핑 자동 전송 (오늘은 4시 테스트)
  • 개인별 맞춤 브리핑을 Slack DM으로 전송
  • 회사 전체 요약을 일반 채널에 전송
  • 날짜, Slack 요약, 이메일, 뉴스, 일정, 날씨, 응원 메시지 포함

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 skill-news 8505 뉴스 검색 (키워드: 에이전트)
51124 robeing-monitor 9024 Gmail 토큰 관리

2.2 데이터 흐름

  1. rb8001 컨테이너에서 스케줄러 실행 (16:00)
  2. 각 사용자별 데이터 수집
    • Slack 대화 내역
    • Gmail 이메일
    • 뉴스 (skill-news, 키워드: '에이전트')
    • 일정 정보
    • 날씨 API
  3. 개인별 브리핑 생성 및 DM 전송
  4. 전체 요약 생성 및 일반 채널 전송

3. 브리핑 메시지 형식

3.1 개인 DM 브리핑 예시

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📅 2025년 8월 23일 금요일 브리핑
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

💬 어제의 Slack (3건)
• [긴급] 희재님: "내일 4시 데모 준비 완료 필요"
• [일반] 한용님: "서버 모니터링 정상"
• [완료] CEO: "OAuth 이슈 해결됨"

📧 받은 메일 (5건)
• 🔴 긴급: AWS 결제 알림 - 8/25 만료 예정
• 🟡 중요: 투자사 미팅 일정 확인 요청
• ⚪ 일반: 뉴스레터 3건

📰 오늘의 뉴스 - '에이전트' 키워드
• OpenAI, GPT-5 에이전트 기능 2025년 출시 예정
• 구글, AI 에이전트로 코딩 자동화 90% 달성
• 국내 스타트업, B2B 에이전트 시장 진출 가속화
• MS, 엔터프라이즈 에이전트 플랫폼 공개

📋 오늘 일정
• 10:00 - 스탠드업 미팅
• 14:00 - 코드 리뷰
• 16:00 - 데모 시연 ⭐

☀️ 서울 날씨: 맑음 28°C (미세먼지: 좋음)

💪 "금요일입니다! 이번 주도 거의 다 왔어요. 
   오늘 데모 성공적으로 마무리하고 주말 맞이해요!"
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

3.2 일반 채널 전체 브리핑

  • 개인 정보 제외
  • 팀 전체 일정 중심
  • 공통 관심사 위주

4. 시퀀스 다이어그램

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

sequenceDiagram
    participant Scheduler as rb8001<br/>Scheduler
    participant SkillEmail as skill-email<br/>(8501)
    participant SkillNews as skill-news<br/>(8505)
    participant Monitor as robeing-monitor<br/>(9024)
    participant DB as PostgreSQL
    participant Gmail as Gmail API
    participant NewsAPI as News 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: 이메일 요약
            
            Scheduler->>SkillNews: 뉴스 검색 요청<br/>(keyword: '에이전트')
            Note over SkillNews: skill-news:8505
            SkillNews->>NewsAPI: 키워드 검색
            NewsAPI-->>SkillNews: 뉴스 목록
            SkillNews-->>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일

4.2 브리핑 생성 프로세스

sequenceDiagram
    participant RB as rb8001
    participant SE as skill-email
    participant SN as skill-news
    participant Gmail as Gmail API
    participant News as News API
    participant AI as AI Model

    RB->>SE: 이메일 요약 요청
    SE->>Gmail: messages.list()<br/>(최근 24시간)
    Gmail-->>SE: message_ids[]
    
    loop 각 메일별
        SE->>Gmail: messages.get(id)
        Gmail-->>SE: 메일 상세
        SE->>AI: 중요도 분류
        AI-->>SE: 긴급/중요/일반
    end
    
    SE-->>RB: 이메일 요약
    
    RB->>SN: 뉴스 검색<br/>(keyword: '에이전트')
    SN->>News: 키워드 검색
    News-->>SN: 뉴스 목록
    SN->>AI: 뉴스 요약
    AI-->>SN: 요약 텍스트
    SN-->>RB: 뉴스 요약
    
    RB->>RB: 브리핑 조합
    Note over RB: 📅 날짜<br/>💬 Slack<br/>📧 이메일<br/>📰 뉴스<br/>📋 일정<br/>☀️ 날씨

5. 구현 체크리스트

5.1 51123 서버 (완료)

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

5.2 51124 서버 (진행 중)

  • rb8001 스케줄러 구현
    • 16:00 트리거 설정
    • 사용자 목록 조회
  • 데이터 수집
    • Slack 대화 내역
    • Gmail 이메일 (skill-email)
    • 뉴스 검색 (skill-news, 키워드: '에이전트')
    • 날씨 정보
  • 브리핑 전송
    • Slack DM 개인 전송
    • 일반 채널 전체 전송

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

  • JWT 헤더 전송
  • 브리핑 표시 UI

6. 테스트 시나리오

6.1 테스트 참가자 현황

Username Email Robeing Slack ID Gmail Token 비고
cdctfm cdctfm@gmail.com rb8001 (Lv.20) U092F7FQ55L 필요 한용님
happybell80 goeun2dc@gmail.com rb8001 (Lv.20) U0925SXQFDK 필요 고은님
0914eagle 0914eagle@gmail.com rb8001 (Lv.20) U091UNVE41M 준비됨 희재님

6.2 사전 준비

  1. Gmail OAuth 인증
    • 0914eagle: 완료
    • cdctfm, happybell80: ⚠️ 인증 필요
  2. 각 사용자별 테스트 이메일 준비
  3. Slack 워크스페이스 접속 확인
  4. Gateway stats 엔드포인트 수정 완료 (rb8001 라우팅)

6.3 테스트 진행

시간 액션 예상 결과
15:55 시스템 상태 확인 모든 서비스 정상
15:58 테스트 이메일 발송 Gmail 수신 확인
16:00 자동 실행 스케줄러 트리거
16:01 Slack DM 확인 3명 개인 브리핑 수신
16:01 일반 채널 확인 전체 브리핑 수신
16:01 웹 확인 대시보드 업데이트, Level 20 표시

7. 장애 대응

7.1 예상 이슈

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

7.2 모니터링 포인트

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


이 문서는 2025-08-23 오후 4시 데모를 위한 실행 계획입니다. 실제 서비스는 매일 오전 9시에 자동 실행됩니다.