XBOX Live에서 콘텐츠 격리
XBOX Live에는 모든 사전 출시(개발 중 및 베타), 인증 및 소매 콘텐츠가 있는 단일 프로덕션 환경만 있습니다. 콘텐츠 격리는 프로덕션에서 게시자 콘텐츠 유출이 없도록 하는 방법입니다. 핵심적으로 콘텐츠 격리는 리소스(타이틀 또는 서비스)에 액세스할 권한을 요청하는 주체 사용자, 디바이스 또는 타이틀이 리소스에 액세스할 권한이 있는지 확인합니다. 콘텐츠 격리를 사용하면 파티션은 타이틀 또는 서비스 데이터가 저장되는 샌드박스로 나뉘며, 권한 부여 정책은 샌드박스 범위 내에서 정의됩니다. 샌드박스는 프로덕션에 있는 데이터를 분할하는 방법입니다.- XBOX 360 시대의 서비스에서는 PartnerNet과 ProductionNet이 두 개의 뚜렷한 환경입니다.
- XBOX One(또는 이후) 서비스에서는 단일 프로덕션 환경에 n개의 뚜렷한 가상 환경이 포함되며, 각 가상 환경을 샌드박스라고 합니다.

타이틀에 대한 초기 설정
타이틀은 Partner Center에서 태어납니다. 타이틀에는 타이틀 ID, 제품 ID 및 서비스 구성 ID(SCID)가 할당됩니다. 타이틀 또는 제품 자체는 XBOX Live에 아무런 의미가 없습니다. 단일 타이틀의 소매 및 개발 사용을 동시에 지원하기 위해 Partner Center는 필요한 구분을 만들고 유지하기 위해 타이틀의 인스턴싱을 지원합니다. 타이틀의 인스턴스는 샌드박스에 상주하며 여기서 샌드박스가 등장합니다. Partner Center에서 타이틀을 만들려면 게시자는 제품 그룹을 만들고 제품 그룹의 장르를 지정한 다음 그 안에 개별 제품을 만듭니다. 그림 2. 제품 그룹, 제품, 제품 인스턴스 및 샌드박스 간의 관계.
제품 인스턴스
제품 인스턴스는 특정 샌드박스에서 타이틀, 제품 및 구성 데이터의 투영입니다. 이 데이터는 서비스 구성, 카탈로그 메타데이터 및 바이너리라는 세 가지 영역에서 설명됩니다.서비스 구성
서비스 구성 정의(이벤트, 통계, 도전 과제 등)입니다. 서비스 구성은 제품 인스턴스 수준에서 정의됩니다.카탈로그 메타데이터
판매 텍스트, 아트 자산, 사용 가능성/제안 정보, 라이선스 데이터 등을 포함하여 카탈로그에 있는 메타데이터입니다.바이너리
바이너리는 다음 두 가지 방법 중 하나로 표시할 수 있습니다.- 사이드로드를 활성화하는 메타데이터 전용. 여기에는 콘텐츠 ID, 버전 정보 및 라이선스 정보가 포함됩니다.
- CDN에 전파되어 클라이언트에 다운로드할 수 있는 전체 바이너리.
올바른 액세스 얻기
XBOX One(또는 이후)의 콘텐츠에 대한 두 가지 뚜렷한 액세스 유형이 있습니다: 디자인 타임 액세스—Partner Center를 통한 PC에서의 액세스 - 제품에서 작업하는 사람들이 콘텐츠, 구성 및 메타데이터를 업로드, 정리 및 작업할 수 있게 하지만 제품의 인스턴스를 실행하거나 플레이할 수는 없습니다. 런타임 액세스—XBOX 콘솔에서의 액세스 - 개발자, 테스터, 검토자 및 결국 고객이 제품 인스턴스를 실행하고 플레이할 수 있게 합니다.런타임 액세스를 위해 사용할 수 있으려면 제품 인스턴스를 샌드박스에 배치해야 합니다. 빌드가 샌드박스에 배치되면 해당 샌드박스에 액세스 권한이 부여된 Partner Center 사용자 또는 개발 키트 디바이스가 인스턴스를 실행할 수 있습니다. 이렇게 하려면 XBOX 콘솔을 통해 Partner Center에 로그온하고, 런타임 액세스를 위해 가상 사용자로 작동하는 특수 계정인 개발 계정 중 하나를 사용합니다.
- 주체 그룹은 XBOX 사용자 ID(XUID), 디바이스 ID, 타이틀 ID 또는 서비스 ID를 포함할 수 있습니다.
- 샌드박스는 타이틀 ID, 제품 ID 또는 서비스 구성 ID(SCID)를 포함할 수 있습니다.
- 주체 그룹에는 샌드박스에 대한 액세스 권한이 부여됩니다.

