CCD(Cloud Content Delivery) 시작
CCD(Cloud Content Delivery)는 애플리케이션의 새 버전을 다시 설치할 필요 없이 전 세계 애플리케이션 사용자에게 콘텐츠를 호스팅하고 전달하는 Unity의 관리형 클라우드 서비스입니다. 이 서비스는 Unity 개발 플랫폼에 완전히 연동되어 있어 유사한 서비스를 구축하고 유지하는 데 소요되는 시간을 수개월 절약할 수 있습니다. CCD는 콘텐츠가 다채로운 라이브 게임 또는 정기적으로 콘텐츠 업데이트가 필요한 애플리케이션에 가장 유용합니다.
CCD 인터페이스
애플리케이션 콘텐츠를 CCD(Cloud Content Delivery)와 연동하는 방법에는 여러 가지가 있습니다.
- CLI(커맨드 라인 인터페이스)는 콘텐츠를 버킷에 업로드하는 주요 메커니즘이므로 CCD와의 상호 작용에 권장되는 인터페이스입니다(대시보드나 API를 사용하여 콘텐츠를 업로드할 수도 있음).
- 대시보드는 CLI와 동일한 기능을 제공합니다.
- Content Delivery Management API 및 Content Delivery Client API를 사용하면 프로그래밍을 통해 애플리케이션 콘텐츠를 관리할 수 있습니다.
- CCD Management SDK를 사용하면 에디터 내부에서 CCD 콘텐츠를 관리할 수 있습니다. 이는 Addressables 패키지와 페어링되며 단일 위치에서 빌드하고 릴리스할 수 있습니다.
CCD 조직
CCD에서는 콘텐츠를 개발 환경별로 버킷으로 구성하여 프로젝트에 대한 명확한 워크플로를 생성합니다. 일반적인 워크플로 예제는 여러 개발 환경에서 플랫폼별로 별도의 버킷(예: iOS 버킷 및 Android 버킷)이 있을 수 있습니다. 프로덕션 환경으로 시작하지만 데브 환경이나 스테이징 환경과 같은 다른 개발 환경을 추가할 수 있습니다.
특정 버킷 내에서 각 에셋의 특정 버전을 그룹화하여 릴리스를 생성합니다. 이러한 버전이 변경되거나 엔트리를 추가, 제거하면 필요에 따라 새 릴리스를 지정합니다.
릴리스에는 배지라고 하는 고유 ID가 연결되어 있을 수도 있습니다. 이 배지에 유의미한 이름을 지정한 다음 콘텐츠를 쿼리하는 데 사용하고 릴리스 간에 이동하여 워크플로에 유연성을 추가합니다.
개발 환경
Unity Dashboard에서 개발 환경을 생성할 수 있습니다. 프로젝트에는 여러 개발 환경(예: 프로덕션, 스테이징, 데브)이 포함될 수 있지만 그중 하나만 기본 개발 환경이 됩니다. 기본적으로 모든 프로젝트에는 프로덕션 환경이 있습니다.
버킷
Cloud Content Delivery를 사용하면 콘텐츠를 버킷으로 구성하여 프로젝트에 대한 명확한 워크플로를 생성할 수 있습니다. 버킷은 콘텐츠 퍼블리싱을 위한 단일 컨텍스트입니다. 일반적인 워크플로 예제는 ios
, android
와 같은 이름의 서로 다른 플랫폼에 대해 별도의 버킷이 있을 수 있습니다. 버킷은 프로덕션 환경이나 데브 환경과 같은 다양한 개발 환경에 있을 수 있습니다. 버킷은 비공개일 수도 있고 공개일 수도 있습니다. 비공개 버킷은 액세스 토큰을 사용하여 버킷에 대한 읽기 액세스 권한을 보호하므로 해당 액세스 토큰을 가진 사용자만 해당 버킷에서 콘텐츠를 검색할 수 있습니다. 버킷을 '승격 전용'으로 표시하여 해당 버킷에 대한 쓰기 액세스 권한을 제한하고 잘못된 콘텐츠를 잘못된 버킷에 업로드하는 등의 실수를 방지할 수도 있습니다. 아래 이미지는 버킷 ID, 승격 전용 설정, 개인정보 보호 설정, 설명, 버킷 내 릴리스 세부 정보 등 CCD에 표시되는 샘플 버킷을 보여 줍니다.
![]() |
대시보드 또는 CLI를 통해 버킷을 생성하고 편집할 수 있습니다.
엔트리
엔트리는 버킷 내의 단일 콘텐츠 단위입니다. 엔트리는 레이블과 메타데이터를 지원합니다. 릴리스를 생성하면 버전 관리 프로세스와 유사하게 버킷에 있는 모든 엔트리의 현재 상태가 캡처됩니다.
![]() |
버킷에 엔트리를 업로드하면 로컬 폴더의 콘텐츠가 원격 버킷에 푸시되고 필요에 따라 버킷의 콘텐츠가 자동으로 추가, 업데이트, 삭제됩니다. CCD는 다양한 파일 형식의 엔트리를 지원하며 가장 널리 사용되는 형식은 .gzip, .txt, .bundle(에셋 번들)입니다.
각 엔트리에는 다음 정보가 포함되어 있습니다.
- ID: 이 엔트리의 식별 문자열입니다.
- 경로: 이 엔트리의 위치입니다.
- 콘텐츠 유형: 이 필드는 API를 통해 설정됩니다.
- 콘텐츠 해시: 이 엔트리의 MD5sum 해시 값입니다.
- 콘텐츠 버전: 엔트리가 변경될 때마다(예: 이 파일의 새 버전을 업로드하거나 메타데이터를 추가하는 경우) 엔트리에 새 콘텐츠 버전 문자열이 부여됩니다. 이전 버전 문자열을 사용하면 이전 버전의 덮어쓴 파일에 계속 액세스할 수 있습니다.
릴리스
릴리스를 생성하면 CCD는 해당 시점에 버킷에 포함된 모든 엔트리(현재 버전)의 스냅샷을 생성합니다. 엔트리를 제거하거나 업데이트, 추가하려면 새 엔트리나 변경된 엔트리를 전송할 수 있도록 새 릴리스를 생성해야 합니다. 승격이라는 프로세스를 통해 버킷 간에 릴리스를 이동할 수 있습니다.
새 릴리스를 생성하거나 승격해도 버킷에 엔트리의 복사본이 생성되지 않습니다.
배지
배지를 사용하면 애플리케이션에서 사용하는 릴리스를 선택할 수 있습니다. 릴리스에 고유한 배지를 할당하고 해당 배지 이름을 사용하여 배지가 있는 콘텐츠를 요청할 수 있습니다. 아래 이미지는 배지가 CCD에 어떻게 나타나는지 보여 줍니다.
![]() |
릴리스 간에 이 배지를 이동하여 콘텐츠 워크플로에 유연성을 추가할 수 있습니다. 배지를 이동하면 관련된 이전 릴리스에서 배지가 제거됩니다. 한 번에 하나의 릴리스에만 배지를 할당할 수 있지만 여러 개의 다른 배지를 릴리스에 연결할 수 있습니다.
기본적으로 latest
라는 이름으로 자동 생성된 배지가 최신 릴리스에 할당됩니다.