유효성 검사 로직 빌드

이 문서에서는 Address Validation API의 다양한 응답을 처리하는 주소 확인 시스템을 빌드하는 프로세스를 설명합니다. 이 도움말에서는 고객에게 추가 정보를 요청할 시점과 방법을 결정하기 위해 API 응답을 해석하는 방법을 설명합니다.

일반적으로 API 응답은 시스템에서 주소를 처리해야 하는 다음과 같은 방법을 결정합니다.

  • 수정: 주소에 심각한 문제가 있을 수 있습니다.
    고객에게 추가 정보를 요청하는 메시지를 표시해 보세요.
  • 하위 부지 추가: 주소에 하위 부지가 누락되었을 수 있습니다.
    고객에게 아파트 동호수를 추가하라는 메시지를 표시하는 것이 좋습니다.
  • 확인: 주소에 약간의 문제가 있을 수 있습니다.
    고객에게 주소가 올바른지 확인하도록 요청하는 것이 좋습니다.
  • 수락: 주소에 문제가 없을 수 있습니다.
    추가 메시지 없이 주소를 사용하는 경우 책임은 본인에게 있습니다.

키 용도

이 문서를 통해 시스템을 수정하여 API 응답을 가장 잘 분석하고 제공된 주소로 취할 다음 작업을 결정할 수 있습니다. 다음의 슈도코드는 가능한 흐름을 보여줍니다.

if (verdict.possibleNextAction == FIX)
    Prompt the user to fix the address.
else if (verdict.possibleNextAction == CONFIRM_ADD_SUBPREMISES)
    Prompt the user to add a unit number.
else if (verdict.possibleNextAction == CONFIRM)
    Confirm with the user that the address is correct.
else
    Continue with the address returned by the API.

정확한 로직은 상황에 따라 다릅니다. 자세한 내용은 유효성 검사 로직 맞춤설정을 참고하세요.

가능한 워크플로

아래 표에는 API 응답에 따라 고객에게 메시지를 표시하기 위해 구현할 수 있는 워크플로가 요약되어 있습니다.

시스템 동작
주소 수정

verdict의 응답은 주소에 심각한 문제가 있을 수 있음을 나타냅니다. 예를 들어 verdict.possibleNextActionFIX입니다. 고객에게 추가 정보를 요청해 보세요.

워크플로

  1. 필요한 경우 주소 구성요소를 조사합니다.
  2. 고객에게 주소 문제를 해결하라는 메시지를 표시합니다.
  3. 업데이트된 주소의 유효성 검사를 요청합니다.
  4. (선택사항) API의 의견 엔드포인트에 요청을 보냅니다. 업데이트된 주소 처리를 참고하세요.
  5. 주소를 진행합니다.
하위 사전 추가

verdict의 응답은 주소에 하위 부지가 누락되었을 수 있음을 나타냅니다. 예를 들어 verdict.possibleNextActionCONFIRM_ADD_SUBPREMISES입니다. 고객에게 아파트 동호수를 추가하라는 메시지를 표시하는 것이 좋습니다.

워크플로

  1. 고객에게 아파트 동호수를 추가하라는 메시지를 표시합니다.
  2. 업데이트된 주소의 유효성 검사를 요청합니다.
  3. (선택사항) API의 의견 엔드포인트에 요청을 보냅니다. 업데이트된 주소 처리를 참고하세요.
  4. 주소를 진행합니다.
주소 확인

verdict의 응답은 주소에 사소한 문제가 있을 수 있음을 나타냅니다. 예를 들어 verdict.possibleNextActionCONFIRM입니다. 고객에게 주소를 검토하도록 안내하는 것이 좋습니다.

워크플로

  1. 수정 필요:
    1. 필요한 경우 주소 구성요소를 조사합니다.
    2. 업데이트된 주소의 유효성 검사를 요청합니다.
    3. (선택사항) API의 의견 엔드포인트에 요청을 보냅니다. 업데이트된 주소 처리를 참고하세요.
    4. 주소를 진행합니다.
  2. 수정 필요 없음:
    1. (선택사항) API의 의견 엔드포인트에 요청을 보냅니다. 업데이트된 주소 처리를 참고하세요.
    2. 주소를 진행합니다.
주소 수락

verdict의 응답은 주소에 문제가 없을 수 있음을 나타냅니다. 예를 들어 verdict.possibleNextActionACCEPT입니다. 위험 수준에 따라 주소를 진행해 보세요.

워크플로

반품 주소로 진행합니다.

유효성 검사 로직 맞춤설정