- Partner Center 사용자 계정, 각 사용자가 런타임 액세스를 위해 로그온에 사용할 개발 계정 및 각 사용자에게 멤버십이 부여되는 사용자 그룹 만들기.
- 신뢰할 수 있는 콘솔의 디바이스 그룹 만들기.
- 각 개발 샌드박스에 대해 그 안에 있는 제품 인스턴스에 액세스할 수 있는 사용자 그룹과 디바이스 그룹을 정확히 지정.

개발 계정 설정
XBOX One(또는 이후)의 개발 계정은 특별한 규칙이 적용된 표준 Microsoft 계정(MSA)일 뿐입니다. 개발 계정은 개발을 위해 XBOX Live에서 사용됩니다. 개발 계정:- Partner Center에서 만들어야 합니다.
- 게시자가 만들 때 외부 개발자 역할이 할당됩니다.
- 개발 계정을 만든 Partner Center 계정에 연결됩니다.
- 개발 키트에만 로그인할 수 있습니다. 소매 디바이스에서는 개발 계정에 대한 로그인이 거부됩니다.
- 테스트를 위해 XBOX Live Developer Gold 구독 또는 기타 구독을 무료로 구매할 수 있습니다.
사용자 그룹 설정
첫 번째 종류의 주체 그룹인 사용자 그룹은 Partner Center 사용자의 모음입니다. Partner Center 사용자가 사용자 그룹에 추가되면 해당 개발 계정이 이러한 Partner Center 사용자와 함께 흐릅니다. 따라서 사용자 그룹이 샌드박스에 할당되면 해당 사용자 그룹의 Partner Center 사용자와 연결된 개발 계정이 적절한 주체 그룹에 추가되고 주체 그룹은 샌드박스를 뒷받침하는 기본 리소스 세트로 정책 설정을 얻습니다.샌드박스에 액세스하기 위해 만들어진 사용자 그룹은 제품 그룹 및 제품에 대해 Partner Center에서 구성 데이터에 대한 액세스를 방지하는 데 사용되는 사용자 그룹과 동일합니다.
디바이스 설정
디바이스도 주체 그룹에 추가됩니다. 디바이스는 Game Developer Store를 통해 사용 권한이 구매되고 디바이스가 개발 키트로 프로비저닝된 경우에만 개발 키트로 사용할 수 있습니다. 디바이스가 개발 키트로 프로비저닝되면 디바이스가 디바이스 그룹에 추가할 수 있는 디바이스 목록에 표시됩니다.디바이스 그룹 설정
두 번째 종류의 주체 그룹인 디바이스 그룹에도 샌드박스에 대한 액세스 권한을 부여할 수 있습니다. 설정은 위에서 설명한 사용자 그룹 설정과 유사합니다.샌드박스
샌드박스란 무엇인가요?
간단히 말해서 샌드박스는 프로덕션의 데이터를 분할하는 방법입니다.왜 샌드박스가 필요한가요?
사용자와 디바이스가 타이틀에 액세스하는 것처럼 타이틀도 서비스에 액세스합니다. 타이틀 세트에 서비스 리소스에 대한 액세스 권한이 부여되는 “타이틀 그룹” 개념을 도입합니다. XBOX One(또는 이후)에는 사전 출시 및 소매 모든 콘텐츠에 대한 단일 프로덕션 환경이 있습니다. 따라서 타이틀의 여러 인스턴스(사전 출시/소매)가 동일한 리소스 인스턴스에서 작동하지 못하도록 해야 합니다.샌드박스에는 무엇이 있나요?
샌드박스에는 샌드박스에 추가되는 모든 타이틀에 대한 제품 인스턴스가 포함됩니다.샌드박스 ID란 무엇인가요?
샌드박스 ID는 타이틀, 제품 또는 서비스 구성에 대한 데이터 분할 단위입니다. 여러 타이틀이 동일한 샌드박스에 존재할 수 있으며, 이는 서비스 구성 데이터를 공유하기 위한 전제 조건입니다. 샌드박스 ID(대소문자 구분)는 다음 형식의 문자열입니다: <PublisherMoniker>.n. 샌드박스 ID의 예인 XLDP.5는 아래에 설명되어 있습니다:- *퍼블리셔 별칭(publisher moniker)*은 모든 게시자에 걸쳐 고유합니다. 따라서 “XLPD”는 이 특정 게시자의 퍼블리셔 별칭입니다. 퍼블리셔 별칭은 개발자 계정 관리자가 Partner Center에서 게시자를 “활성화”할 때 만들어집니다.
- 숫자 *“n”*은 샌드박스의 번호를 식별합니다. 이 경우 “5”는 이 게시자에 대해 생성된 여섯 번째 샌드박스입니다.
어떤 데이터가 샌드박스화되나요?
아래 다이어그램은 어떤 사용자 및 타이틀 데이터가 샌드박스화되는지 보여줍니다.
글로벌 재정의 샌드박스
개발자는 개발 키트에 샌드박스 ID를 설정하여 개발 키트가 실행되는 샌드박스를 설정합니다. 이는 글로벌 재정의 샌드박스라고도 합니다. 따라서 개발 키트의 타이틀(셸 앱 및 일반 앱)에서 XBOX Live services(예: 도전 과제, 매치메이킹, 라이선싱, EDS 등)로 이루어지는 모든 요청은 해당 샌드박스에서 이루어집니다. 글로벌 재정의 샌드박스는 또한 글로벌 재정의 샌드박스에 수집된 콘텐츠만 탐색 시 표시된다는 것을 의미합니다.샌드박스 유형
두 가지 서로 다른 샌드박스 범주가 있습니다. 이러한 범주는 다음과 같이 정의됩니다:- 게시자 샌드박스. 게시자는 개발 중인 샌드박스에 액세스할 수 있습니다. 이러한 샌드박스는 XLDP.0, XLDP.1, XLDP.2, XLDP.3 등과 같이 표시될 수 있습니다. 게시자가 타이틀 제품 인스턴스를 배치하는 곳입니다. 이러한 샌드박스에 대한 액세스는 게시자가 액세스 권한을 부여하는 사용자/디바이스로 제한됩니다.
- Microsoft 샌드박스. RETAIL 및 CERT의 기본 제공 샌드박스입니다. Microsoft만 이러한 보호된 샌드박스에 게시할 수 있습니다.
CERT 샌드박스
타이틀이 정식 출시 준비가 되면 먼저 인증을 거쳐야 합니다. CERT 샌드박스는 인증 관련 개인만 액세스할 수 있는 Microsoft 제어 샌드박스입니다. 게시자는 자신이 소유한 콘텐츠가 인증을 거치고 있는지 볼 수 있습니다. 인증 중에 실패한 모든 제품 인스턴스는 Partner Center를 사용하여 게시자가 디버깅하고 수정할 수 있도록 개발 샌드박스로 다시 가져올 수 있습니다.RETAIL 샌드박스
RETAIL 샌드박스는 XBOX One(또는 이후)용으로 생성된 모든 콘텐츠의 최종 목적지입니다. 타이틀이 인증을 통과하면 RETAIL 샌드박스에 추가됩니다. 녹색으로 서명된 콘텐츠만 RETAIL 샌드박스에서 실행할 수 있습니다. 이는 게시자 주도 베타도 RETAIL 샌드박스에서 수행된다는 중요한 의미가 있습니다. RETAIL 샌드박스에서 생성된 데이터는 실제 고객 프로덕션 데이터를 나타냅니다. RETAIL 샌드박스의 콘텐츠에 대한 액세스는 여전히 콘텐츠 격리를 통해 제어할 수 있습니다. 예를 들어 게시자 주도 베타는 RETAIL 샌드박스에서 실행되며, 게시자는 게시자 정의 베타 리소스 세트 타이틀에 액세스할 수 있는 주체 그룹을 선택합니다. 베타 타이틀에서 생성된 서비스 데이터는 실제 프로덕션 데이터이며 타이틀이 정식 출시된 후에도 계속 존재합니다.샌드박스 간 데이터 상호 작용
정의상 샌드박스는 데이터 공유를 제한하는 컨테이너입니다. 따라서 샌드박스 간 데이터 상호 작용은 불가능합니다.샌드박스 구성
이 섹션에서는 게시자가 샌드박스를 구성할 수 있는 방법의 예를 제공합니다. 게시자는 데이터를 구성하기 위해 샌드박스를 사용하는 방법을 이해해야 합니다. 아래 예제는 콘텐츠 격리를 통한 런타임 액세스 관리만 보여줍니다.시나리오 1: 두 개의 타이틀, 하나의 샌드박스
게시자의 기본 구조는 다음과 같을 수 있습니다:- 게시자가 소유한 모든 사용자와 디바이스가 디자인 타임과 런타임 모두 액세스할 수 있는 두 개의 타이틀.
- 타이틀당 하나의 제품 인스턴스.

