웹 서비스 사용 최적화

개요

애플리케이션이 Google Maps APIs 웹 서비스의 사용 제한을 초과하는 경우 오류 메시지가 반환됩니다. 사용 제한을 계속 초과하는 경우 애플리케이션은 웹 서비스에 액세스할 수 없게 되고, 경우에 따라 "403 Forbidden" 응답을 수신할 수 있습니다.

애플리케이션의 웹 서비스 요청이 오류 메시지를 수신하는 경우 다음을 수행할 수 있습니다.

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

시작하기 전에

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

사용 사례 유효성 검사

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

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

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

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

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

애플리케이션 요청에 Google Maps API 프리미엄 플랜 라이선스에 대한 정확한 인증 세부정보, 즉 Google API Console의 프리미엄 플랜 프로젝트에서 제공한 클라이언트 ID 또는 API 키가 포함되어 있는지 확인하세요.

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

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

웹 서비스를 훨씬 효율적으로 사용하려면 필요할 때만 요청을 보내고 균등하게 사용을 제한하여 사용량을 줄일 수 있습니다.

결과 캐싱

Maps API 서비스 약관 섹션 10.5.d에서는 애플리케이션의 성능을 향상시키기 위해 최대 30일 동안 Google 지도 데이터를 일시적으로 캐시할 수 있음을 명시하고 있습니다. 웹 서비스 응답을 캐시하여 짧은 시간에 중복 요청을 보내지 않도록 할 수 있습니다. 실제로 웹 서비스 응답은 결과를 캐시할 수 있는 기간을 나타내는 Cache-Control HTTP 헤더(예: Cache-Control: public, max-age=86400)를 항상 포함합니다. 효율성을 위해 애플리케이션이 항상 이 헤더에 지정된 시간부터, 그러나 Maps API 서비스 약관에 지정된 최대 시간을 넘지 않는 범위 내에서 결과를 캐시하도록 해야 합니다.

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

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

요청 제한

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

제한을 해도 애플리케이션은 여전히 상태 코드가 OVER_QUERY_LIMIT인 응답을 받을 수 있습니다. 그런 경우에는 짧은 지연 시간(20밀리초)이 삽입되도록 애플리케이션을 구성한 다음 다시 시도하십시오.

QPS 제한 늘리기

제한을 올바르게 구현하는 경우 애플리케이션은 사용 제한을 초과하는 요청을 전송하지 않습니다. 그러나 애플리케이션은 웹 서비스 사용 제한이 허용하는 속도(일반적으로 50 QPS)보다 빠르거나 지나치게 큰 입력을 받을 수 있습니다. 이 경우 제한 큐가 커져서 요청 백로그(backlog)를 생성할 수 있습니다. 또한 Places API Web Service는 처음에 5 QPS로 제한됩니다. 애플리케이션이 해당 백로그를 매일 특정 시간에 또는 하루 종일 지속적으로 수신하는 경우 Google Maps API 프리미엄 플랜 라이선스의 QPS 제한을 늘려야 할 수 있습니다. QPS를 늘리려면 Google Maps APIs 판매부 계정 관리자에게 문의하세요.