> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 청크의 동적 재정렬

> 청크의 동적 재정렬

타이틀의 설치가 시작될 때 설치 시스템은 여러분이 정의한 기본 순서에 따라 하나의 그룹으로 설치될 파일 모음인 *청크*를 획득하고 복사합니다. 타이틀 실행에 필요한 청크가 설치된 후에는, 타이틀이 나머지 청크에 대한 사용자 지정 설치 순서를 제공할 수 있으며, 설치 시스템은 기본 설치 순서로 돌아가기 전에 이 사용자 지정 순서를 처리합니다.

이러한 방식으로 타이틀은 다양한 상황이나 사용자 입력의 종류에 대응하여 콘텐츠 획득 순서를 제어할 수 있습니다. 이러한 동적 재정렬은 사용자가 콘텐츠 설치를 기다리는 시간을 최소화하고, 어떤 것을 먼저 사용할 수 있게 할지 사용자에게 선택권을 제공할 수 있습니다.

설치 순서가 변경된 후 청크가 게임 플레이 또는 타이틀 사용에 필요한 경우, [스트리밍 설치: 상태](/build/core-features/common/packaging/packaging-installstatus)에 설명된 방법 중 하나를 사용하여 설치 상태를 모니터링할 수 있습니다.

## 청크 설치 순서를 변경하는 방법

다음 예제 코드에서는 게임이 사용자가 계속 플레이할 수 있도록 곧 파일에 접근해야 하는 상황을 다룹니다. **PrioritizeChunk** 함수가 정의되어 있으며, 이 함수는 청크의 현재 설치 상태를 확인합니다.

* 청크가 아직 설치되지 않은 경우, 함수는 스트리밍 시스템에 해당 청크를 먼저 설치할 것을 요청한 다음 청크 진행 상황에 대한 설치 모니터를 반환합니다.

* 청크가 이미 설치되어 있으면 함수는 null 모니터를 반환합니다.

```cpp theme={null}
template<> 
struct std::default_delete<XPackageInstallationMonitorHandle> { 
    typedef XPackageInstallationMonitorHandle pointer; 
    void operator()(XPackageInstallationMonitorHandle handle) const noexcept  
    {   
        XPackageCloseInstallationMonitorHandle(handle);  
    } 
}; 
 
HRESULT PrioritizeChunk(uint32_t chunkId, XPackageInstallationMonitorHandle* monitor) 
{ 
    char id[PACKAGE_IDENTIFIER_MAX_LENGTH]; 
 
    *monitor = nullptr; 
    RETURN_IF_FAILED(XPackageGetCurrentProcessPackageIdentifier(_countof(id), id)); 
 
    XPackageChunkSelector selector; 
    selector.type = XPackageChunkSelectorType::Chunk; 
    selector.chunk = chunkId; 
 
    XPackageInstallationMonitorHandle temp; 
    RETURN_IF_FAILED(XPackageCreateInstallationMonitor(id, 1, &selector, 1000, queue, &temp)); 
    std::unique_ptr<XPackageInstallationMonitorHandle> localMonitor(temp); 
 
    XPackageInstallationProgress progress; 
    XPackageGetInstallationProgress(localMonitor.get(), &progress); 
 
    if (!progress.completed) 
    { 
        RETURN_IF_FAILED(XPackageChangeChunkInstallOrder(id, 1, &selector)); 
        *monitor = localMonitor.release(); 
    } 
 
    return S_OK; 
} 
```


## Related topics

- [타이틀 패키징, 업데이트, 스트리밍 설치 테스트](/ko/build/core-features/common/packaging/title-packaging-streaming-install-testing.md)
- [XBOX GDK 타이틀의 패키징 및 배포](/ko/build/core-features/common/packaging/index.md)
- [Intelligent Delivery](/ko/build/core-features/common/packaging/overviews/intelligentdelivery.md)
- [MSIXVC2를 사용한 콘텐츠 업데이트](/ko/build/core-features/common/packaging/packaging-updates-msixvc2.md)
- [MSIXVC2 패키징 개요](/ko/build/core-features/common/packaging/overviews/packaging-msixvc2-overview.md)