시나리오 2: 하나의 타이틀, 다른 팀들
이 모델에서 요구 사항은 다음과 같습니다:- 하나의 타이틀.
- 개발 팀이 일일 빌드에서 작업합니다.
- QA 팀이 주간 LKG에서 작업합니다.
- 개발 팀은 버그가 있는 경우 주간 LKG를 디버그해야 합니다.
- 재무 팀은 타이틀의 카탈로그 릴리스와 관련된 가격표 및 기타 메타데이터에 액세스해야 합니다.
조직에 관계없이 Partner Center 사용자는 두 개 이상의 사용자 그룹에 속할 수 있습니다.

시나리오 3: 두 개의 타이틀, 완전히 분리
이 예제에서는 요구 사항이 약간 변경됩니다:- 두 개의 타이틀.
- 각 타이틀에 대한 액세스는 특정 개인 집합으로 제한되어야 합니다.
- 타이틀당 하나의 제품 인스턴스.
- 타이틀에 대한 디자인 타임 Partner Center 구성 데이터에 액세스해야 하는 관리자 사용자 그룹. 이 그룹의 개인은 모두 게시자의 관리자이며 카탈로그에 게시되는 모든 데이터(카탈로그 메타데이터, 재무, 마케팅, 인증 제출 등)를 제어할 수 있습니다.

