puuurm / swift-weatherforecast

iOS app
1 stars 0 forks source link

중복된 지역 이름에 대한 HTTP 404 응답 처리 #33

Closed puuurm closed 6 years ago

puuurm commented 6 years ago

문제: 고유하지 않은 지역 이름으로 서버에 데이터를 요청할 때, 응답을 받지 못하였다. 기존 날씨 데이터를 요청할 때 과정은 다음과 같다.

  1. CLLocationManager를 통해 위치 인식
  2. CLGeocoder를 이용해 위도 경도 정보로 CLPlaceMark로 변환
  3. CLPlaceMark의 var locality: String으로 날씨 데이터 요청

문제는 locality이름이 중복될 경우이다. 충무로역 근처 카페에 갔다가 현재 위치 추적 과정에서 예외가 발생해서 HTTP 404 응답을 받았다.

해결: 문제의 원인은 데이터를 요청할 때 쿼리아이템인 locality 값이 중구였고, 중구에 해당하는 곳이 여러개가 존재했기 때문이다. HTTP 200 응답을 받기 위해서는 예를 들어 위치가 서울특별시 중구 필동2가라면, [필동2가] [필동2가,kr] [중구,kr]을 쿼리 아이템으로 서버에 데이터를 요청해야한다. 즉 더 구체적이고 고유한 지역이름으로 데이터를 요청해야 한다.

앞으로의 과제: 사실상 날씨가 동을 기준으로 바뀌지 않기때문에(물론 상황에 따라서는 바뀌겠지만) 스토어에 있는 앱 마다 구를 기준으로 요청하기도 하고 동을 기준으로 요청하기도 하는 것 같다. 이 부분은 앞으로 테스트를 해가면서 보완해야 할 것 같다.