주소정제 서비스 내재화 - 4화 ( 슬픈예감 )
이준환 · 컬리 · 컬리 기술 블로그
소개
단독건물 주소정제 정복 (feat.전라북도와 부천시의 습격)
AI 핵심 요약
전국 건물 DB를 활용해 단독건물 주소 요청을 내부에서 정제하고 외부 API 호출을 줄이려 했지만, 주소 입력의 누락·오타와 도로명 표기 변형, 행정구역 변경이 예상보다 까다로웠다. 주소 문자열에서 시·군·구, 읍·면·동, 도로명, 건물번호를 순차 추출하는 `AddressSearchParam`을 만들고, 모호하거나 예외가 생기면 기존 외부 정제 흐름으로 넘기는 보수적인 방식을 택했다. 부천시와 전라북도의 행정구역 변경에는 건물관리번호가 바뀌지 않는다는 점을 이용해 구주소 요청도 수용하고, 검색 규칙과 DB 갱신으로 대응했다. 단독건물 비중은 98%였지만 실제 외부 호출 감소는 약 60%에 그쳤으며, 건물 수 비율과 주문 트래픽 비율은 다를 수 있다는 점을 확인했다.
- 주소 문자열은 항목을 하나씩 추출하고 제거하는 방식으로 파싱하면, 일부 정보가 빠진 요청도 나머지 정보로 처리할 여지를 남길 수 있다.
- 도로명은 숫자와 한글이 붙거나 여러 도로명이 이어지는 입력을 고려해 정규화한 뒤 추출하고, 실제 실패 사례를 테스트에 추가한다.
- 주소 파싱에서 예외가 발생하면 기존 외부 주소정제 서비스로 넘기는 폴백을 두어 안정성을 확보한다.
- 행정구역 명칭이 바뀌어도 건물관리번호는 유지된다는 점을 활용해, 구주소와 신주소를 함께 받아들이고 결과는 새 명칭으로 통일할 수 있다.
- 건물 유형의 개수 비율만으로 트래픽 절감 효과를 예측하지 말고, 실제 요청 빈도와 복합건물의 반복 주문을 함께 살펴야 한다.
비슷한 학습 자료
주소정제 서비스 내재화 - 마지막 화 ( 엔드 게임 )
이준환 · 컬리 기술 블로그
주소정제 서비스 내재화 - 5화 ( 어질어질한 변화구들 )
이준환 · 컬리 기술 블로그
주소정제 서비스 내재화 - 3화 ( 노가다의 달달한 열매 )
이준환 · 컬리 기술 블로그
주소정제 서비스 내재화 - 2화 ( 그럴싸한 계획 )
이준환 · 컬리 기술 블로그
주소정제 서비스 내재화 - 1화 ( 줄줄 새는 돈 )
이준환 · 컬리 기술 블로그
DDD와 MSA 기반으로 좋은 서비스 개발하기
조문옥 · 컬리 기술 블로그