Skip to main content
이 문서는 XBOX services 세분화된 속도 제한(FGRL)에 대한 개요를 제공합니다. 속도 제한이 무엇인지 요약하는 것 외에도, 이 문서는 사용자가 제한되고 있는지, 그리고 그렇다면 어떤 도구와 리소스를 사용할 수 있는지 결정하는 데 도움이 됩니다. 세분화된 속도 제한은 다양한 타이틀 간에 공유 XBOX 리소스의 공정한 사용을 촉진하기 위해 의뢰되었습니다. 이 솔루션은 엔터티가 주어진 시간 동안 만든 요청 수를 카운팅하는 서비스가 있는 대부분의 전통적인 제한 시스템과 유사합니다. 서비스가 지정한 한도에 도달한 엔터티는 거부 상태로 이동되며, 엔터티에서 들어오는 모든 요청이 거부됩니다. 엔터티는 주어진 기간이 만료되어 엔터티의 관련 카운트가 재설정될 때만 이 상태에서 나갈 수 있습니다. 세분화된 속도 제한은 위에서 언급한 것과 동일한 핵심 메커니즘을 사용하지만, FGRL은 하나의 엔터티를 추적하는 대신 사용자와 타이틀의 조합을 추적하고 관련 카운트를 하나가 아닌 두 가지 다른 한도와 비교합니다. FGRL 이중 한도는 각 서비스에서 시행되므로 GameClips의 요청 카운트가 Presence의 요청 카운트에 영향을 미치지 않습니다. 다음 섹션에서는 사용자와 타이틀 페어링, 이중 제한, HTTP 429 제한 응답 개체에 대해 자세히 설명합니다.

세분화된 속도 제한 용어

공정한 사용

XBOX는 사용자가 어떤 게임(또는 앱)을 플레이하든 모든 사용자가 동일한 고품질 경험을 해야 한다고 믿습니다. 세분화된 속도 제한(FGRL)은 다음 시나리오를 해결합니다. 개발자 A는 모든 XBOX services 모범 사례를 따라 서비스의 최적 사용을 보장하는 타이틀을 방금 출시했으며, 개발자 B도 방금 타이틀을 출시했지만 이 타이틀에는 알려지지 않은 버그가 있습니다. 이 버그는 타이틀과 각 사용자가 presence를 스팸으로 보내게 하여 서비스가 과부하 상태에 이르게 합니다. 서비스는 느려지고 결국 중단되어 개발자 B의 버그로 인해 문제가 발생했음에도 불구하고 개발자 A의 사용자에 대한 경험을 손상시킵니다. FGRL이 구현되었다면, 서비스는 잘못 동작하는 타이틀로부터 요청을 받는 것을 중지할 수 있었을 것이며, 개발자 A의 타이틀에 리소스 파이의 공정한 부분을 제공할 수 있었을 것입니다.

타이틀 및 사용자 세분성

XBOX 리소스의 공정한 사용을 보장하기 위해 타이틀과 사용자가 키로 선택되었습니다. 사용자만 추적하면 사용자 경험이 각 타이틀 통합에 좌우되는 시나리오가 만들어질 것입니다. 예를 들어, 대부분의 타이틀은 이미 people 서비스를 사용하므로 이 예제를 위해 세분화된 속도 제한이 people 서비스에 설정되어 5분에 100개 이하의 요청만 허용된다고 가정해 보겠습니다. 사용자가 1분 안에 100개의 요청을 하는 게임을 플레이한다면, 한도가 초과되고 사용자는 people 서비스에 더 이상 요청을 할 수 없게 됩니다. 같은 기간에 사용자가 홈 화면으로 돌아가 친구 목록을 클릭한다고 상상해 보세요: 사용자는 이미 한도를 초과했으므로, 홈 화면이 사용자를 제한된 상태로 만든 원인이 아니더라도 5분 간격이 지날 때까지 친구 목록 호출은 실패할 것입니다. 또는 타이틀에만 기반한 제한은 마찬가지로 불공정한 결과를 낳을 것입니다. 타이틀당 한도를 설정하면 타이틀의 인기를 무시하게 되고, 요청은 한도에 도달할 때까지 선착순으로 처리될 것입니다. 사용자와 타이틀의 페어링은 활성 사용자 수에 비추어 적절한 것보다 더 많은 리소스를 사용하는 타이틀이 없도록 하는 동시에 각 사용자에게 리소스 파이의 일관된 조각을 제공합니다. 위의 다이어그램은 요청이 어떻게 처리되는지에 대한 상위 수준 보기를 보여줍니다. 먼저 요청이 생성된 다음 원하는 서비스에서 수신됩니다. 요청을 받으면 시스템은 사용자와 타이틀이 함께 서비스에 액세스한 횟수를 확인합니다.
  • 요청이 한도 미만이면 정상적으로 처리됩니다.
  • 요청이 한도 이상인 것으로 확인되면 서비스는 이를 삭제하고 대신 429 응답을 반환합니다.
