주소 확인과 지오코딩 비교

목표

장소의 위치를 검증해야 하는 경우가 많습니다. Google Maps Platform에는 이 사용 사례에 도움이 되는 몇 가지 서비스가 있습니다. 이 문서는 Address Validation API와 Geocoding API라는 두 가지 주요 위치 확인 서비스 중에서 선택하는 데 도움이 됩니다.

Address Validation API는 고객이 주소의 정확성을 검증하는 데 도움이 되는 Google Maps Platform의 서비스입니다.

Geocoding API를 사용한 지오코딩은 주소를 지리 좌표로 변환하는 프로세스입니다. 이 좌표를 사용하여 지도에 마커를 배치하거나 지도에 위치를 표시할 수 있습니다.

Address Validation API와 Geocoding API의 차이점에 대한 대략적인 개요는 여기에서 확인할 수 있습니다.

Address Validation API와 Geocoding API 중 선택해야 하는 경우

Address-Validation-vs-Geocoding

위 흐름 차트에 관한 참고사항:

  • 사용자 상호작용 사용 사례는 사용자가 결과와 상호작용하는 경우를 의미합니다.
  • Place Autocomplete은 JavaScript API이므로 사용자 인터페이스와 통합하는 데 적합합니다.
  • 기존 주소의 데이터 품질 문제를 알고 있을 수 있습니다. 따라서 지오코딩만 원하는 경우에도 Address Validation API를 통해 해당 위치를 실행하여 데이터 세트를 수정하는 것이 좋습니다.

위의 결정 트리를 기반으로 한 제품을 다른 제품보다 우선적으로 사용해야 하는 상황은 많습니다. 하지만 목표를 달성하기 위해 두 제품을 모두 사용해야 하는 경우도 있습니다.

다음과 같은 경우 Geocoding API 대신 Address Validation API를 사용하는 것이 좋습니다.

  • 의심스러운 데이터가 있을 가능성이 높거나 잘못된 주소를 가져오면 다운스트림에 부정적인 영향을 미칠 수 있는 경우 Address Validation API는 입력에 대해 높은 정밀도 결과가 수신되지 않은 이유에 관한 더 많은 의견을 제공하기 때문입니다.
  • 사용자 입력(예: 맞춤법 오류 또는 누락된 필드)을 수정해야 하며, 이렇게 하면 출력에서 정확한 결과가 나올 가능성이 높아집니다.
  • 대상 지역은 Geocoding API에 비해 Address Validation API에서 더 많은 메타데이터를 반환합니다(예: 건물 유형을 주거용과 상업용으로 분류).

다음과 같은 경우 Address Validation API 대신 Geocoding을 사용할 수 있습니다.

  • 주요 목표는 주소의 위치를 검색하는 것이며 개별 주소의 정확성은 중요하지 않을 수 있습니다.
    • 예를 들어 대규모 데이터 세트에서 히트맵을 생성할 수 있습니다.
  • 건물 입구, 건물 윤곽선, 승차 및 하차 내비게이션 지점과 같은 초지역적 목적지 세부정보가 필요합니다(Geocoding API v4의 SearchDestinations 메서드에서 사용 가능).
  • 글로벌 솔루션이 필요하지만 일부 타겟 리전에서 Address Validation API를 사용할 수 없습니다.

다음은 Geocoding API와 비교하여 Address Validation API 기능을 보여주는 몇 가지 예입니다.

잘못된 주소 예시

1 Fake St, Mountain View, CA 94043, USA

Address Validation API는 이 입력을 개별 주소 구성요소(도로, 도시, 주 등)로 세분화합니다. 또한 주소가 유효하지 않은 이유에 대해 PREMISE 수준까지 세부적인 의견을 제공할 수 있습니다.

Fake St는 캘리포니아주 마운틴뷰에 존재하지 않으며, Address Validation API는 반환된 구성요소 수준 세부정보에 이를 반영합니다.

{
  "componentName": {
    "text": "Fake St",
    "languageCode": "en"
   },
   "componentType": "route",
   "confirmationLevel":"UNCONFIRMED_BUT_PLAUSIBLE"
 }

