백엔드 API 문서
사주(四柱) 이론과 AI를 결합한 운세·매치 서비스 saju-me의 백엔드 API입니다.
서비스 흐름 한눈에 보기
생년월일시 입력
↓
Ablecity 사주 엔진 ── 오행(五行) 점수 · 용신 · 격국 · 대운 계산
↓
OpenAI GPT ── 오늘의 기운 해설 / 장소·음식 추천 생성
↓
클라이언트 응답 (기운 점수, 추천 콘텐츠, 궁합 점수)
기술 스택
| 분류 | 스택 |
|---|---|
| 서버 | Spring Boot 3.5 · Java 17 |
| DB | MySQL 8 |
| 외부 사주 엔진 | Ablecity API (비동기 웹훅 방식) |
| AI | OpenAI GPT (json_object 모드 + 도메인 프롬프트) |
| 장애 대응 | Resilience4j Circuit Breaker + Spring Retry (지수 백오프) |
| 캐시 | Caffeine (24h TTL) |
| 인프라 | AWS EC2 · S3 / Docker Compose / GitHub Actions |
핵심 도메인
| 도메인 | 역할 |
|---|---|
| Auth | 카카오 OAuth2 + JWT (Access/Refresh Rotation) |
| Saju | 사주 등록·수정, 오늘의 기운, 연운(年運) |
| Partners | 상대방 사주 등록, 궁합 점수 |
| Place / Food | 오행(용신) 기반 장소·음식 추천 |
| Community | 기수 모집, 카카오 알림톡 |
| Notification | 공지·신규 서비스 알림 |
아키텍처 한 줄 요약
api → application → domain → infra 4계층 Ports & Adapters 구조.
도메인 레이어는 Spring / JPA 의존 없는 순수 Java 객체.
문서 빠른 탐색
| 목적 | 바로 가기 |
|---|---|
| 서비스를 처음 보는 경우 | 서비스 개요 · 주요 기능 |
| API 연동이 필요한 경우 | API 목록 · 요청/응답 예시 |
| 기술 구조가 궁금한 경우 | 인프라 구조 · 트러블슈팅 |