# 웹숍 제한 참조

> Unity 웹숍에 적용되는 구조, 명명, 미디어, 런타임 제한을 확인합니다.

이 페이지에는 Unity 웹숍에 적용되는 제한이 나열되어 있습니다. 이러한 제한이 제한하는 개념은 [웹숍 소개](./introduction-to-webshops.md) 및 [웹숍 테마 및 브랜드 지정](./theming-and-branding.md)을 참조하십시오.

## 구조적 한계##structural-limits

다음 제한은 웹숍, 환경, 스튜디오를 생성할 수 있는 수에 적용됩니다.

| object               | limit        | 참고 사항                                                                        |
| -------------------- | ------------ | ---------------------------------------------------------------------------- |
| Unity Cloud 프로젝트당 웹숍 | 1            | 동일한 프로젝트에 대한 두 번째 웹숍을 생성하면 충돌 리스폰스가 반환됩니다.                                   |
| 웹숍당 환경               | 25           | 프로덕션 환경을 포함합니다.                                                              |
| 퍼블리싱 환경              | 제작 전용        | 비프로덕션 환경은 드래프트 전용이며, **Apply to production**을 사용하여 비프로덕션 드래프트를 프로덕션으로 복사합니다. |
| 스튜디오 범위              | Unity 조직당 하나 | 첫 번째 웹숍 생성 시 설정. **조직 설정**에서 이름을 변경할 수 있지만 조직 간에 전송할 수는 없습니다.                |

## 명명 규칙##naming-rules

다음 규칙은 설정한 스튜디오 이름, 슬러그 및 기타 식별자에 적용됩니다.

| Field        | 규칙                                                                                                                                                                                  |
| ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 스튜디오 이름:     | `^[a-z0-9][a-z0-9-]{1,62}[a-z0-9]$`(3\~64자, 소문자, 숫자, 하이픈, 하이픈으로 시작하거나 끝낼 수 없음). Unity 전역에서 고유한 기능입니다.                                                                               |
| 슬러그          | `^[a-z0-9][a-z0-9-]{1,62}[a-z0-9]$`(3\~64자, 소문자, 숫자, 하이픈, 하이픈으로 시작하거나 끝낼 수 없음). 스튜디오에서 고유한 기능입니다.                                                                                   |
| Display name | 1\~255자입니다.                                                                                                                                                                         |
| 딥 링크         | 최대 31자(34, 후속 `://` 포함), 패턴 `^[a-z][a-z0-9+.\-]{0,30}(?:://)?$`(소문자로 시작해야 하며 소문자, 숫자, `+`, `.` 및 `-`만 사용). 웹숍은 `javascript`, `data`, `vbscript`, `file`, `blob` 및 `about` 값을 거부합니다. |
| 딥 링크         | 최대 512자.                                                                                                                                                                            |

## 미디어 제한##media-limits

Unity Dashboard는 웹숍용 다음 이미지 업로드 타입을 지원합니다.

* **영웅 배너**: 웹숍에서 플레이어에게 표시됩니다.
* **Thumbnails:** 웹숍에서 플레이어에게 표시됩니다.
* **Screenshots**: AI 테마 생성을 위한 레퍼런스 입력으로 사용되며, 웹숍에 표시되지 않습니다.

모든 이미지 업로드 타입은 PNG, JPEG, WebP 포맷을 지원합니다. Unity Dashboard는 업로드를 저장하기 전에 각 업로드를 다시 인코딩합니다.