이 경우 검사해야 할 중요한 속성은 confirmationLevel입니다. Fake St에 대해 UNCONFIRMED_BUT_PLAUSIBLE를 반환함으로써 API는 도로 이름이 될 수 있지만 지원 주소 데이터와 일치시킬 수 없다고 판단했습니다.

API 결과를 피드백으로 사용하면 이 입력의 거리 구성요소(Fake St)에 문제가 있다고 추론할 수 있습니다.

Geocoding API에서 동일한 주소를 사용하면 다음 지오코더 도구 스크린샷과 같이 'California'와 일치하는 항목을 찾을 수 있습니다.

alt_text

하지만 결과는 전체 주에 대한 지오코드로, 입력의 어떤 구성요소에 결함이 있을 수 있는지에 대한 피드백은 최소화됩니다.

맞춤법 오류 예시

76 Buckingamm Palace Road, Londn, SW1W 9TQ, GB

위 주소에는 도로명과 지역에 각각 하나씩 맞춤법 오류가 있습니다.

Address Validation API와 Geocoding API는 모두 이러한 실수를 수정하고 76 Buckingham Palace Road, London, SW1W 9TQ라는 결과를 얻을 수 있습니다. 하지만 Address Validation API는 이 프로세스에 관한 자세한 정보를 제공할 수 있습니다.

입력 시 철자가 잘못된 주소 구성요소 중 하나를 살펴보겠습니다.

{
  "componentName": {
    "text": "Buckingham Palace Road",
    "languageCode": "en"
        },
        "componentType": "route",
        "confirmationLevel": "CONFIRMED",
        "spellCorrected": true
     }
}

Address Validation API는 필드가 수정되었음을 나타내는 플래그를 반환합니다. 이 플래그에 대해 비즈니스 로직을 구현하여 전자상거래 결제 시 고객과 같은 데이터 제공업체에서 수정사항을 다시 확인할 수 있습니다.

누락된 데이터 및 맞춤법 오류 예시

Bollschestraße 86, 12587, DE

위 주소는 도로명에 맞춤법 오류가 있으며 도시(지역)인 베를린이 누락되었습니다.

Address Validation API는 이 두 오류를 모두 수정할 수 있으며 PREMISE 수준의 지오코드와 PREMISE 수준으로 확인된 주소를 반환합니다.

Bölschestraße 86, 12587 Berlin, DE

이 경우 Geocoding API는 입력 오류를 성공적으로 극복할 수 없으며 ZERO_RESULTS 결과를 반환합니다.

추가 주소 메타데이터 예시

111 8th Avenue Ste 123, New York, NY 10011-5201, US

이 주소는 건물 내에 존재하지 않는 호수(Ste 123)를 제외하고는 정확합니다.

Address Validation API는 주소를 PREMISE(111 8th Ave)로 검증하고, 상업용 건물이라는 사실을 포함하여 해당 건물에 관한 메타데이터를 제공할 수 있습니다.

premises:

"business": true

또한 응답에서 uspsData의 일부로 반환되는 dpvConfirmation 값은 S입니다.

"dpvConfirmation": "S"

dpvConfirmation 값이 S이면 주소가 PREMISE 수준으로 검증되었지만 입력에 제공된 호수가 해당 주소와 연결되지 않았음을 나타냅니다.

Geocoding API는 이 정보를 제공할 수 없습니다.

Geocoding API 응답 이해하기

개요

Geocoding API를 사용하는 경우 지오코딩 결과에는 제공된 주소의 세부정보를 이해하는 데 사용할 수 있는 다양한 단서가 응답에 포함됩니다.

Geocoding API는 계층 구조에서 주소 구성요소를 확인하는 방식으로 작동합니다.

예를 들어 123 Example Street, Chicago, 60007, USA는 다음 순서로 확인됩니다.

/ Example Street/ Chicago/ 60007/ USA 이 순서대로 평가됩니다. 이 경우 첫 번째 일치는 시카고이며, 더 구체적으로는 60007 우편번호입니다. 따라서 해당 우편번호에 대해 다음 Place_id를 반환합니다.

ChIJwRKzf8ixD4gRHiXqucwr_HQ

Geocode API는 응답에 다음 정보를 포함합니다.

        "partial_match": true,
           "place_id": "ChIJwRKzf8ixD4gRHiXqucwr_HQ",
           "types": [
               "postal_code"
           ]

