목표
개발자는 품질이 좋지 않을 수 있는 고객 주소가 포함된 데이터 세트를 사용하는 경우가 많습니다. 고객 ID 확인부터 배송에 이르기까지 다양한 사용 사례에 맞게 주소가 올바른지 확인해야 합니다.
Address Validation API는 주소를 확인하는 데 사용할 수 있는 Google Maps Platform의 제품입니다. 하지만 한 번에 하나의 주소만 처리합니다. 이 문서에서는 API 테스트에서 일회성 및 반복 주소 확인에 이르기까지 다양한 시나리오에서 대량 주소 확인을 사용하는 방법을 살펴봅니다.
사용 사례
이제 대량 주소 검증이 유용한 사용 사례를 알아보겠습니다.
테스트
수천 개의 주소를 실행하여 Address Validation API를 테스트하는 경우가 많습니다. 쉼표로 구분된 값 파일에 주소가 있고 주소의 품질을 검사하려고 할 수 있습니다.
일회성 주소 확인
Address Validation API에 온보딩하는 동안 사용자 데이터베이스를 기준으로 기존 주소 데이터베이스를 검증하려고 합니다.
주소 반복 확인
다음과 같은 여러 시나리오에서 반복적으로 주소를 확인해야 합니다.
- 고객 가입, 주문 세부정보, 배송 일정 등 하루 동안 캡처된 세부정보의 주소를 확인하는 작업을 예약했을 수 있습니다.
- 판매 부서에서 마케팅 부서로 전송되는 주소가 포함된 데이터 덤프를 수신할 수 있습니다. 주소를 수신하는 새 부서에서는 주소를 사용하기 전에 유효성을 검사하려고 하는 경우가 많습니다.
- 설문조사 또는 다양한 프로모션 중에 주소를 수집하고 나중에 온라인 시스템에서 업데이트할 수 있습니다. 시스템에 주소를 입력하는 동안 주소가 올바른지 확인하려 합니다.
기술 심층 정보
이 문서에서는 다음과 같이 가정합니다.
- 고객 데이터베이스 (즉, 고객 세부정보가 포함된 데이터베이스)의 주소를 사용하여 Address Validation API를 호출합니다.
- 데이터베이스의 개별 주소에 대해 유효성 플래그를 캐시할 수 있습니다.
- 유효성 플래그는 개별 고객이 로그인할 때 Address Validation API에서 가져옵니다.
프로덕션용 캐시
Address Validation API를 사용할 때는 API 호출의 응답 중 일부를 캐시하는 것이 좋습니다. Google 서비스 약관에서는 캐시할 수 있는 데이터를 제한하지만 Address Validation API에서 캐시할 수 있는 모든 데이터는 사용자 계정에 대해 캐시해야 합니다. 즉, 데이터베이스에서 주소 또는 주소 메타데이터는 사용자의 이메일 주소 또는 기타 기본 ID에 대해 캐시되어야 합니다.
대량 주소 검증 사용 사례의 경우 데이터 캐싱은 11.3 섹션에 설명된 Address Validation API 서비스별 약관을 따라야 합니다. 이 정보를 바탕으로 사용자의 주소가 잘못되었는지 확인할 수 있으며, 이 경우 다음에 애플리케이션과 상호작용할 때 사용자에게 수정된 주소를 입력하라는 메시지를 표시합니다.
- AddressComponent 객체의 데이터
confirmationLevel
inferred
spellCorrected
replaced
unexpected
실제 주소에 관한 정보를 캐시하려면 사용자의 동의가 있는 경우에만 해당 데이터를 캐시해야 합니다. 이렇게 하면 사용자가 특정 서비스에서 주소를 저장하는 이유를 잘 알고 있으며 주소 공유 약관에 동의하는지 확인할 수 있습니다.
사용자 동의의 예로는 결제 페이지의 전자상거래 주소 양식과 직접 상호작용하는 경우가 있습니다. Google에서는 배송을 위해 주소를 캐시하고 처리한다는 점을 이해합니다.
사용자의 동의를 얻은 후 응답에서 formattedAddress
및 기타 주요 구성요소를 캐시할 수 있습니다. 하지만 헤드리스 시나리오에서는 백엔드에서 주소 유효성 검사가 이루어지므로 사용자가 동의할 수 없습니다. 따라서 이 헤드리스 시나리오에서는 매우 제한된 정보를 캐시할 수 있습니다.
응답 이해
Address Validation API 응답에 다음 마커가 포함된 경우 입력 주소의 품질이 우수하다고 확신할 수 있습니다.
- Verdict 객체의
addressComplete
마커는true
입니다. - Verdict 객체의
validationGranularity
는PREMISE
또는SUB_PREMISE
입니다. - AddressComponent 중 다음과 같이 표시된 항목이 없습니다.
Inferred
(참고: inferred=true
addressComplete=true
일 때 발생할 수 있음)spellCorrected
replaced
unexpected
및
confirmationLevel
: AddressComponent의 확인 수준이CONFIRMED
또는UNCONFIRMED_BUT_PLAUSIBLE
로 설정됩니다.
API 응답에 위의 마커가 포함되지 않으면 입력 주소의 품질이 좋지 않은 것일 수 있으며 이를 반영하기 위해 데이터베이스에 플래그를 캐시할 수 있습니다. 캐시된 플래그는 주소 전체의 품질이 좋지 않다는 것을 나타내며, 맞춤법이 수정됨과 같은 더 상세한 플래그는 특정 유형의 주소 품질 문제를 나타냅니다. 품질이 좋지 않은 것으로 신고된 주소를 사용하는 다음 고객 상담에서 기존 주소를 사용하여 Address Validation API를 호출할 수 있습니다. Address Validation API는 수정된 주소를 반환하며, 이 주소는 UI 메시지를 사용하여 표시할 수 있습니다. 고객이 형식이 지정된 주소를 수락하면 응답에서 다음을 캐시할 수 있습니다.
formattedAddress
postalAddress
addressComponent componentNames
또는UspsData standardizedAddress
헤드리스 주소 유효성 검사 구현
위의 논의를 바탕으로 다음 사항을 확인하세요.
- 비즈니스적인 이유로 Address Validation API의 응답 일부를 캐시해야 하는 경우가 많습니다.
- 하지만 Google Maps Platform의 서비스 약관에 따라 캐시할 수 있는 데이터가 제한됩니다.
다음 섹션에서는 서비스 약관을 준수하고 대량의 주소 유효성 검사를 구현하는 방법에 관한 두 단계 프로세스를 설명합니다.
1단계:
첫 번째 단계에서는 기존 데이터 파이프라인에서 대량 주소 유효성 검사 스크립트를 구현하는 방법을 살펴봅니다. 이 프로세스를 통해 서비스 약관을 준수하는 방식으로 Address Validation API 응답의 특정 필드를 저장할 수 있습니다.
다이어그램 A: 다음 다이어그램은 대량 주소 검증 로직으로 데이터 파이프라인을 개선하는 방법을 보여줍니다.
서비스 약관에 따라 addressComponent
에서 다음 데이터를 캐시할 수 있습니다.
confirmationLevel
inferred
spellCorrected
replaced
unexpected
따라서 구현의 이 단계에서 위에서 언급한 필드를 UserID에 대해 캐시합니다.
자세한 내용은 실제 데이터 구조를 참고하세요.
2단계:
1단계에서 입력 데이터 세트의 일부 주소가 품질이 좋지 않을 수 있다는 의견을 수집했습니다. 다음 단계에서는 이러한 신고된 주소를 사용자에게 표시하고 저장된 주소를 수정하는 데 동의를 얻습니다.
다이어그램 B: 이 다이어그램은 사용자 동의 흐름의 엔드 투 엔드 통합이 어떻게 표시될 수 있는지 보여줍니다.
- 사용자가 로그인하면 먼저 시스템에 유효성 검사 플래그를 캐시했는지 확인합니다.
- 신고가 있는 경우 사용자에게 주소를 수정하고 업데이트할 수 있는 UI를 표시해야 합니다.
- 업데이트되거나 캐시된 주소로 Address Validation API를 다시 호출하고 수정된 주소를 사용자에게 표시하여 확인할 수 있습니다.
- 주소의 품질이 우수하면 Address Validation API는
formattedAddress
를 반환합니다. - 수정된 경우 사용자에게 해당 주소를 표시하거나 수정되지 않은 경우 자동으로 수락할 수 있습니다.
- 사용자가 수락하면 데이터베이스에
formattedAddress
를 캐시할 수 있습니다.
결론
대량 주소 검증은 많은 애플리케이션에서 발생할 수 있는 일반적인 사용 사례입니다. 이 문서에서는 Google 지도 플랫폼 서비스 약관을 준수하는 이러한 솔루션을 구현하는 방법에 관한 몇 가지 시나리오와 디자인 패턴을 보여줍니다.
또한 대량 주소 유효성 검사의 참조 구현을 GitHub의 오픈소스 라이브러리로 작성했습니다. 대량 주소 유효성 검사를 사용하여 빌드를 빠르게 시작하려면 확인해 보세요. 다양한 시나리오에서 라이브러리를 사용하는 방법에 관한 디자인 패턴에 관한 도움말도 참고하세요.
다음 단계
안정적인 주소로 결제, 배송, 운영 개선 워크페이퍼를 다운로드하고 주소 확인으로 결제, 배송, 운영 개선 웨비나를 시청하세요.
추가로 읽어볼 만한 자료:
- 대량 주소 확인의 애플리케이션
- GitHub의 Python 라이브러리
- Address Validation 데모를 살펴보세요.
참여자
Google에서 이 도움말을 유지관리합니다. 다음 참여자가 원래 작성했습니다.
주요 저자:
헨릭 발브 | 솔루션 엔지니어
토마스 앙글라레트 | 솔루션 엔지니어
사르탁 강구리 | 솔루션 엔지니어