기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
GAMEPERF05-BP02 non-latency-sensitive 컴퓨팅 작업을 비동기 워크플로로 이동
게임의 성능을 최적화할 때는 클라이언트와 게임 백엔드 간의 일부 상호 작용만 동기식으로 수행해야 한다는 점에 유의해야 합니다. 플레이어 경험의 관점에서 각 기능을 고려하고 특정 상호 작용에 차단 및 리소스 집약적인 동기 통신이 필요한지 또는 이러한 기능을 비동기 방식으로 구현할 수 있는지 결정해야 합니다. 네트워크 호출을 구현할 때는 비동기 비차단 접근 방식을 사용합니다. 또한 작업을 대기열로 오프로드하고 가능한 경우 클라이언트에 대한 빠른 응답의 우선 순위를 지정하여 효율적인 방식으로 작업을 수행하도록 게임 백엔드를 구성해야 합니다.
이 모범 사례가 확립되지 않을 경우 노출되는 위험 수준: 높음
구현 지침
예를 들어 플레이어 세션이 끝날 때 리더 보드를 업데이트하면 클라이언트가 리더 보드 업데이트가 완료될 때까지 기다릴 필요가 없도록 비동기적으로 구현할 수 있습니다. 대신 게임 클라이언트에서 비동기적으로 이를 구현하고 이러한 유형의 작업을 Amazon SQS와 같은 대기열로 푸시하도록 백엔드 서비스를 설계하는 것이 좋습니다. 이 아키텍처를 사용하면 요청을 수락하도록 백엔드를 구성하고, 비동기 처리를 위해 메시지를 안정적으로 저장하는 데 도움이 되는 SQS에 대기열에 추가하고, 클라이언트에 즉시 응답할 수 있습니다. 리더 보드 업데이트가 완료되면 백엔드는 플레이어의 리더 보드 보기가 업데이트되도록 게임 클라이언트에 업데이트를 보낼 수 있습니다.
또는 플레이어가 게임의 리더 보드 화면을 방문하여 최신 데이터를 검색하기만 하면 됩니다. 그러면 백엔드에 웹 요청을 발행하여 캐시에서 최신 데이터를 검색할 수 있습니다.
구현 단계
-
클라이언트-백엔드 상호 작용에 동기 통신이 필요한지 확인하고 가능한 경우 비동기 비차단 접근 방식을 구현하여 리소스 사용을 최적화합니다.
-
Amazon SQS를 사용하여 리더보드 업데이트와 같은 중요하지 않은 작업을 오프로드합니다.
-
클라이언트가 온디맨드 또는 백그라운드 업데이트를 통해 최신 리더보드 데이터를 검색하는 등 업데이트된 데이터를 비동기적으로 가져오도록 허용합니다.