웹 서비스 사용량 최적화

참고: Google Maps Platform 프리미엄 플랜은 신규 가입이 불가능하며 신규 고객에게 제공되지 않습니다.

개요

애플리케이션에서 지정된 Google Maps Platform 웹 서비스의 사용량 한도를 초과하면 서비스에서 오류 메시지를 반환합니다. 애플리케이션에서 사용량 한도를 계속 초과하는 경우 웹 서비스에 액세스할 수 없도록 차단되고 경우에 따라 '403 금지됨' 응답을 받게 됩니다.

애플리케이션의 웹 서비스 요청에서 오류 메시지가 수신되는 경우 다음과 같이 할 수 있습니다.

  1. 웹 서비스를 더 효율적으로 사용하도록 애플리케이션을 최적화하여 사용량을 줄입니다.
  2. 가능한 경우 추가 지도 API 크레딧을 구매하여 사용량 한도를 늘립니다.

시작하기 전에

애플리케이션의 웹 서비스 사용량을 최적화하기 전에 사용 사례에 맞는 서비스와 올바른 지도 API 라이선스를 사용하고 있는지 확인하세요.

사용 사례 검사

Google Maps Platform 웹 서비스는 사용자의 실시간 입력이 필요하지 않은 애플리케이션이나 웹 브라우저가 사용되지 않는 경우에 가장 적합합니다. 예를 들어 애플리케이션에서 사용자 입력과 독립적인 데이터 세트(예: 지오코딩해야 하는 부동산 웹사이트의 고정된 주소 세트)를 사용하는 경우 웹 서비스를 사용해야 합니다.

웹 서비스를 사용하는 경우 요청이 전송된 IP 주소의 수에 관계없이 초당 쿼리 수(QPS) 한도가 프리미엄 플랜 라이선스에 적용됩니다.

반면에 Maps JavaScript API와 함께 사용할 수 있는 클라이언트 측 서비스는 브라우저 세션당 한도가 제한되므로 요청이 모든 사용자에게 분산되고 사용자 수가 증가하면 규모가 확장됩니다. 따라서 클라이언트 측 서비스는 사용자의 집 주소 근처에 있는 매장을 검색하는 매장 검색 기능과 같이 사용자의 주소 입력을 실시간으로 지오코딩하는 애플리케이션에 가장 적합합니다.

웹 서비스를 사용해야 하는 경우에 대한 자세한 내용은 지오코딩 전략을 참고하세요. 지오코딩을 예로 들었지만 서버 측 웹 서비스 또는 이와 동등한 클라이언트 측 서비스를 사용해야 하는 경우에 대한 이 문서의 설명은 모든 웹 서비스에 적용됩니다.

Google Maps Platform 프리미엄 플랜 라이선스 사용

애플리케이션의 요청에 Google Maps Platform 프리미엄 플랜 라이선스의 올바른 인증 세부정보(Google Cloud Console에 있는 프리미엄 플랜 프로젝트의 클라이언트 ID 또는 API 키)를 포함해야 합니다.

애플리케이션에서 프리미엄 플랜 라이선스를 올바르게 사용하지 않을 경우 기본 플랜 사용량 한도 및 Google Maps Platform 서비스 약관의 라이선스 제한사항이 적용됩니다. 프리미엄 플랜 SLA가 적용되지 않습니다. 또한 애플리케이션에 대해 기술 지원을 받을 수 없습니다.

웹 서비스 사용량을 최적화하는 방법

웹 서비스를 더 효율적으로 사용하기 위해 필요할 때만 요청을 보내고 사용량을 한도 미만으로 균등하게 분산하여 사용량을 줄일 수 있습니다.

결과 캐시

Google Maps Platform 서비스 약관의 3.2.4.b항에 애플리케이션의 성능을 개선하기 위해 최대 30일간 Google 지도 데이터를 일시적으로 캐시할 수 있다고 명시되어 있습니다. 웹 서비스 응답을 캐시하면 애플리케이션에서 단기간 중복 요청을 보내지 않아도 됩니다. 실제로 웹 서비스 응답에는 항상 결과를 캐시할 수 있는 기간을 나타내는 Cache-Control HTTP 헤더(예: Cache-Control: public, max-age=86400)가 포함됩니다. 효율성을 높이려면 애플리케이션에서 항상 이 헤더에 지정된 기간 이상, 단 Google Maps Platform 서비스 약관에 지정된 최대 시간을 넘지 않는 기간 동안 결과를 캐시해야 합니다.

웹 프록시를 사용하여 캐시 기능을 구현할 수 있으며 대부분의 웹 프록시는 이 기능을 바로 실행합니다. 또는 자체 웹 프록시 구현을 사용할 수 있습니다. 일부 HTTP 클라이언트 라이브러리도 HTTP 응답을 캐시합니다.

캐시 적중률을 높이려면 소수점 아래 6자리로 반올림하여 위도/경도 좌표를 표준화하세요. 이렇게 하면 적도 주변에서 약 11센티미터의 정밀도를 얻게 됩니다. 소수 자릿수를 추가해도 웹 서비스의 결과는 변경되지 않지만 캐시 적중률은 감소합니다.

요청 제한

사용량 한도를 초과하지 않기 위해 요청이 전송된 시간을 추적하는 대기열 요청을 추가하여 요청을 제한하도록 애플리케이션을 구성할 수 있습니다. 애플리케이션에서 QPS 한도를 초과하여 추가 요청 1개를 받으면 첫 번째 요청의 타임스탬프를 확인하고 1초 동안 기다려야 합니다.

요청을 제한해도 애플리케이션에서 여전히 상태 코드가 OVER_QUERY_LIMIT인 응답을 받을 수도 있습니다. 이러한 응답을 받는 경우 짧은 지연 시간(20밀리초) 후에 다시 시도하도록 애플리케이션을 구성하세요.

QPS 한도 늘리기

제한 기능을 올바르게 구현한 경우 애플리케이션에서 사용량 한도를 초과하여 요청을 전송하지 않습니다. 하지만 애플리케이션에서 너무 크거나 Google Maps Platform 웹 서비스 사용량 한도(일반적으로 50 QPS)에 따라 허용된 것보다 빠른 속도로 입력을 받을 수도 있습니다. 이 경우 제한 대기열이 커지고 요청의 백로그가 생성될 수 있습니다. 또한 Places API가 처음에 50 QPS로 제한됩니다. 애플리케이션에서 매일 특정 시간에 또는 하루 종일 지속적으로 이러한 백로그를 받는 경우 Google Maps Platform 프리미엄 플랜 라이선스의 QPS 한도를 늘려야 할 수도 있습니다. QPS 증가를 요청하려면 Google Maps Platform 영업 계정 관리자에게 문의하세요.