피드로 돌아가기
주소정제 서비스 내재화 - 5화 ( 어질어질한 변화구들 )
컬리 기술블로그컬리 기술블로그
Backend

주소정제 서비스 내재화 - 5화 ( 어질어질한 변화구들 )

컬리가 복합건물 주소정제에 RefineAddressAccuracyLevel Enum을 도입해 외부 API 호출을 일 150건 수준으로 감소

2025년 1월 20일12intermediate

Context

단독건물 정제로도 전체 트래픽의 40%가 외부업체 API 호출을 피할 수 없었고, 복합건물(아파트, 다세다 주택)에서 동 정보 추출 실패가 배송 실패로 직결되는 문제가 발생했습니다. 고객의 자유로운 입력 형식(208동, 208-5101, 이백팔동 등)과 유사한 단지명 선택으로 인한 기본주소 오류가 일 평균 150건 규모로 누적되고 있었습니다.

Technical Solution

  • RefineAddressAccuracyLevel Enum 도입: EXACT, HIGH, MODERATE, MEDIUM, LOW, BAD, NONE 7단계로 정제 결과를 분류해 각 케이스별 대응 로직 구분
  • HIGH 레벨 기능 구현: 기본주소의 건물에서 상세동을 찾을 수 없을 때 반경 200~300미터 이내의 인접 단지에서 동일 번호 동이 유일하게 존재하는지 확인 후 기본주소 역추적 정제
  • 전처리 로직 표준화: 고객 입력 상세주소와 행안부 건물DB의 동 이름을 알파벳·한글을 숫자로 통일하는 전처리 과정으로 A동과 가동 혼용 케이스 제거
  • 행안부 건물DB 관리 백오피스 구축: 기본주소·건물관리번호·출고요청번호로 조회 가능하고, 반경 검색·일괄 수정·변경 이력 추적 기능 제공
  • BAD 레벨 즉시 감지 자동화: 상세 동 정보가 누락된 주문을 결제 완료 직후 감지해 Slack 전파 및 고객상담팀 연동으로 재주문 유도

Impact

외부업체 API 호출 비용이 월 35만원에서 일 수십 건 수준으로 감소했습니다. HIGH 레벨 정제 도입 전에는 기본주소 오류로 인한 배송 실패가 대부분이었으나, 일 평균 150건 규모의 고객 기본주소를 자동 정제하게 되었습니다.

Key Takeaway

복합 주소 정제 문제는 단순한 문자열 매칭이 아니라 공간적 인접성(지리정보)과 데이터 품질(행안부 건물DB의 불일치)을 동시에 고려한 멀티레벨 정확도 체계로 해결할 수 있습니다. 또한 비개발자가 참여할 수 있는 관리 도구 설계가 데이터 정제 속도와 팀 효율성 모두에 미치는 영향을 간과해서는 안 됩니다.


물류·배송 서비스에서 주소 정제 로직을 구축할 때, 고객 입력값의 정확도 레벨을 Enum으로 분류하고 각 레벨별 대응 전략을 사전 정의하면 외부 서비스 의존성을 30~40% 감소시킬 수 있습니다. 특히 기본주소 오류로 인한 배송 실패를 방지하려면 반경 검색을 통한 인접 건물 조회와 지리정보 기반 자동 정제가 필수적입니다.

원문 읽기