응답은 기간이 롤오버되고 사용자와 타이틀 요청이 처리될 수 있을 때까지 얼마나 걸리는지 나타냅니다.

버스트 및 지속 한도

전통적으로 속도 제한은 주어진 시간 동안 추적되는 엔드포인트당 하나의 한도로 구성됩니다. 이 기간은 엔터티의 요청 카운트가 추적되는 시간을 나타냅니다. 기간이 끝나면 엔터티의 카운트가 0으로 재설정되어 다시 추적이 시작됩니다. 이 접근 방식은 대부분의 API에 적용되지만, 이 접근 방식은 XBOX services를 호출하는 게임과 앱에 대해 충분히 견고하지 않았습니다. 위의 솔루션은 사람들이 일관되고 안정적이며 예측 가능한 방식으로 호출한다고 가정합니다. XBOX services의 경우, 서비스와 요청 타이틀에 따라 호출 패턴이 극적으로 다릅니다. 이 경우 하나의 한도만 선택하려면 호출 패턴 스펙트럼의 양쪽 끝에서 타협해야 합니다. XBOX services 솔루션은 두 가지 기간과 한도를 사용합니다. 더 작은 기간은 버스트 기간이라고 하고, 더 길고 큰 기간은 지속 기간이라고 합니다. FGRL의 버스트 기간은 항상 15초이며, 지속은 항상 300초(5분)입니다. 따라서 5분의 지속 기간 동안 20개의 버스트 기간이 있습니다. 버스트 및 지속 한도는 동시에 추적되며, 따라서 요청을 동시에 카운트합니다. 버스트 및 지속 한도는 모두 서비스에 설정되므로 각 서비스에는 고유한 버스트 및 지속 카운트가 있습니다. 이 두 한도가 함께 작동하는 방식을 이해하는 데 도움이 되도록, 아래 표는 FGRL을 구현한 서비스에 대해 여러 요청을 하는 타이틀을 플레이하는 사용자를 보여줍니다. 이 경우 버스트 한도는 15초에 30개의 요청이며 지속 한도는 5분에 100개의 요청입니다. 이 표는 처음 15초 동안 사용자가 35개의 요청을 하여 버스트 한도를 초과한 것을 보여줍니다. 그 5개의 추가 요청은 삭제되고 5개의 429 응답이 전송됩니다. 이 5개의 요청은 throttling되었지만 지속 한도에는 여전히 계산됩니다. 어느 한도라도 초과되면 요청이 통과되지 않습니다. 45초 지점에서 두 한도가 모두 초과될 때, 그리고 285초 지점에서 4개의 요청만 만들어질 때 이를 볼 수 있습니다.

HTTP 429 응답 개체

관련 사용자 및 타이틀 카운트가 버스트 또는 지속 한도 이상이면 서비스는 요청을 처리하지 않고 대신 HTTP 429 응답을 반환합니다. XSAPI를 사용할 때 이는 HRESULT 0x801901AD와 동일합니다. HTTP 429 코드는 “너무 많은 요청”을 의미하며 “retry after X seconds” 값이 포함된 헤더와 함께 제공됩니다. FGRL 429 응답 개체에는 호출 엔터티가 다시 시도하기 전에 기다려야 하는 시간을 지정하는 “retry after” 헤더가 포함되어 있습니다. XSAPI를 사용하는 개발자는 XSAPI가 Retry-After 헤더를 준수하고 처리하므로 걱정할 필요가 없습니다. 실제 응답에는 다음 필드가 포함됩니다.

구현된 한도

