왜 인도 주소 파싱이 망가졌는가 (그리고 내가 만든 해결책)

발행: (2026년 4월 7일 AM 08:21 GMT+9)
4 분 소요
원문: Dev.to

Source: Dev.to

인도 주소의 문제점

모든 나라에는 주소에 대한 특성이 있습니다. 인도의 경우는 그 자체로 하나의 리그에 속합니다.

  • 보편적인 도로 번호 체계가 없습니다.
  • 같은 도시가 Bengaluru, Bangalore, BLR, 혹은 ಬೆಂಗಳೂರು 등으로 표기될 수 있습니다.
  • 주소에 도로명 대신 랜드마크가 포함되는 경우가 많습니다. 예: “Near SBI ATM, Opposite Ganesh Temple”.
  • 인구 14억 명을 커버하는 23,915개의 PIN 코드가 존재합니다.

인도에서 전자상거래, 물류, 핀테크, 혹은 정부 기술을 구축한다면 이 장벽에 부딪히게 됩니다. 현재 사용 가능한 옵션은 다음과 같습니다.

  • 유료 API (Google, India Post의 SOAP 서비스)
  • 특허받은 솔루션 (예: Delhivery)
  • 자체 제작 정규식 해킹

오픈소스 libpostal이 대표적인 주소 파서이지만, 인도 형식에는 잘 맞지 않습니다.

bharataddress 소개

bharataddress는 오프라인으로 동작하는 오픈소스 파이썬 라이브러리로, 비구조화된 인도 주소를 구조화된 JSON으로 변환합니다.

주요 기능

  • 임베디드 데이터셋: 23,915개의 인도 PIN 코드와 해당 주, 구, 우체국 매핑을 모두 포함.
  • 자유형 주소 파싱 – 복잡한 주소를 입력하면 구조화된 JSON을 반환.
  • PIN 코드 검증 및 역조회 (PIN → 주, 구, 우체국).
  • MIT 라이선스이며 외부 서비스 의존성이 전혀 없습니다.
pip install bharataddress

로드맵 및 해결 과제

퍼지 매칭

“Bangalroe” → “Bangalore”, “Mumabi” → “Mumbai”와 같은 오타를 교정합니다. 손으로 입력하는 모바일 데이터에서는 오타가 일반적입니다.

스크립트 지원

데바나가리, 타밀어, 텔루구어, 칸나다어 등 지역 스크립트로 작성된 주소를 처리합니다.

랜드마크 추출

“Near [X]” 혹은 “Opp. [Y]”와 같은 구조적 요소를 파싱합니다. 이러한 요소는 서구식 주소 모델에 매핑되지 않으며, 지오코딩 데이터보다는 메타데이터로 취급하는 것이 좋을 수 있습니다.

기여 및 피드백

GitHub:

인도 주소 데이터와 관련해 만든 것이 있다면, 어떤 점에서 문제가 발생했는지 알려 주세요. 여러분의 경험이 bharataddress 로드맵을 shaping하는 데 큰 도움이 됩니다.

0 조회
Back to Blog

관련 글

더 보기 »

솔로 제품을 만들면서 배운 것

배경: 나는 약 일주일 만에 WhatShipped를 출시했다— 내가 특별히 빠르기 때문이 아니라, 빌드에 최적화하는 대신 배포에 최적화하는 것을 결국 멈췄기 때문이다—