본문으로 건너뛰기

궁합 (/compatibility)

파트너를 등록하고 사주 궁합 결과를 조회하는 화면입니다. 유료 기능으로 결제 흐름과 연결됩니다.

관련 경로

app/(main)/compatibility/page.tsx
widgets/compatibility/
widgets/compatibility-result/
features/compatibility/
├── hooks/
├── model/
└── ui/
entities/compatibility/
entities/partner/
app/api/compatibility/route.ts
app/api/partners/route.ts
app/api/partners/[partnerId]/route.ts
app/api/saju/me/compatibility/[partnerId]/route.ts

파트너 관리

궁합 대상은 파트너로 등록합니다.

BFF설명
GET /api/partners파트너 목록 조회
POST /api/partners파트너 등록
PUT /api/partners/[partnerId]파트너 수정
DELETE /api/partners/[partnerId]파트너 삭제

파트너 목록 캐시는 PARTNERS_QUERY_KEY 기준으로 무효화합니다.

궁합 결과 흐름

파트너 선택
→ GET /api/saju/me/compatibility/[partnerId]
→ 궁합 풀이 결과 표시
→ 유료 콘텐츠 → 결제 유도

Turnstile 복구

  • 궁합 화면은 일일 사주 요약과 일부 보호 API를 함께 사용합니다.
  • Turnstile 검증 쿠키가 없거나 만료되면 관련 요청이 403 TURNSTILE_REQUIRED를 반환할 수 있습니다.
  • 이 경우 compatibility feature는 /verify?returnTo=/compatibility 로 보내고, 재검증 후 같은 화면으로 복귀합니다.
  • 비로그인 사용자는 먼저 /login?next=/compatibility 흐름을 탑니다. /verify는 로그인 이후 Turnstile 만료 복구 전용입니다.

결제 연동

  • POST /api/payment/verify — 결제 완료 후 서버 검증
  • 결제 전·후 콘텐츠 노출 범위를 features/compatibility에서 관리