# Spaces 구성 참조

Spaces는 저장소 루트의 **README.md** 파일 상단의 `YAML` 블록을 통해 구성됩니다. 허용되는 모든 매개변수는 아래에 나열되어 있습니다.

**`title`** : _string_ Space의 표시 제목입니다.

**`emoji`** : _string_ 스페이스 이모지(이모지 전용 문자만 허용).

**`colorFrom`** : _string_ 썸네일 그라데이션 색상 (red, yellow, green, blue, indigo, purple, pink, gray).

**`colorTo`** : _string_ 썸네일 그라데이션 색상 (red, yellow, green, blue, indigo, purple, pink, gray).

**`sdk`** : _string_ `gradio`, `docker`, 또는 `static` 중 하나여야 합니다.

**`python_version`**: _string_ 유효한 Python `3.x` 또는 `3.x.x` 버전. 기본값은 `3.10`입니다.

**`sdk_version`** : _string_ 사용할 Gradio 버전을 지정합니다. 모든 Gradio 버전이 지원됩니다.

**`suggested_hardware`** : _string_ 이 Space가 실행되어야 하는 권장 [hardware](https://huggingface.co/docs/hub/spaces-gpus)를 지정합니다. 다른 사용자가 복제하도록 의도된 Space에 유용합니다. 이 값을 설정한다고 해서 이 Space에 하드웨어가 자동으로 할당되지는 않습니다. 값은 유효한 hardware flavor여야 합니다. 현재 유효한 hardware flavors:
- CPU: `"cpu-basic"`, `"cpu-upgrade"`
- GPU: `"t4-small"`, `"t4-medium"`, `"l4x1"`, `"l4x4"`,
	`"l40sx1"`, `"l40sx4"`, `"l40sx8"`,
	`"rtx-pro-6000"`, `"rtx-pro-6000x2"`, `"rtx-pro-6000x4"`, `"rtx-pro-6000x8"`,
	`"a10g-small"`, `"a10g-large"`, `"a10g-largex2"`,
	`"a10g-largex4"`, `"a100-large"`, `"a100x4"`, `"a100x8"`

**`suggested_storage`** : _string_ 이 Space가 실행되어야 하는 권장 [영구 저장소](https://huggingface.co/docs/hub/spaces-storage)를 지정합니다. 다른 사용자가 복제하도록 의도된 Space에 유용합니다. 이 값을 설정한다고 해서 이 Space에 영구 저장소가 자동으로 할당되지는 않습니다. 값은 `"small"`, `"medium"` 또는 `"large"` 중 하나여야 합니다.
> [!NOTE]
> 지속적 저장소 기능이 더 이상 사용할 수 없으므로 이 설정은 무시됩니다.

**`app_file`** : _string_ 메인 애플리케이션 파일(즉, `gradio` Python 코드 또는 `static` html 코드를 포함하는 파일)의 경로입니다. 경로는 저장소 루트를 기준으로 상대 경로입니다.

**`app_build_command`** : _string_ 정적 Spaces의 경우, 렌더링할 HTML을 생성하기 위해 먼저 실행할 명령입니다. 예: `npm run build`.

`app_file`와 함께 사용됩니다. `app_file`은 빌드된 인덱스 파일을 가리킵니다. 예: `app_file: dist/index.html`.

각 업데이트 시 빌드 명령이 Job에서 실행되며, 빌드 출력은 `refs/convert/build`에 저장됩니다. 이 내용은 Space에서 제공됩니다. 예시는 https://huggingface.co/spaces/coyotte508/static-vite에서 확인하세요.

**`app_port`** : _int_ 애플리케이션이 실행 중인 포트입니다. `sdk`가 `docker`인 경우에만 사용됩니다. 기본 포트는 `7860`입니다.

**`base_path`**: _string_ 정적이지 않은 Spaces의 경우 렌더링할 초기 url입니다. `/`로 시작해야 합니다. 정적 Spaces의 경우 대신 `app_file`을 사용하세요.

**`fullWidth`**: _boolean_ Space가 iframe 내에서 전체 너비(`true`인 경우) 또는 고정 너비(예: "container" CSS) 열로 렌더링되는지 여부입니다. 기본값은 `true`입니다.

**`header`**: _string_ `mini` 또는 `default` 중 하나여야 합니다. `header`가 `mini`로 설정되면 공간이 전체 화면으로 표시되고 미니 플로팅 헤더가 표시됩니다.

**`short_description`**: _string_ Space의 짧은 설명입니다. Space의 썸네일에 표시됩니다.

**`models`** : _List[string]_ Space에서 사용되는 HF 모델 ID(예: `openai-community/gpt2` 또는 `deepset/roberta-base-squad2`). 여기에 지정하지 않으면 코드에서 자동으로 파싱됩니다.

**`datasets`** : _List[string]_ Space에서 사용되는 HF dataset ID(예: `mozilla-foundation/common_voice_13_0` 또는 `oscar-corpus/OSCAR-2109`). 여기에 지정하지 않으면 코드에서 자동으로 파싱됩니다.

**`tags`** : _List[string]_ Space의 작업 또는 범위를 설명하는 용어의 목록입니다.

**`thumbnail`**: 소셜 공유용 커스텀 썸네일을 정의하기 위한 _string_ URL.

**`pinned`** : _boolean_ Space가 프로필 상단에 고정될지 여부입니다. Space가 많을 경우, 나와 다른 사용자가 가장 좋은 Space를 빠르게 확인할 수 있도록 유용합니다.

**`hf_oauth`** : _boolean_ 이 Space에 연결된 OAuth 앱이 있는지 여부. 자세한 내용은 [Space에 HF 로그인 버튼 추가하기](https://huggingface.co/docs/hub/spaces-oauth)를 참조하세요.

**`hf_oauth_scopes`** : _List[string]_ 연결된 OAuth 앱의 승인된 스코프입니다. `openid`와 `profile`은 기본적으로 승인되므로 이 매개변수가 필요하지 않습니다. 자세한 내용은 [Space에 HF 로그인 버튼 추가](https://huggingface.co/docs/hub/spaces-oauth)를 참조하세요.

**`hf_oauth_expiration_minutes`** : _int_ OAuth 토큰의 유효 기간(분). 기본값은 480분(8시간)입니다. 최대 유효 기간은 43200분(30일)입니다. 자세한 내용은 [Space에 HF 로그인 버튼 추가하기](https://huggingface.co/docs/hub/spaces-oauth)를 참조하세요.

**`hf_oauth_authorized_org`** : _string_ 또는 _List[string]_ OAuth 액세스를 특정 조직의 멤버로 제한합니다. 자세한 내용은 [Space에 Sign-In with HF 버튼 추가하기](https://huggingface.co/docs/hub/spaces-oauth)를 참조하세요.

**`disable_embedding`** : _boolean_ Space iframe가 다른 웹사이트에 임베드될 수 있는지 여부. 기본값은 false이며, 이는 Spaces가 *임베드될 수* 있음을 의미합니다.

**`startup_duration_timeout`**: _string_ Space에 대한 사용자 지정 시작 시간 제한을 설정합니다. 이는 Space가 시간 초과로 인해 비정상 상태로 표시되기 전에 시작할 수 있는 최대 시간입니다. 기본값은 30분이지만, `1h`, `30m`와 같은 모든 유효한 시간 형식이 허용됩니다.

**`custom_headers`** : _Dict[string, string]_ Space를 서빙할 때 모든 HTTP 응답에 추가되는 사용자 정의 HTTP 헤더를 설정합니다. 현재 [cross-origin-embedder-policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Embedder-Policy)(COEP), [cross-origin-opener-policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Opener-Policy)(COOP), [cross-origin-resource-policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Resource-Policy)(CORP) 헤더만 허용됩니다. 이러한 헤더를 사용하여 크로스 오리진 격리 환경을 설정하고 `SharedArrayBuffer`과 같은 강력한 기능을 활성화할 수 있습니다. 예를 들어:

```yaml
custom_headers:
  cross-origin-embedder-policy: require-corp
  cross-origin-opener-policy: same-origin
  cross-origin-resource-policy: cross-origin
```

*참고:* 모든 헤더와 값은 소문자여야 합니다.

**`preload_from_hub`**: _List[string]_ Space 빌드 시점에 미리 로드할 Hugging Face Hub 모델 또는 기타 대용량 파일 목록을 지정합니다. 이는 애플리케이션 시작 시 파일이 이미 준비되어 있어 시작 시간을 최적화합니다. 런타임에 다운로드해야 하는 대용량 모델이나 데이터셋에 의존하는 Space에서 특히 유용합니다.

각 항목의 형식은 저장소의 모든 파일을 다운로드하려면 `"repository_name"`, 해당 저장소 내 특정 파일을 다운로드하려면 `"repository_name file1,file2"`입니다. 또한 `"repository_name file1,file2 commit_sha256"` 형식을 사용하여 다운로드할 특정 커밋을 지정할 수도 있습니다.

사용 예시:
```yaml
preload_from_hub:
  - warp-ai/wuerstchen-prior text_encoder/model.safetensors,prior/diffusion_pytorch_model.safetensors
  - coqui/XTTS-v1
  - openai-community/gpt2 config.json 11c5a3d5811f50298f278a704980280950aedb10
```
이 예시에서는 빌드 시점에 Hugging Face Hub에서 `warp-ai/wuerstchen-prior`의 특정 .safetensors 파일, `coqui/XTTS-v1` 저장소 전체, 그리고 `openai-community/gpt2` 저장소의 `config.json` 파일의 특정 리비전을 Space가 미리 로드합니다.

> [!WARNING]
> 파일은 기본적으로 `huggingface_hub` 디스크 캐시인 `~/.cache/huggingface/hub`에 저장됩니다. 애플리케이션이 다른 위치를 기대하거나 `HF_HOME` 변수를 변경한 경우, 현재 이 사전 로딩은 해당 설정을 따르지 않습니다.

> [!NOTE]
> 개인 저장소의 사전 로딩은 아직 지원되지 않습니다.

