개밟자 블로그

23.07.22 모각코 3주차 활동 결과 본문

2023 하계 모각코

23.07.22 모각코 3주차 활동 결과

0taek 2023. 7. 25. 16:53

RepairShop Controller API

카카오 맵 API 요청 및 JSON Parsing

우체국 제공 지역 DB Parsing

  1. 카카오 맵 API를 활용하여 도로명 주소 기반의 정보 검색
  2. 응답 결과를 통해 지점 이름, 상세 주소, 경도, 위도를 파악 후 상세 주소를 기반으로 우편 번호를 가져옴
  3. 우체국 DB.txt의 구성 요소와 API 응답 결과가 일치하는 우편 번호를 가져옴

 

시나리오

  • 가까운 지점 찾기 및 Fallback-Case
    • 유저가 특정 위치를 지정하여 검색을 시도한 상황
    • 유저가 본인 위치를 기반으로 검색을 시도한 상황

    Solution
    1. Fallback-Case
      • User 테이블에 latitude, longitude, gps_authorized 컬럼을 추가하여 사용자의 위치 활용 동의 여부를 파악할 수 있다. 동의를 하면 해당 컬럼은 true이고, 아니라면 false이다.
      • 위치 가져오기 Service 실행 전, Controller 단에서 해당 유저의 위치 활용 동의 여부를 확인하여 어떤 검색을 시도할 것인지 판단한다.
      • 만약, 동의하지 않았다면 “특정 위치를 지정하여 검색”을 강제 하도록 한다.
    2. 유저가 특정 위치를 지정하여 검색을 시도한 상황
      • 현재 유저 ID와 지정한 위치의 위도, 경도 값을 입력으로 받아서 가져온다.
      • MySQL의 Spatial 연산을 통해, DB에 저장된 매장과 지정 위치의 거리를 계산하여 반경 5km내 거리의 매장을 검색하여 거리의 오름차순 List로 돌려받는다.
      • 가장 가까운 매장은 해당 리스트의 첫 번째 요소이다.
    3. 유저가 본인 위치를 기반으로 검색을 시도한 상황
      • Controller 단에서 유저의 활용 동의 여부를 판단하는 Service를 실행하여, 활용을 동의 하였다면 User DB에 저장된 경도, 위도를 활용해서 검색한다.
      • 만약, 동의하지 않았다면(gps_authorized == false) Solution-2의 방법을 따른다.
      • 검색 방식은 Solution-2와 동일하다.