docs: 오후 4시 이메일 브리핑 자동화 데모 계획 추가
- 2025-08-23 16:00 데모 실행 계획 - rb8001 스케줄러 → skill-email 요약 → Slack/Web 전송 - 3명 사용자 동시 테스트 시나리오 - 시퀀스 다이어그램 포함
This commit is contained in:
parent
fc4c84d216
commit
a303988244
217
plans/250823_4pm_email_briefing_demo_plan.md
Normal file
217
plans/250823_4pm_email_briefing_demo_plan.md
Normal file
@ -0,0 +1,217 @@
|
|||||||
|
# 오후 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시 자동 실행 시퀀스
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
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 이메일 분류 및 요약 프로세스
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
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 서버 (완료)
|
||||||
|
- [x] OAuth 로그인 시스템
|
||||||
|
- [x] JWT 인증 구현
|
||||||
|
- [x] Gateway UUID 변환
|
||||||
|
- [x] 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시 데모를 위한 실행 계획입니다.*
|
||||||
Loading…
x
Reference in New Issue
Block a user