시나리오 4: 원하는 대로
연결 수가 많고 표현을 짧게 유지하기 위해 샌드박스 런타임 연결만 표시하기로 했습니다. 다른 디자인 타임 액세스 권한도 추가하지 못하게 하는 것은 없습니다. 이 예제에서 요구 사항은 다음과 같습니다:- 특정 사람만 게시자 내부의 특정 타이틀에 액세스할 수 있습니다.
- 게시자는 여러 회사의 공급업체와 협력하며 이러한 공급업체는 단기일 수 있습니다.
- 게시자는 타이틀을 사용 중단할 수 있어야 하며 이를 통해 공급업체 또는 FTE가 액세스한 모든 데이터에 대한 액세스를 방지할 수 있어야 합니다.
- TitleX와 TitleY는 샌드박스 XLDP.1에 각각 하나의 제품 인스턴스만 있습니다.
- TitleZ는 두 개의 제품 인스턴스가 있으며, 하나는 샌드박스 XLDP.2에 있고 다른 하나는 샌드박스 XLDP.3에 있습니다.
- FTE 사용자 그룹 B는 모든 샌드박스의 제품 인스턴스에 대한 액세스 권한을 부여받습니다.
- 공급업체 사용자 그룹 A는 샌드박스 XLDP.1에 대한 액세스 권한이 부여된 공급업체 전용 사용자 그룹입니다.
- 공급업체 디바이스 그룹 C는 샌드박스 XLDP.3에 대한 액세스 권한이 부여된 공급업체 전용 사용자 그룹입니다.

