앱을 관리하고 실행할 때 다음 권장사항을 따르는 것이 좋습니다.
API 키 보호
온라인 서비스를 사용하려면 API 키가 필요하며, 이 키를 사용하면 Google에서 사용량을 측정할 수 있습니다. 무단 사용을 방지하기 위해 API 키를 제한하는 것이 좋습니다.
API 키 제한의 유형
API 키 제한사항에는 두 가지 유형이 있으며 두 유형을 동시에 사용할 수 있습니다.
제한사항 유형 | 키 사용 제한 |
---|---|
API 제한사항 | 특정 API. |
애플리케이션 제한사항 | 특정 IP 주소, 웹사이트 또는 앱 |
API 키 제한 권장사항
다음 시나리오에서는 별도의 API 키를 수수료하는 것이 좋습니다.
시나리오 | 권장사항 추천 |
---|---|
백엔드 게임 서버가 Playable Locations API를 호출하여 플레이어블 위치를 가져옵니다. | 두 가지 제한으로 키를 구성합니다.
|
Android 버전의 앱은 Unity용 Maps SDK를 호출하여 지역 데이터를 검색합니다. | 애플리케이션 제한사항으로 키를 구성하여 Android 버전의 앱만 호출하는 것을 허용합니다. |
iOS 버전의 앱은 Maps SDK for Unity API를 호출하여 지리 데이터를 검색합니다. | 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 모드로 전송할 수 있으며, 이는 들어오는 트래픽을 차단하여 상황을 악화시킵니다.
이 상황을 완화하기 위해 게임 서버에 바이너리 지수 백오프를 구현할 것을 요청합니다. 이는 연결 재시도의 간격을 체계적으로 지정하는 방법입니다. 특히 재연결 시도가 실패한 후 다시 시도하기 전에 N초 동안 대기하는 알고리즘을 구현합니다. 다음 시도가 실패하면 알고리즘이 대기 시간을 두 배로 사용한 후 다시 시도합니다. 다음 시도가 실패하면 알고리즘이 다시 대기 기간을 두 배로 늘린 후 다시 시도합니다. 최종 시도에 성공할 때까지 각 시도 후 대기 시간이 두 배로 늘어납니다.
HTTP 반환 상태 코드 처리
일부 HTTP 반환 코드에 바이너리 지수 백오프를 구현해야 합니다.
- 400초
- 이러한 오류는 일반적으로 복구되지 않는 클라이언트 오류이므로 이 오류 코드를 생성하는 실패한 요청을 재시도해도 작동하지 않습니다. 테스트 중 이러한 종류의 오류를 포착해야 합니다.
- 429
- API 할당량을 소진하기 시작하면 발생하는 리소스 소진 오류입니다. 프로젝트의 API QPS 한도를 보려면 Google API 할당량을 방문하세요.
- 500년대
- 서버 측 오류입니다. 지수 백오프가 가장 유용합니다.