docs: NaverWorks 브리핑 주말 이메일 누락 문제 트러블슈팅
This commit is contained in:
parent
f6dbfeb98d
commit
6325b282eb
@ -0,0 +1,47 @@
|
|||||||
|
---
|
||||||
|
date: 2025-09-29
|
||||||
|
author: happybell80
|
||||||
|
tags: [naverworks, briefing, timezone, langgraph]
|
||||||
|
---
|
||||||
|
|
||||||
|
# NaverWorks 브리핑 주말 이메일 누락 문제
|
||||||
|
|
||||||
|
## 문제 상황
|
||||||
|
월요일 오전 9시 NaverWorks 일일 브리핑에서 주말(토,일) 이메일이 누락됨
|
||||||
|
- 현재: 24시간만 조회 → 월요일 9시 기준 일요일 9시 이후 메일만 포함
|
||||||
|
- 필요: 월요일은 72시간(금 9시~월 9시), 화~금은 24시간 조회
|
||||||
|
|
||||||
|
## 원인 분석
|
||||||
|
`rb8001/app/skills/naverworks_briefing.py:79`에서 고정 24시간만 사용:
|
||||||
|
```python
|
||||||
|
yesterday = now - timedelta(hours=24) # 항상 24시간
|
||||||
|
```
|
||||||
|
|
||||||
|
## 해결 방안
|
||||||
|
|
||||||
|
### 1. 즉시 수정 (KST 타임존 + 월요일 판단)
|
||||||
|
```python
|
||||||
|
from zoneinfo import ZoneInfo
|
||||||
|
KST = ZoneInfo("Asia/Seoul")
|
||||||
|
|
||||||
|
# 78-79번 라인 수정
|
||||||
|
now = datetime.now(KST)
|
||||||
|
hours = 72 if now.weekday() == 0 else 24 # 월요일(0)은 72시간
|
||||||
|
start = now - timedelta(hours=hours)
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. 추가 개선사항
|
||||||
|
- `receivedTime` → `date` 필드명 수정 (skill-email 실제 응답 필드)
|
||||||
|
- `from` 필드 문자열/객체 혼재 처리 (타입 체크 필수)
|
||||||
|
- Slack 메시지 날짜도 KST 명시
|
||||||
|
|
||||||
|
### 3. LangGraph 적용 검토
|
||||||
|
**목적**: 실패 복구와 확장성 개선
|
||||||
|
- StateGraph로 각 단계를 노드화 (UUID조회→메일조회→필터링→요약→Slack전송)
|
||||||
|
- 체크포인트로 부분 실패 시 해당 단계만 재실행
|
||||||
|
- 향후 병렬 처리, Human-in-the-loop, 다계정 동시 처리 가능
|
||||||
|
|
||||||
|
## 교훈
|
||||||
|
- **타임존 명시 필수**: `datetime.now()` 대신 `datetime.now(KST)` 사용
|
||||||
|
- **요일별 로직 차별화**: 업무 특성상 월요일은 주말 포함 조회 필요
|
||||||
|
- **복잡한 워크플로우는 오케스트레이션 도구 고려**: 단순 함수 체인보다 LangGraph가 실패 복구에 유리
|
||||||
Loading…
x
Reference in New Issue
Block a user