다음 서비스는 FGRL 한도를 구현했으며, 이러한 한도의 시행은 2016년 5월부터 시행되었습니다. 이러한 한도는 모든 샌드박스와 타이틀에서 동일합니다. XBOX Developer Platform 또는 Partner Center를 통해 게시되어 2016년 5월 이전에 출시된 타이틀은 레거시로 간주되어 면제됩니다. 위 표는 FGRL로 선택된 현재 서비스 목록을 나타냅니다. 이 목록은 최종적인 것이 아니며, 새로운 서비스와 기존 서비스가 추가될 수 있습니다. 서비스가 추가될 예정이면 이 표가 업데이트되고 공지가 이루어집니다. 표의 한도는 변경될 수 있습니다. 서비스가 변화하고 발전함에 따라 한도도 그렇게 될 것입니다. 그러나 알림을 받고 필요한 레거시 면제가 이루어질 것입니다.

서비스 매핑 및 속도 제한의 타이틀 영향

참고: 최신 API 매핑은 정기적으로 업데이트되며 Live Trace Analyzer API Mapping에서 찾을 수 있습니다.

FAQ

내가 throttling되고 있는지 어떻게 판단할 수 있고 어떤 조치를 취할 수 있습니까?

호출 패턴을 개선하는 단계와 XSAPI 어설션 및 XSAPI Social 및 Multiplayer manager를 사용하여 throttling 문제를 알리고 이러한 throttling 문제를 완화하는 방법에 대한 설명이 포함된 XBOX services 호출 모범 사례를 참조하세요. 또 다른 옵션은 XBOX 서비스 호출의 추적을 기록하고 XBOX services Trace Analyzer 도구를 사용하여 해당 추적을 분석하는 것입니다. 추적을 기록하려면 Fiddler를 사용하여 .SAZ 파일을 기록하거나 XSAPI의 내장 추적 로깅을 사용할 수 있습니다. XSAPI에서 추적을 켜고 사용하려면 서비스 호출 검토를 위한 Trace Analyzer를 참조하세요. 추적이 있으면 XBOX services Trace Analyzer 도구가 throttling된 호출을 감지할 때 경고합니다.

한도가 변경될 수 있습니까?

게시된 한도는 시간이 지나도 변경되지 않을 것이라는 의도입니다. 그러나 필요가 발생할 경우, 일부 한도가 더 엄격해질 수 있습니다. 그 경우 이미 RETAIL에 출시된 타이틀은 업데이트된 한도에서 면제됩니다.

더 많은 서비스가 한도를 갖게 될까요?

예, 더 많은 서비스와 새로운 서비스가 한도를 만들 수 있고 만들 것입니다. 이 첫 번째 FGRL 릴리스처럼 알림을 받고 적절한 예방 조치를 취할 것입니다.

이러한 변경 사항은 언제 적용됩니까?

속도 제한은 2016년 5월부터 시행되었습니다. 2018년 4월부터 지정된 지속 한도를 10배 이상 초과하는 타이틀은 XBOX 인증 프로세스를 통과할 수 없습니다.

한도를 준수할 수 없다면 어떻게 합니까?

XBOX services 호출 모범 사례를 참조하고 이러한 단계를 따르고 있는지 확인하세요. 소셜 서비스로 속도 제한을 받고 있다면 Social Manager 사용도 고려하세요. 이러한 단계를 따랐음에도 한도 이하로 유지할 수 없다면 Developer Account Manager에 문의하세요. 참고: 지정된 한도 이상의 타이틀은 2018년 4월 이후 cert를 통과할 수 없습니다. 예를 들어, 위 표에 지정된 것처럼 지속 한도가 300초에 300 호출로 설정되어 있는 경우, 300초에 3000 호출 이상인 타이틀은 인증에 실패합니다. 테스트 사례를 포함한 자세한 정보는 XR-132 Service Access Limitations를 참조하세요.

기존 타이틀은 어떻게 됩니까?

2018년 4월 이전에 RETAIL에 있는 모든 타이틀은 레거시로 간주되어 면제됩니다.

콘텐츠 업데이트는요?

레거시 또는 면제된 타이틀의 경우, 콘텐츠 업데이트도 면제되지만 게임의 서비스 통합 측면을 최적화하기 위해 도구와 자산을 활용할 것을 강력히 권장합니다.

콘텐츠 업데이트를 할 수 있을 때까지 내 게임에 대한 면제를 받을 수 있습니까?

Developer Account Manager에게 문의하세요.
마지막 수정일 2026년 8월 25일