제작 권장사항

앱을 관리하고 실행할 때 다음 권장사항을 따르는 것이 좋습니다.

API 키 보호

Google 온라인 서비스를 사용하려면 API 키가 필요하며 이 키를 통해 Google에서 사용량을 측정할 수 있습니다. 무단 사용을 방지하려면 API 키를 제한하는 것이 좋습니다.

API 키 제한의 유형

API 키 제한에는 두 가지 유형이 있으며 두 가지를 동시에 사용할 수 있습니다.

제한사항 유형키 사용 제한:
API 제한 특정 API
애플리케이션 제한사항 특정 IP 주소, 웹사이트 또는 앱

API 키 제한사항 권장사항

다음 시나리오에서는 별도의 API 키를 커미셔닝하는 것이 좋습니다.

시나리오권장사항
백엔드 게임 서버가 Playable Locations API를 호출하여 플레이 가능한 위치를 검색합니다. 다음 두 가지 제한사항이 있는 키를 구성합니다.
  • API 제한: Playable Locations API 호출만 허용합니다.
  • 애플리케이션 제한사항: 백엔드 게임 서버의 IP 주소에서만 시작되는 호출을 허용합니다.
앱의 Android 버전에서는 Unity용 Maps SDK를 호출하여 지역 데이터를 가져옵니다. 애플리케이션 제한이 있는 키를 구성하여 앱의 Android 버전에서만 호출을 허용합니다.
앱의 iOS 버전에서는 Maps SDK for Unity API를 호출하여 지역 데이터를 가져옵니다. 애플리케이션 제한사항이 있는 키를 구성하여 앱의 iOS 버전에서만 호출할 수 있도록 합니다.

API 보안 권장사항에서 자세한 내용을 확인하세요.

API 키 제한사항 설정

  1. Google Cloud Console에서 사용자 인증 정보 패널로 이동합니다.
  2. 제한을 설정할 API 키를 선택합니다. API 키 속성 페이지가 나타납니다.
  3. 키 제한사항에서 애플리케이션 제한사항 탭을 선택한 후 4가지 애플리케이션 제한사항 유형 중 하나를 선택합니다.
    제한사항 유형 설명
    HTTP 리퍼러 제공한 웹사이트 목록에서 요청을 수락합니다.
    IP 주소 제공하는 웹 서버 IP 주소 목록에서 요청을 수락합니다.
    Android 앱 Android 앱의 사용량을 제한하려면 패키지 이름과 SHA-1 서명 인증서 지문을 추가하세요.
    iOS 앱 제공한 번들 식별자가 있는 iOS 앱의 요청을 수락합니다.
  4. 키 제한사항에서 API 제한사항 탭을 선택한 다음 API 키를 제한할 API를 선택합니다.
  5. 저장을 클릭합니다.

API 키 업데이트 지원

제공 스택에서 API 키를 업데이트할 수 있는 인프라가 마련되어 있는지 확인합니다. 이렇게 하면 API 키가 손상된 경우 게임을 복구할 수 있으므로 예고 없이 키를 갱신해야 합니다.

애플리케이션마다 별도의 키를 사용하므로 다른 앱에 영향을 주지 않고 하나의 키를 간편하게 교체할 수 있습니다.

게임 서버 안전 권장사항

어떤 이유로든 Playable Locations API 서버가 중단되면 다시 온라인 상태가 되면(여러 게임 서버가 동시에 다시 연결을 시도하는 경우) 문제가 발생합니다. 이러한 QPS 급증은 서버를 DoS 모드로 보내 수신 트래픽을 차단하여 상황을 악화시킬 수 있습니다.

이 상황을 완화하기 위해 Google은 게임 서버에 바이너리 지수 백오프를 구현하도록 요청합니다. 이는 연결 재시도의 간격을 체계적으로 유지하는 접근 방식입니다. 구체적으로는 재연결 시도 실패 후 N초 동안 기다렸다가 다시 시도하는 알고리즘을 구현합니다. 다음 시도가 실패하면 알고리즘에서 대기 시간을 2배로 늘린 후 다시 시도합니다. 다음 시도가 실패하면 알고리즘에서 다시 대기 기간을 두 배로 늘린 후 다시 시도합니다. 마지막 시도가 성공할 때까지 대기 시간을 2배로 늘려야 합니다.

HTTP 반환 상태 코드 처리

모든 HTTP 반환 코드가 아닌 일부 HTTP 반환 코드에 바이너리 지수 백오프를 구현해야 합니다.

400초
일반적으로 복구되지 않는 클라이언트 오류이므로 이 오류 코드를 생성하는 실패한 요청을 재시도해도 작동하지 않습니다. 테스트 중에 이러한 종류의 오류를 포착해야 합니다.
429
API 할당량이 부족하기 시작할 때 발생하는 리소스 소진 오류입니다. 프로젝트의 API QPS 한도를 보려면 Google API 할당량을 참조하세요.
500초
이는 서버 측 오류로, 지수 백오프가 가장 유용한 오류 유형입니다.