앱을 관리하고 실행할 때 이러한 권장사항을 따르는 것이 좋습니다.
API 키 보호
온라인 서비스를 사용하려면 API 키가 필요하며 키 사용을 통해 Google이 사용량을 측정할 수 있습니다. 무단 사용을 방지하려면 API 키를 제한하는 것이 좋습니다.
API 키 제한의 유형
API 키 제한사항에는 두 가지 유형이 있으며 두 유형을 동시에 사용할 수 있습니다.
제한사항 유형 | 키 사용 제한 |
---|---|
API 제한사항 | 특정 API |
애플리케이션 제한사항 | 특정 IP 주소, 웹사이트 또는 앱 |
API 키 제한 권장사항
다음 시나리오에서는 별도의 API 키를 수수료 사용하는 것이 좋습니다.
시나리오 | 권장사항 |
---|---|
백엔드 게임 서버가 Playable Locations API를 호출하여 재생 가능한 위치를 검색합니다. | 두 가지 제한으로 키를 구성합니다.
|
앱의 Android 버전은 Unity용 Maps SDK를 호출하여 지역 데이터를 검색합니다. | Android 버전의 앱에서만 호출할 수 있도록 애플리케이션 제한이 있는 키를 구성합니다. |
iOS 버전의 앱은 Unity SDK용 Maps SDK를 호출하여 지역 데이터를 검색합니다. | iOS 버전의 앱에서만 호출하는 것을 허용하도록 애플리케이션 제한이 있는 키를 구성합니다. |
API 보안 권장사항에서 자세한 내용을 확인하세요.
API 키 제한사항 설정
- Google Cloud Console에서 사용자 인증 정보 패널로 이동합니다.
- 제한사항을 설정할 API 키를 선택합니다. API 키 속성 페이지가 나타납니다.
- 키 제한사항에서 애플리케이션 제한사항 탭을 선택한 후 네 가지 애플리케이션 제한사항 유형 중 하나를 선택합니다.
제한사항 유형 설명 HTTP 리퍼러 제공한 웹사이트 목록에서 요청을 수락합니다. IP 주소 제공한 웹 서버 IP 주소 목록의 요청을 수락합니다. Android 앱 Android 앱의 사용량을 제한하려면 패키지 이름과 SHA-1 서명 인증서 디지털 지문을 추가하세요. iOS 앱 제공한 번들 식별자가 있는 iOS 앱의 요청을 수락합니다. - 키 제한사항에서 API 제한사항 탭을 선택한 다음 API 키를 제한하려는 API를 선택합니다.
- 저장을 클릭합니다.
API 키 업데이트 지원
서빙 스택에서 API 키를 업데이트할 수 있는 인프라가 마련되어 있는지 확인합니다. 이렇게 하면 API 키가 도용될 경우 게임을 복구할 수 있으며 예고 없이 갱신해야 합니다.
애플리케이션마다 별도의 키를 사용하므로 다른 앱에 영향을 주지 않고 키를 한곳에서 쉽게 교체할 수 있습니다.
게임 서버 안전 권장사항
Playable Locations API 서버가 어떤 이유로든 서비스 중단이 발생하면 온라인에 다시 연결될 때 문제가 발생합니다. 여러 게임 서버가 동시에 다시 연결을 시도할 때 발생합니다. 이러한 QPS 급증은 서버를 DoS 모드로 전송하여 수신 트래픽을 차단함으로써 상황을 악화시킬 수 있습니다.
이 상황을 완화하기 위해 Google은 게임 서버에 바이너리 지수 백오프를 구현할 것을 요청합니다. 이는 연결 재시도 간격에 대한 체계적인 접근 방식입니다. 특히 실패한 재연결 시도 후 N초 동안 기다린 후에 다시 시도하는 알고리즘을 구현합니다. 다음 시도가 실패하면 알고리즘이 대기 시간을 2배로 늘릴 수 있습니다. 다음 시도가 실패하면 알고리즘이 다시 대기 기간을 두 배로 늘린 후 다시 시도합니다. 각 시도 후 최종 시도가 성공할 때까지 대기 시간을 두 배로 늘립니다.
HTTP 반환 상태 코드 처리
일부 HTTP 반환 코드에 바이너리 지수 백오프를 구현해야 합니다.
- 400초
- 일반적으로 복구되지 않는 클라이언트 오류이므로 이 오류 코드를 생성하는 실패한 요청을 재시도해도 작동하지 않습니다. 테스트 중에 이러한 종류의 오류를 포착해야 합니다.
- 429
- API 할당량을 소진하기 시작할 때 발생하는 리소스 소진 오류입니다. 프로젝트의 API QPS 한도를 확인하려면 Google API 할당량을 방문하세요.
- 500초
- 서버 측 오류입니다. 지수 백오프가 가장 유용한 오류입니다.