Geocoding API는 이 주소가 어떤 유형의 장소에 속하는지 확인할 수 있습니다. Geocoding API에서 반환하는 주소 types 목록은 여기에서 확인할 수 있습니다.

입력의 구성요소가 확인되지 않으면 API는 다음을 반환합니다.

{
   "results": [],
   "status": "ZERO_RESULTS"
}

번지 없이 상세 주소만으로 요청하면 다음과 같은 형식의 결과가 반환됩니다.

"types": [
  "route"
]

즉, Geocoding API가 번지를 찾거나 일치시킬 수 없습니다.

참고: 주소가 있는지 확인하려면 Geocoding API 응답에 매개변수(예: types, partial_match, results, status))가 설정되어 있는지 확인하세요. 이렇게 하면 주소가 존재할 수 있다는 신뢰도가 점차 높아지지만 100% 정확하지는 않습니다. 이것이 바로 Address Validation API가 필요한 이유입니다.

위의 기법을 사용하면 Geocoding API 응답만으로 주소 정확성에 대한 신뢰도를 높일 수 있습니다. 하지만 Address Validation API 결과와 달리 Geocoding API는 결과 정확성을 판단할 수 있는 정확한 의견을 반환하지 않습니다.

위치 유형

이 섹션을 제대로 이해하려면 Geocoding API 응답에서 반환될 수 있는 다양한 위치 유형을 이해해야 합니다.

  • ROOFTOP은 반환된 결과가 상세 주소 수준까지 정확한 위치 정보를 보유한 정확한 지오코드임을 나타냅니다.
  • RANGE_INTERPOLATED는 반환된 결과가 일반적으로 도로에서 정확한 두 지점(예: 교차로) 간에 보간된 근사값을 반영함을 나타냅니다. 삽입(interpolate)된 결과는 일반적으로 옥상 지오코드를 번지수에 사용할 수 없을 때 반환됩니다.
  • GEOMETRIC_CENTER는 반환된 결과가 다중선(예: 거리) 또는 다각형(지역)과 같이 결과의 도형 중심임을 나타냅니다.
  • APPROXIMATE는 반환된 결과가 위의 어느 것도 아님을 나타냅니다.

Geocoding API가 location_type를 ROOFTOP 또는 RANGE_INTERPOLATED로 반환한다고 해서 반드시 주소가 존재하는 것은 아닙니다. 마찬가지로 Geocoding API가 partial_match 플래그를 true로 설정하여 반환하는 경우에도 올바른 결과일 수 있습니다.

이러한 유형의 잘못된 일치는 Geocoding API로 해결하기가 매우 어려운 문제입니다. 최소한 요청/응답의 국가 및 지역에 대한 기본적인 후처리 검증을 구현하는 것이 좋습니다. 실제 상세 주소에 맞춤법 오류 또는 불완전한 주소가 포함되어 있는지 비교하는 것이 더 좋습니다.

참고: Geocoding API를 사용하기로 결정한 경우 초기 요청과 Geocoding API 응답 간의 데이터 품질 검사를 정기적으로 수행하는 것이 좋습니다.

부분 일치 및 잘못된 일치

주소가 부분적으로 일치하는 경우, 즉 Geocoding API가 주소를 정확하게 식별할 수 없는 경우 응답에는 다음이 포함됩니다.

"partial_match": true,
"types": [
           "locality",
           "political"
         ]

위의 위치 유형보다 더 중요한 것은 응답에 partial_match = true가 포함되는 경우를 고려하는 것입니다. partial_match는 Geocoding API가 원래 요청에 대해 정확히 일치하는 결과를 반환하지 않았지만 요청된 주소의 일부분과 일치함을 나타냅니다.

원래 요청에 불완전한 주소가 포함되어 있는지 검사할 수도 있습니다. 부분 일치는 요청에 지정된 지역 내에 상세 주소가 존재하지 않는 경우 가장 자주 발생합니다. 또한, 동일한 지역에서 한 요청에 대해 2개 이상의 위치가 일치하는 경우에도 부분 일치가 반환될 수 있습니다.

