개밟자 블로그
23.07.22 모각코 3주차 활동 결과 본문
RepairShop Controller API
카카오 맵 API 요청 및 JSON Parsing
우체국 제공 지역 DB Parsing
- 카카오 맵 API를 활용하여 도로명 주소 기반의 정보 검색
- 응답 결과를 통해 지점 이름, 상세 주소, 경도, 위도를 파악 후 상세 주소를 기반으로 우편 번호를 가져옴
- 우체국 DB.txt의 구성 요소와 API 응답 결과가 일치하는 우편 번호를 가져옴
시나리오
- 가까운 지점 찾기 및 Fallback-Case
- 유저가 특정 위치를 지정하여 검색을 시도한 상황
- 유저가 본인 위치를 기반으로 검색을 시도한 상황
Solution- Fallback-Case
- User 테이블에 latitude, longitude, gps_authorized 컬럼을 추가하여 사용자의 위치 활용 동의 여부를 파악할 수 있다. 동의를 하면 해당 컬럼은 true이고, 아니라면 false이다.
- 위치 가져오기 Service 실행 전, Controller 단에서 해당 유저의 위치 활용 동의 여부를 확인하여 어떤 검색을 시도할 것인지 판단한다.
- 만약, 동의하지 않았다면 “특정 위치를 지정하여 검색”을 강제 하도록 한다.
- 유저가 특정 위치를 지정하여 검색을 시도한 상황
- 현재 유저 ID와 지정한 위치의 위도, 경도 값을 입력으로 받아서 가져온다.
- MySQL의 Spatial 연산을 통해, DB에 저장된 매장과 지정 위치의 거리를 계산하여 반경 5km내 거리의 매장을 검색하여 거리의 오름차순 List로 돌려받는다.
- 가장 가까운 매장은 해당 리스트의 첫 번째 요소이다.
- 유저가 본인 위치를 기반으로 검색을 시도한 상황
- Controller 단에서 유저의 활용 동의 여부를 판단하는 Service를 실행하여, 활용을 동의 하였다면 User DB에 저장된 경도, 위도를 활용해서 검색한다.
- 만약, 동의하지 않았다면(gps_authorized == false) Solution-2의 방법을 따른다.
- 검색 방식은 Solution-2와 동일하다.
'2023 하계 모각코' 카테고리의 다른 글
23.08.10 모각코 5주차 활동 결과 (0) | 2023.08.13 |
---|---|
23.08.06 모각코 4주차 활동 결과 (0) | 2023.08.07 |
23.07.22 모각코 3주차 활동 계획 (0) | 2023.07.25 |
23.07.15 모각코 2주차 활동 결과 (0) | 2023.07.19 |
23.07.15 모각코 2주차 활동 계획 (0) | 2023.07.19 |