매장 관리 | 매장 목록 조회 API 구현

Faithful Dev·2025년 3월 15일

매장 예약 서비스

목록 보기
6/15

구현한 기능

  • 매장 목록 조회 API 구현 (가나다순, 거리순 정렬 기능 포함)
  • 사용자 위치 기반 매장 거리 계산 기능 구현 (Haversine 공식 활용)
  • 매장 정보에 위도/경도 데이터 추가

과제 요구사행에 따른 매장 목록 조회 API를 구현했다. 과제에서는 가나다순, 별점순, 거리순 정렬을 요구했으나 현재 별점 기능이 구현되지 않았기 때문에 가나다순과 거리순 정렬만 구현했다.

// StoreService.java - 거리 계산 로직
private double calculateDistance(double lat1, double lon1, double lat2, double lon2) {
    final int R = 6371; // 지구 반경 (km)
    
    double latDistance = Math.toRadians(lat2 - lat1);
    double lonDistance = Math.toRadians(lon2 - lon1);
    
    double a = Math.sin(latDistance / 2) * Math.sin(latDistance / 2)
            + Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2))
            * Math.sin(lonDistance / 2) * Math.sin(lonDistance / 2);
    
    double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
    
    return R * c; // 킬로미터 단위의 거리
}

구현 예정

  • 예약 가능 시간 조회 API
  • 예약 신청 API(사용자 전용)
  • 예약 목록 조회 API(사용자용/파트너용)
  • 예약 상세 조회 API
  • 예약 취소 API
  • 매장 목록 조회 API (정렬: 별점순)
profile
Turning Vision into Reality.

0개의 댓글