docs: FastAPI 구조 원칙 명시 - 비즈니스 로직/스케줄링/설정 분리
This commit is contained in:
parent
0987daf28c
commit
89f93f054e
@ -20,15 +20,19 @@ tags: [naverworks, briefing, timezone, langgraph]
|
||||
- `rb8001/app/skills/naverworks_briefing.py:209`: Slack 날짜 표시도 KST 없음
|
||||
|
||||
## 수정 필요 사항
|
||||
**FastAPI 구조 원칙**: 비즈니스 로직(skills/)만 수정, 스케줄링(scheduler/jobs/)과 설정(settings.py)은 유지
|
||||
|
||||
### 1. 시간대 및 조회 기간
|
||||
### 1. 시간대 및 조회 기간 (app/skills/naverworks_briefing.py)
|
||||
- 78번 라인: ZoneInfo("Asia/Seoul") 적용
|
||||
- 79번 라인: 월요일(weekday()==0) 72시간, 화~금 24시간
|
||||
- 85-86번 라인: startSearchDate, endSearchDate는 ISO 형식 유지
|
||||
|
||||
### 2. 필드명 및 타입 처리
|
||||
- skill-email 응답: `date` 필드 사용 (`receivedTime` 아님)
|
||||
- `from` 필드: 문자열 또는 객체 혼재 가능 (isinstance 체크 필요)
|
||||
- skill-email 응답: `emails[].date` 필드 사용 (`receivedTime`은 응답에 없음, 내부 필터링용)
|
||||
- `from` 필드 형태:
|
||||
- NaverWorks: 딕셔너리 `{'name': 'Figma', 'email': 'support@figma.com'}`
|
||||
- Gmail: 문자열 `'sender@gmail.com'`
|
||||
- 타입 체크 필수 (isinstance 사용)
|
||||
|
||||
### 3. 현재 환경 정보
|
||||
#### 51123 서버 (인증/DB)
|
||||
@ -38,13 +42,14 @@ tags: [naverworks, briefing, timezone, langgraph]
|
||||
|
||||
#### 51124 서버 (실행)
|
||||
- 실행: rb8001 컨테이너에서 매일 오전 9:10 (외부 크론)
|
||||
- 내부 APScheduler: rb8001/app/main.py:49에서 이미 실행 중
|
||||
- 내부 APScheduler: rb8001/app/main.py:49에 있으나 env로 기본 비활성
|
||||
- DB 연결: PostgreSQL (DATABASE_URL 환경변수)
|
||||
- 중복 실행 방지: NAVERWORKS_BRIEFING_ENABLED=false 설정 가능
|
||||
- API 인증: skill-email은 X-API-Key 불필요, skill-slack은 X-API-Key 필수
|
||||
|
||||
## LangGraph 적용 방안
|
||||
**현재 상태**: LangGraph 미도입 (requirements.txt, 코드에 없음)
|
||||
|
||||
### 구현 계획
|
||||
### 구현 계획 (향후 적용 시)
|
||||
1. **StateGraph 구조**
|
||||
- 노드: get_uuid → fetch_emails → filter_important → generate_summary → format_message → send_slack
|
||||
- 상태 키: user_uuid, emails, important_emails, summary, slack_message
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user