장소 추천
GET /api/place/recommend
요청
Headers
Authorization: Bearer {accessToken}
쿼리 파라미터 없음. 오늘 날짜 기준으로 자동 조회합니다.
응답
성공 200 OK
오늘의 기운에 맞는 Kakao Maps 검색 키워드 4개와 오늘 가장 강한 오행 정보를 반환합니다.
{
"status": 200,
"message": "success",
"data": {
"keywords": ["공원", "갤러리", "스파", "한정식"],
"strongestElement": "목",
"strongestScore": 30.0
}
}
응답 필드 설명
| 필드 | 설명 |
|---|---|
keywords | GPT가 오늘 기운 기반으로 생성한 Kakao Maps 검색 가능 키워드 4개 |
strongestElement | 사주 오행 중 비율이 가장 높은 오행 |
strongestScore | 해당 오행의 비율 (%) |
프론트엔드 연동 방식
서버 응답 keywords[0] → Kakao Local API 검색 → 지도에 장소 핀 표시
서버 응답 keywords[1] → Kakao Local API 검색 → ...
서버는 키워드만 생성하고, 실제 장소 검색은 프론트엔드가 Kakao Local API를 직접 호출합니다. GPS 좌표는 서버에 전송되지 않습니다.
에러
| 상황 | HTTP | errorCode |
|---|---|---|
| 사주 미등록 | 404 | SAJU_NOT_FOUND |
| 오늘 기운 미생성 | 404 | DAILY_ENERGY_NOT_FOUND |
공통 에러 응답 형식
{
"status": 404,
"errorCode": "SAJU_NOT_FOUND",
"message": "사주 정보를 찾을 수 없습니다."
}
전체 에러 코드 목록
| HTTP | 에러 코드 | 설명 |
|---|---|---|
| 400 | INVALID_INPUT | 필수값 누락, 형식 오류 |
| 400 | INVALID_BIRTH_DATE | 불가능한 날짜, 미래 날짜 |
| 401 | UNAUTHORIZED | 토큰 누락·만료 |
| 401 | INVALID_TOKEN | JWT 서명 검증 실패 |
| 401 | REFRESH_TOKEN_EXPIRED | RT 만료 (14일 초과) |
| 403 | ACCESS_DENIED | 타인 리소스 접근 |
| 404 | SAJU_NOT_FOUND | 사주 미등록 |
| 404 | PARTNER_NOT_FOUND | 파트너 없음 |
| 409 | SAJU_ALREADY_EXISTS | 사주 중복 등록 |
| 500 | LLM_ERROR | GPT 분석 오류 |
| 502 | EXTERNAL_API_ERROR | 외부 API(Ablecity·Kakao) 장애 |