궁합 분석
개요
상대방의 사주 정보를 등록하고 두 사람 간의 오행 기반 궁합 점수와 해설을 조회하는 기능입니다. 연운과 동일하게 비동기 웹훅 방식으로 처리합니다.
흐름
상대방 생년월일시 + 성별 입력
↓
POST /api/partners ← 파트너 사주 저장
↓
GET /api/partners/{partnerId}/compatibility
↓
Ablecity 궁합 분석 요청 (비동기, X-Callback-URL 전달)
↓
CompletableFuture 대기 (최대 120초)
↓
Ablecity → POST /api/internal/callbacks/compatibility/{userId}
↓
DB 저장 → afterCommit() → Future 완료
↓
궁합 점수 + 해설 응답
파트너 관리
- 파트너 등록은 무료입니다.
- 등록된 파트너 목록은
GET /api/partners로 조회합니다. - 궁합 결과 데이터는
CompatibilityInfo도메인에 저장되며, MySQLJSON컬럼으로 Ablecity 원본 응답을 그대로 보존합니다.
동시성 제어
파트너 등록 시 동일 사용자가 동시에 중복 요청을 보내는 경우를 방지하기 위해 비관적 락(PESSIMISTIC_WRITE)을 적용합니다.
응답 상태
연운과 동일하게 complete / pending 두 가지 상태로 응답합니다. 120초 초과 시 PENDING 반환 후 클라이언트가 재요청합니다.