| Upload: | 목적                  | 최대 파일 크기 | 요청당 파일 수  | 참고 사항                                                                               |
| ------- | ------------------- | -------- | --------- | ----------------------------------------------------------------------------------- |
| 영웅 배너   | 상점 상단에 표시됨          | 5MB      | 1         | 대시보드가 이를 1920 × 384px(5:1) WebP로 다시 인코딩합니다. 잘라내지 않도록 이 종횡비 또는 더 넓게 업로드한다.           |
| 썸네일     | 링크 미리보기 및 링크 카드에 사용 | 5MB      | 1         | 대시보드가 이를 48 × 48 px(제곱) WebP로 다시 인코딩합니다.                                            |
| 스크린샷    | AI 테마 생성 레퍼런스       | 파일당 2MB  | 요청당 최대 6개 | 스토어에 표시되지 않으며, 테마 제너레이터의 추가 입력으로만 사용됩니다. 단일 업로드 요청은 모든 스크린샷에 총 최대 10MB를 전송할 수 있습니다. |

## 런타임 제한##runtime-limits

다음 제한은 실시간 트래픽 및 API 호출에 적용됩니다.

| 값                  | limit                                                      | 참고 사항                                                                                                                                                                                                                                                                      |
| ------------------ | ---------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 대시보드 미리보기 링크 토큰    | 발행일로부터 72시간입니다.                                            | Dev 미리보기 URL(`?token=`)의 서명된 토큰입니다. 각 검토 주기에 대한 새 링크를 생성합니다.                                                                                                                                                                                                               |
| SDK 드래프트 프리뷰 링크    | 발행 시 약 1시간 후                                               | 게임이 드래프트를 확인할 때 storefront-link 엔드포인트가 반환하는 수명이 짧은 드래프트 URL입니다. SDK는 이를 실행할 때마다 다시 확인하므로 짧은 수명이 플레이어에게 보이지 않습니다.                                                                                                                                                           |
| 플레이어 세션 토큰         | 수명이 짧고 단일 사용                                               | 제한된 플레이어 Auth는 게임 미닛(`GenerateRestrictedTokenAsync` 포함)을 토큰화하고 상점을 열기 위해 `sessionToken`로 추가됩니다. 게임은 현재 수명 및 일회성 프로퍼티를 설정하고 향후 Unity SDK 메서드에서 이를 관리합니다. 이 스토어는 브라우저에서 한 번씩 플레이어 세션으로 교환합니다. 참조 [Unity 게임에 웹숍 통합](./integrate-into-game.md#open-the-webshop-from-your-game) |
| 플레이어 ID 토큰         | 1시간, 자동으로 새로고침됩니다.                                         | 상점에서는 플레이어의 ID 토큰이 만료되기 직전에 새로 고침하므로 플레이어가 세션 중에 다시 인증하지 않습니다.                                                                                                                                                                                                             |
| 플레이어 세션            | 고정 만료가 없습니다.                                               | 플레이어 세션은 서버에서 취소할 때까지 유효하게 유지됩니다. 웹숍은 브라우저에서 그것을 유지합니다 - 라이브 스토어에서 `localStorage`, 대시보드 미리보기 경로에서 `sessionStorage` - 프로젝트와 환경에 범위.                                                                                                                                         |
| 관리자 API 속도 제한      | 소스 IP당 요청이 초당 40개입니다.                                      | 모든 내부 API 호출에 적용됩니다(대시보드 요청, 서비스 계정 프로그래머틱 호출). 한계를 초과하는 폭발적인 자동화는 `429 Too Many Requests`가 됩니다.                                                                                                                                                                           |
| 플레이어 카탈로그 요청 속도 제한 | 분당 요청(플레이어, 프로젝트, 환경) 600개, IP당 백스톱(초당 요청 20개, 분당 요청 300개) | 플레이어 프런트엔드의 런타임 카탈로그 페치에 적용됩니다. 두 제한이 스태킹되므로, 오작동 중인 플레이어 하나만이 IP 할당량을 소진할 수 없습니다.                                                                                                                                                                                         |
| 플레이어 셸 트래픽         | 서비스에서 속도 제한이 없습니다.                                         | 스토어의 HTML 셸과 미디어는 콘텐츠 전송 네트워크에서 제공되며 대시보드 서비스에는 도달하지 않습니다.                                                                                                                                                                                                                 |

## 액세스 및 가시성##access-and-visibility

웹숍은 업로드된 미디어와 개발 미리보기 링크를 공개 웹 콘텐츠로 제공합니다. 콘텐츠 전송 네트워크는 모든 정적 에셋을 제공하는 것과 동일한 방식입니다. URL이 있는 사용자는 로그인하지 않고도 열 수 있습니다. URL은 읽을 수 없는 식별자를 사용하며 스토어에서 연결되어 있지 않으므로 쉽게 찾을 수 없지만 액세스 제어도 가능합니다. 무엇을 업로드할지, 미리보기 링크를 누구와 공유할지 선택할 때 이러한 점에 유의하십시오.

| Resource                   | 액세스 권한이 있는 사람        | 참고 사항                                                                                                                                                                                                                                                                                                                                            |
| -------------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| 개발 미리보기 URL                | 토큰 만료 전까지 링크가 있는 사용자 | 웹숍은 `/_preview/{publisher}/game/{slug}` 경로에서 미리보기를 제공하고 URL(`token` 쿼리 파라미터)에 서명된 시간 제한 토큰으로 인증합니다. 렌더링은 익명 세션을 사용하므로 로그인 또는 사용자별 확인이 없으며, 토큰만이 링크를 보호합니다. 토큰이 만료될 때까지(72시간) 아무에게나 드래프트를 볼 수 있습니다. 각 검토 주기에 대한 새 링크를 생성합니다.                                                                                                                      |
| 업로드된 미디어(영웅 배너, 썸네일, 스크린샷) | URL이 있는 사용자          | 업로드하는 미디어는 WebP에 다시 인코딩되고 스토어의 `_media/` 경로(예: `https://shop.unity.com/_media/{projectId}/branding/logo.webp`)에 있는 콘텐츠 전송 네트워크를 통해 제공되는 클라우드 스토리지 버킷에 공용 오브젝트로 저장됩니다. 요청별 인증이 없으며 오브젝트는 공개적으로 캐시됩니다. 브랜딩 파일은 고정된 이름을 사용하고 스크린샷은 콘텐츠 해시된 이름을 사용하므로 경로의 프로젝트 ID가 유일하게 이해할 수 없는 부분이며, URL이 있는 모든 사용자가 파일을 열 수 있습니다. 업로드된 미디어를 공개적으로 표시되는 것으로 취급합니다. |

## AI 테마 생성##ai-theme-generation

다음 값은 AI 테마 생성에 적용됩니다.

| Detail         | 현재 값                                                                                                                                                                     |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| 테마 생성에 사용되는 모델 | 대규모 언어 모델입니다(더 나은 모델이 제공될수록 변경될 수 있습니다).                                                                                                                                 |
| 생성 입력의 소스      | Apple 앱 스토어 나열 URL, 업로드한 스크린샷 또는 둘 다. 대시보드가 아이콘, 스크린샷, 컬러 팔레트에 대한 제공된 목록을 스크레이핑합니다.                                                                                      |
| 테마 생성 속도 제한    | 오용 방지로 프로젝트당 속도 제한 이 제한은 대시보드가 허용하는 만큼 빠르게 테마를 생성하고 다듬는 것이 제한에 도달하지 않으므로 일반적인 인터랙티브 사용보다 훨씬 더 높게 설정되어 있으므로 실행 중인 자동화에서만 사용할 수 있습니다. 요청을 초과하여 반환 `429 Too Many Requests`. |
| 테마 생성 예산       | 프로젝트당 일일 및 주별 테마 생성 지출 한도입니다. 프로젝트가 한계에 도달하면 창이 초기화될 때까지 추가 생성이 차단됩니다. 한도는 프로젝트별로 추적되며, 웹숍을 삭제하거나 다시 생성해도 재설정되지 않습니다.                                                    |

이 제너레이터를 사용하는 사용자에 대한 절차는 AI를 사용하여 [웹숍 테마 생성](./generate-a-webshop-theme-with-ai.md)을 참조하십시오.
