비동기 요청 상태 흐름
궁합 분석은 외부 사주 계산 API에 비동기로 요청하고 웹훅으로 결과를 수신합니다. 서버는 웹훅이 도착할 때까지 응답을 대기하며, 타임아웃 발생 시 PENDING 상태를 반환합니다.
흐름 다이어그램
클라이언트 서버 외부 API
│ │ │
│ GET /compatibility│ │
│──────────────────▶│ │
│ │──── 분석 요청 ────────▶│
│ │ │ (처리 중)
│ │◀─── 웹훅 콜백 ─────────│
│ │
│ ┌─────────┴──────────┐
│ [대기 성공] [타임아웃]
│ │ │
│◀── COMPLETE ──── ──── PENDING ──────────▶│
│
│ [PENDING 수신 시 재요청]
│ GET /compatibility│
│──────────────────▶│
│◀── COMPLETE ──────│
응답 상태
status | 의미 | 응답 본문 |
|---|---|---|
COMPLETE | 분석 완료 | 점수, 섹션별 결과, 총평 포함 |
PENDING | 결과 대기 중 | { "status": "PENDING" } |
해당 API
| 엔드포인트 | 비동기 여부 |
|---|---|
GET /api/saju/me/compatibility/{partnerId} | ✅ PENDING 가능 |
GET /api/saju/me/year-fortune | ❌ 항상 동기 응답 |
클라이언트 처리 권장 패턴
응답 수신
│
status == "COMPLETE"?
├─ Yes ──▶ 결과 화면 렌더링
└─ No (PENDING)
│
└─ 3~5초 후 동일 URL 재요청 (최대 3회)
│
└─ 여전히 PENDING ──▶ "잠시 후 다시 시도해주세요" 안내