프론트 팀과 api에 대한 회의 결과, 지역명을 키워드로 하는 검색 기능을 개발하기로 했다. 그리고 백엔드에서 어떻게 구현할 것인지 고민하던 중 2가지 선택지가 발생했다.

  1. 사용자가 지역명을 직접 입력하는 경우
  2. select box 같은 기능을 이용하여 사용자가 지정된 지역명을 클릭하는 경우

첫 번째로 기능을 구현한다면 사용자는 편리하지만 개발자는 힘들어진다. 개발자가 힘든 이유는 입력 값에 대해 parsing하는 로직을 만들어야 하기 때문이다. 그리고 올바른 주소인지 검증하는 로직도 필요할 것이다. 더욱이 어려운 점은 주소의 형식이 항상 일관되지 않다는 점이다. 예를 들면 아래와 같은 경우가 있다.

그리고 또 “경남”이라고 검색하는 경우, 이는 “경상남도”를 지칭한다. 이러한 줄임말에 대해서도 검색이 이루어지는 기능을 구현해야 할 것이다. 이 밖에도 시/군/구, 읍/면/리 등을 포함하면 많은 이름이 중복될 수 있으므로 어려움이 따른다.

그래서 두 번째 방법인 select box를 사용할 것을 가정하고 기능을 먼저 구현하기로 했다. 그렇지만 이 방법도 문제가 아주 없는 것도 아니다. 아래의 주소들을 보자.