최적화 가이드

이 가이드에서는 보안, 성능, 사용 측면에서 Google 지도 API 사용량을 최적화하는 전략을 설명합니다.

보안

보안 권장사항 검토

API 키는 프로젝트 중심의 사용자 인증 정보로, 사용자 ID 및 비밀번호와 동일한 보안 조치를 통해 관리해야 합니다. 키를 의도하지 않게 사용하여 할당량을 과도하게 사용하고 계정에 예상치 못한 요금이 발생하지 않도록 API 보안 권장사항을 검토하세요.

API 키를 사용하여 지도 API 액세스

API 키는 Google 지도 API에 액세스할 때 권장되는 인증 방법입니다. 클라이언트 ID도 계속 지원되고는 있지만 API 키는 더욱 세분화된 보안 관리를 지원하며 세부적인 조정을 통해 특정 웹 주소, IP 주소, 모바일 SDK (Android 및 iOS)와 함께 사용할 수 있습니다. API 키 생성 및 보호에 관한 자세한 내용은 각 API 또는 SDK의 'API 키 사용하기' 페이지를 참고하세요. 예를 들어 Maps JavaScript API의 경우 해당 API 키 사용하기 페이지를 참고하세요.

성능

지수 백오프를 사용하여 오류 처리

앱에서 짧은 시간 내에 API를 호출하려고 과도하게 시도하여 할당량 오류와 같은 오류가 발생하는 경우 지수 백오프를 사용하여 요청을 처리할 수 있습니다.

지수 백오프는 500번 대 오류에 가장 유용합니다. 자세한 내용은 HTTP 반환 상태 코드 처리를 참고하세요.

특히 쿼리 속도를 조정하세요. 코드에서 쿼리 간 대기 시간 S초를 추가합니다. 쿼리에 여전히 할당량 오류가 발생하는 경우 대기 시간을 두 배로 늘린 다음 다른 쿼리를 보내세요. 쿼리가 오류 없이 반환될 때까지 이 방식으로 대기 시간을 계속 조정하세요.

요청 시 사용자 상호작용 요청 전송

사용자 상호작용이 포함된 API에 대한 요청은 요청이 있을 때에만 보내야 합니다. 즉, 최종 사용자가 API 요청을 시작하는 작업(예: on-click)을 처리할 때까지 대기한 다음 결과를 사용하여 지도를 로드하거나, 목적지를 설정하거나, 적절한 정보를 표시합니다. 요청 시에만 전송하는 방식을 사용하면 API에 대한 불필요한 요청을 방지하여 API 사용을 줄일 수 있습니다.

지도 이동 시 오버레이 콘텐츠 표시 금지

사용자가 지도를 이동시킬 때 Draw()를 사용하여 지도에 맞춤 오버레이 콘텐츠를 표시하지 않도록 하세요. 사용자가 옮길 때마다 지도가 다시 그려지므로 오버레이 콘텐츠를 동시에 배치하면 지연이나 시각적 끊김 현상이 발생할 수 있습니다. 사용자가 화면 이동이나 확대/축소를 중지했을 때만 지도에서 오버레이 콘텐츠를 추가하거나 삭제하세요.

Draw 메서드에서 집약적인 작업 자제

일반적으로 Draw() 메서드에서는 그리기 이외의 성능 집약적인 작업은 피하는 것이 좋습니다. 예를 들어 Draw() 메서드 코드에서는 다음 작업은 하지 말아야 합니다.

  • 대량의 콘텐츠를 반환하는 쿼리
  • 표시되는 데이터에 대한 많은 변경사항
  • 많은 문서 객체 모델(DOM) 요소 조작

이러한 작업은 지도가 렌더링될 때 성능을 저하시키고 지연이나 시각적 끊김 현상을 유발할 수 있습니다.

마커에 래스터 이미지 사용

지도상의 위치를 식별하기 위해 마커를 추가할 때 .PNG 또는 .JPG 형식의 이미지 같은 래스터 이미지를 사용합니다. Scalable Vector Graphics(SVG) 이미지를 렌더링하면 지도를 다시 그릴 때 지연이 발생할 수 있으므로 SVG 이미지는 사용하지 마세요.

마커 최적화

마커를 최적화하면 다수의 마커가 하나의 정적 요소로 렌더링되므로 성능이 향상됩니다. 이는 많은 수의 마커가 필요한 경우에 유용합니다. 기본적으로 Maps JavaScript API가 마커를 최적화할지 여부를 결정합니다. 다수의 마커가 있는 경우 Maps JavaScript API에서는 최적화를 사용하여 마커를 렌더링하려고 시도합니다. 모든 마커를 최적화할 수는 없으며, 경우에 따라 Maps JavaScript API에서 최적화 과정 없이 마커를 렌더링해야 할 수도 있습니다. 애니메이션 GIF나 PNG를 대상으로 하거나, 각 마커를 별도의 DOM 요소로 렌더링해야 할 때에는 최적화된 렌더링을 사용하지 않습니다.

클러스터를 만들어 마커 표시 관리

지도상의 위치를 식별할 수 있는 마커 표시를 쉽게 관리할 수 있도록 마커 클러스터러 라이브러리를 사용하여 마커 클러스터를 만드세요. 마커 클러스터러 라이브러리에서는 다음 기능에 대한 옵션이 제공됩니다.

  • 클러스터에서 함께 그룹화할 마커의 수를 지정할 수 있는 그리드 크기
  • 클러스터가 표시되는 최대 확대/축소 수준을 지정할 수 있는 최대 확대/축소
  • 마커 아이콘으로 사용할 그래픽 이미지의 이미지 경로

소비

예산 생성, 할당량 수정, 알림 설정 등 Google Maps Platform 비용 관리에 관한 자세한 내용은 비용 관리를 참고하세요.