DOCS/troubleshooting/250929_happybell80_naverworks_briefing_weekend_email.md

1.7 KiB

date, author, tags
date author tags
2025-09-29 happybell80
naverworks
briefing
timezone
langgraph

NaverWorks 브리핑 주말 이메일 누락 문제

문제 상황

월요일 오전 9시 NaverWorks 일일 브리핑에서 주말(토,일) 이메일이 누락됨

  • 현재: 24시간만 조회 → 월요일 9시 기준 일요일 9시 이후 메일만 포함
  • 필요: 월요일은 72시간(금 9시월 9시), 화금은 24시간 조회

원인 분석

rb8001/app/skills/naverworks_briefing.py:79에서 고정 24시간만 사용:

yesterday = now - timedelta(hours=24)  # 항상 24시간

해결 방안

1. 즉시 수정 (KST 타임존 + 월요일 판단)

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. 추가 개선사항

  • receivedTimedate 필드명 수정 (skill-email 실제 응답 필드)
  • from 필드 문자열/객체 혼재 처리 (타입 체크 필수)
  • Slack 메시지 날짜도 KST 명시

3. LangGraph 적용 검토

목적: 실패 복구와 확장성 개선

  • StateGraph로 각 단계를 노드화 (UUID조회→메일조회→필터링→요약→Slack전송)
  • 체크포인트로 부분 실패 시 해당 단계만 재실행
  • 향후 병렬 처리, Human-in-the-loop, 다계정 동시 처리 가능

교훈

  • 타임존 명시 필수: datetime.now() 대신 datetime.now(KST) 사용
  • 요일별 로직 차별화: 업무 특성상 월요일은 주말 포함 조회 필요
  • 복잡한 워크플로우는 오케스트레이션 도구 고려: 단순 함수 체인보다 LangGraph가 실패 복구에 유리