예를 들어 '21 Henr St, Bristol, UK'는 Henry Street 및 Henrietta Street 모두에 대해 부분 일치를 반환합니다. 요청에 맞춤법이 틀린 주소 구성요소가 포함된 경우에는 Geocoding API에서 대체 주소를 제안할 수도 있습니다. 이러한 방식으로 실행된 제안은 부분 일치로 표시되지 않습니다.

합성 주소

Geocoding API는 Google 데이터베이스에 정확한 위치로 존재하지 않는 '합성' 주소의 위치를 반환할 수 있습니다.

이러한 시나리오에서 응답 객체에는 긴 장소 ID와 geometry.location_type=APPROXIMATE 속성이 포함되는 경우가 많습니다.

응답에서 이러한 표시기가 발견되면 입력 주소를 잘못된 것으로 표시하고 다른 방법으로 다시 검증해 보세요.

참고: Address Validation API를 사용하면 주소가 존재하지 않는 경우 직접 피드백을 받을 수 있습니다.

Address Validation API 응답 이해하기

Address Validation API의 응답을 이해하는 방법에 관한 유용한 문서가 이미 있으므로 여기서는 자세히 다루지 않겠습니다.

  • 응답 객체의 개요는 여기에서 확인할 수 있습니다.
  • 응답의 다양한 구성요소를 보여주는 데모는 여기에서 확인할 수 있습니다.
  • 결제를 위한 Address Validation 문서에는 올바른 주소와 잘못된 주소를 구분하는 방법이 자세히 설명되어 있습니다.

권장사항

지역 지정

Address Validation API 또는 Geocoding API를 호출할 때는 해당 주소를 검색할 지역을 제한하는 것이 좋습니다. 두 API는 다음과 같은 두 가지 방식으로 이를 구현합니다.

  • Geocoding API - 지역 편향

    지오코드가 특정 국가 내에 있을 것으로 예상되는 경우 지역 상세 검색을 사용하면 훨씬 더 나은 결과를 얻을 수 있습니다. 예를 들어 캐나다에서 지오코딩하는 경우 요청에 &region=ca를 추가하여 캐나다에 편향되도록 하는 것이 좋습니다. 지역 상세 검색은 해당 지역 내의 결과만을 선택합니다. 지역 외부의 결과도 계속 표시될 수 있습니다.

  • Address Validation API - 지역 코드

    마찬가지로 Address Validation API는 regionCode 필드를 사용하여 요청에 ISO2 코드가 전달되면 더 정확한 결과를 생성합니다.

장소 ID 저장하기

이후 요청에 사용할 수 있도록 Google Maps Platform의 위치 정보를 저장하려면 내 데이터베이스에 위치의 속성으로 무기한 장소 ID를 저장할 수 있습니다. 장소 검색 요청은 placeID당 한 번만 실행해야 합니다. 또한 장소 ID는 사용자가 거래 세부정보를 요청할 때마다 검색할 수 있습니다.

항상 최신 정보를 유지하려면 12개월마다 place_id 매개변수를 포함한 장소 세부정보 요청을 사용하여 장소 ID를 새로고침하세요.

참고: 지오코딩 권장사항 가이드도 검토하세요.

결론

이 문서에서는 Address Validation API와 Geocoding API의 핵심 차이점을 설명합니다. 요약하자면 다음과 같은 경우 Address Validation API를 사용하는 것이 좋습니다.

  • 특히 배송을 위해서는 정확한 우편 주소가 필요합니다.
  • 입력 데이터의 품질이 낮은 것으로 알려져 있습니다. Address Validation API는 입력 오류를 더 많이 허용하고, 확인할 수 없는 주소 구성요소를 강조 표시하며, 입력 데이터를 수정합니다.
  • 주거용과 상업용 등 주소에 관한 추가 정보가 필요합니다(일부 지역에서 사용 가능).

다음 단계

신뢰할 수 있는 주소로 결제, 배송, 운영 개선 백서를 다운로드하고 Address Validation으로 결제, 배송, 운영 개선 웹 세미나를 시청하세요.

추천 추가 자료:

참여자

이 도움말은 Google에서 관리합니다. 다음 참여자가 원래 작성했습니다.

주요 작성자:

헨릭 발브 | 솔루션 엔지니어

토마스 앙글라레 | 솔루션 엔지니어

사르탁 강굴리 | 솔루션 엔지니어