verdict.possibleNextAction 필드의 결과를 사용하여 시스템이 API 응답을 처리하는 방식을 결정할 수 있지만 비즈니스별 요구사항을 처리하는 등 맞춤 로직을 빌드하는 것도 고려해 볼 수 있습니다.

이 섹션의 목적은 고객에게 메시지를 표시할지 여부와 방법을 결정하기 위해 API 응답을 해석하는 맞춤 로직을 개발하는 방법을 보여주는 것입니다. 이 섹션에서는 맞춤설정에 고려해야 할 위험 수준 및 추가 API 응답 신호를 설명합니다.

하지만 verdict.possibleNextAction만을 사용하여 다음 단계를 결정하더라도 아래에 설명된 추가 신호를 통해 주소와 관련된 잠재적 문제에 관한 세부정보를 파악할 수 있습니다.

위험 허용 범위

시스템이 Address Validation API의 신호에 응답하는 방식을 설계할 때 다음 권장사항을 따르면 더 효과적인 응답 모델을 빌드하는 데 도움이 됩니다. 하지만 이는 권장사항일 뿐이므로 구현은 비즈니스 모델에 적합해야 합니다.

안내 세부정보
위험 수준

수정 메시지를 표시할지 아니면 입력된 주소를 그대로 허용할지 결정할 때는 상황에 대한 허용 수준을 고려하세요.

Address Validation API는 위험 수준과 통합하여 검증 프로세스를 최적화할 수 있는 다양한 신호를 반환합니다.

예를 들어 주소에 확인되지 않은 번지가 포함되어 있더라도 주소를 허용할 수 있습니다. 반면에 비즈니스 운영에 더 정확한 주소가 필요한 경우 사용자에게 메시지를 표시할 수 있습니다. 두 카테고리 중 하나에 속할 수 있는 예시는 주소 허용 - 예시미국 외 미확인 번지수를 참고하세요.

주소 수락

고객이 프롬프트에 응답하지 않는 경우 시스템에서 원래 항목을 허용하도록 하는 것이 좋습니다.

이 경우 고객이 신축 주택의 경우와 같이 시스템에 없는 주소를 입력했을 수 있습니다.

위험 회피 결제 흐름 예시

전송 실패의 위험을 줄이려면 고객에게 더 자주 메시지를 표시하도록 로직을 맞춤설정할 수 있습니다. 예를 들어 주요 목적 섹션에 설명된 로직을 사용하는 대신 다음 로직을 사용할 수 있습니다.

if (verdict.possibleNextAction == FIX or verdict.validationGranularity
== OTHER or verdict.validationGranularity == ROUTE)
  Prompt customer to fix their address.
else if (verdict.possibleNextAction == CONFIRM_ADD_SUBPREMISES)
  Prompt customer to add a unit number.
else if (verdict.possibleNextAction == CONFIRM or verdict.validationGranularity
== PREMISE_PROXIMITY or verdict.hasSpellCorrectedComponents or
verdict.hasReplacedComponents or verdict.hasInferredComponents)
  Prompt customer to confirm their address.
else
  Proceed with the returned address.

간편한 결제 흐름의 예

결제 흐름의 불편을 줄이려면 고객에게 메시지를 더 적게 표시하도록 로직을 맞춤설정할 수 있습니다. 예를 들어 주요 목적 섹션에 설명된 로직을 사용하는 대신 다음 로직을 사용할 수 있습니다.

if (verdict.possibleNextAction == FIX)
  Prompt customer to fix their address.
else if (verdict.hasReplacedComponents)
  Prompt customer to confirm their address.
else
  Proceed with the returned address.

FIX 신호

결과에서 해당 주소로 배송할 수 없음을 명확하게 나타내는 경우 주소를 수정합니다. 그러면 시스템에서 고객에게 필요한 정보를 제공하라는 메시지를 표시할 수 있으며, 이후 워크플로를 다시 실행하여 결과물 주소를 가져올 수 있습니다.

Address Validation API 응답의 다음 필드는 verdict.possibleNextAction 외에도 주소에 심각한 문제가 있는지, 그리고 어떤 문제가 있는지 확인하는 데 사용할 수 있습니다.

