사주 분석 & 오늘의 기운
개요
생년월일시 정보를 입력받아 사주 원국(四柱原局)을 계산하고, 이를 기반으로 오늘의 기운 점수와 일별 추천 콘텐츠를 생성하는 핵심 기능입니다.
사주 등록 흐름
생년월일시 + 성별 + 출생도시 입력
↓
POST /api/saju
↓
Ablecity GET /api/v2/saju/fortune ← 사주 8자 계산
↓
Ablecity GET /api/v2/saju/fortune/daily ← 오늘 기운 점수
↓
OpenAI GPT ← 사주 도메인 프롬프트 + 오늘 점수 주입 → 일별 인사이트 생성
↓
saju_info + daily_energy DB 저장
↓
사주 원국 + 오늘의 기운 통합 응답
사주 원국 데이터 구성
Ablecity /fortune 응답으로부터 아래 데이터를 추출해 저장합니다.
| 항목 | 설명 |
|---|---|
| 사주 8자(四柱八字) | 연·월·일·시 각 천간(天干)·지지(地支) 쌍 |
| 오행(五行) 비율 | 목·화·토·금·수 백분율 |
| 신강/신약 | 일간(日干)의 에너지 강도 |
| 격국(格局) | 사주 구조 유형 (예: 식신격, 정관격) |
| 용신(用神) | 도움이 되는 오행 (primary / secondary) |
| 행운 속성 | 행운 숫자·방향·오행 |
| 대운(大運) | 10년 주기 운세 흐름 (Ablecity 원본 JSON) |
| 12운성 | 일별 에너지 단계 (Ablecity 원본 JSON) |
오늘의 기운 생성
점수 계산
todayScore는 Ablecity /fortune/daily 응답의 운세별 점수(재물운·건강운·연애운 등) 평균으로 서버에서 직접 계산합니다. Ablecity가 직접 제공하는 값이 아닙니다.
GPT 인사이트 생성
Ablecity 점수·요약과 사주 원국 데이터를 GPT 프롬프트에 주입해 구조화된 인사이트를 생성합니다.
{
"goodTime": "오후 2~4시",
"mood": "차분한 집중",
"dailyMessage": "오늘은 성실하게 임하면 좋은 결과가 있습니다.",
"goodActions": ["기록", "정리", "독서"],
"avoidActions": ["충동적 결정", "과도한 운동"],
"avoidFlows": ["과한 일정", "감정적 대화"],
"recommendPlaces": ["숲카페", "갤러리", "한강공원"]
}
response_format: { type: "json_object" } 모드를 사용해 응답 파싱 실패를 최소화합니다.
재방문 시 처리
당일 daily_energy 레코드가 이미 존재하면 DB에서 즉시 반환합니다. Ablecity·GPT 재호출 없음.
사주 수정
PUT /api/saju/me 로 기존 사주 정보를 수정할 수 있습니다. 수정 시 원국과 오늘의 기운을 모두 재계산합니다.