유효성 검사 세부사항 주소의 유효성 검사 세부사항 enum이 OTHER인 경우 주소가 잘못되었을 가능성이 큽니다.
구성요소 누락 address.missingComponentTypes가 비어 있지 않으면 주소에 핵심 정보가 누락되었을 가능성이 큽니다.
의심스러운 구성요소 구성요소의 확인 수준 enum이 UNCONFIRMED_AND_SUSPICIOUS이면 구성요소가 잘못되었을 가능성이 큽니다.
해결되지 않은 구성요소 unresolvedToken은 주소의 유효한 부분으로 인식되지 않는 입력의 일부입니다.
USPS DPV 확인 uspsData.dpvConfirmationN이거나 비어 있으면 주소에 문제가 있을 수 있습니다. 이 필드는 미국 주소에만 사용할 수 있습니다. uspsData.dpvConfirmation에 관한 자세한 내용은 미국 주소 처리를 참고하세요.

주소 수정 예

CONFIRM_ADD_SUBPREMISES 신호 (미국 주소만 해당)

Address Validation API 응답에서 주소에 하위 부지가 누락되었을 수 있다고 표시되면 고객에게 주소를 검토하고 아파트 동호수를 추가하도록 요청합니다. 이 경우 건물의 주소는 유효할 수 있지만, 결과 주소가 고객이 의도한 주소인지 더 확실히 확인해야 합니다.

Address Validation API 응답의 다음 필드는 verdict.possibleNextAction 외에도 주소에 하위 부속건물이 누락되었을 가능성이 있는지 확인하는 데 사용할 수 있습니다.

Missing subpremise component address.missingComponentTypes 필드에 subpremise 값이 포함된 경우 주소에서 동호수가 누락되었음을 나타냅니다.
USPS DPV 확인 uspsData.dpvConfirmationS이면 주소의 기본 번호가 USPS 데이터베이스의 주소와 일치함을 의미합니다. 하지만 주소에 보조 번호도 포함되어야 했습니다. 이 필드는 미국 주소에만 사용할 수 있습니다. uspsData.dpvConfirmation에 관한 자세한 내용은 미국 주소 처리를 참고하세요.

하위 부지 주소 예 추가

CONFIRM 신호

확인 결과 Address Validation API가 유효한 주소를 생성하기 위해 주소 구성요소를 추론했거나 변경했음을 나타내는 경우 주소를 확인합니다. 이 경우 발송할 주소가 있지만 결과 주소가 고객이 의도한 주소인지 더 확실히 확인하는 것이 좋습니다.

Address Validation API 응답의 다음 필드는 verdict.possibleNextAction 외에도 주소에 경미한 문제가 있는지, 그리고 어떤 문제가 있는지 확인하는 데 사용할 수 있습니다.

유효성 검사 세부사항 주소의 validationGranularityROUTE 또는 PREMISE_PROXIMITY인 경우 주소가 잘못되었을 수 있습니다.
추론된 데이터 hasInferredComponents 필드가 true이면 API가 다른 주소 구성요소에서 가져온 정보를 채웠음을 알 수 있습니다.
대체된 데이터 hasReplacedComponents 필드가 true인 경우 API는 입력된 데이터를 주소를 유효하게 만드는 것으로 간주되는 데이터로 대체했습니다.
맞춤법 교정 hasSpellCorrectedComponents 필드가 true이면 API가 철자가 잘못된 일부 구성요소의 철자를 수정했습니다.

주소 확인 예

ACCEPT 신호

Address Validation API API 응답이 주소가 전송 가능하며 다운스트림 프로세스에서 추가 고객 상호작용 없이 사용할 수 있다는 높은 신뢰도를 제공하는 경우 주소를 수락할 수 있습니다.

Address Validation API 응답의 다음 필드는 verdict.possibleNextAction와 함께 사용하여 주소의 품질이 허용되는지 확인할 수 있습니다.

유효성 검사 세부사항 validationGranularityPREMISE인 경우는 대개 허용되지만 ROUTE 값은 여전히 전송 가능한 주소를 나타낼 수 있습니다.
추론된 데이터 없음 hasInferredComponents 필드가 false이면 출력에서 추론된 구성요소가 없음을 알 수 있습니다.
교체된 데이터 없음 hasReplacedComponents 필드가 false이면 입력 데이터가 대체되지 않은 것입니다.
맞춤법 교정 없음 hasSpellCorrectedComponents 필드가 false이면 맞춤법이 수정되지 않았음을 알 수 있습니다.
USPS DPV 확인 uspsData.dpvConfirmationY이면 주소가 USPS 데이터베이스의 주소와 일치함을 의미합니다. 이 필드는 미국 주소에만 사용할 수 있습니다. uspsData.dpvConfirmation에 관한 자세한 내용은 미국 주소 처리를 참고하세요.

허용되는 주소 예