Version: Unity 6.0 (6000.0)
언어 : 한국어
웹 템플릿 빌드 설정 및 상호 작용
서버 설정 코드 샘플

웹 애플리케이션 배포

웹 빌드를 배포하려면 브라우저가 올바른 리스폰스를 수신하고 이를 올바르게 처리할 수 있도록 서버를 설정하고 올바른 리스폰스 헤더를 사용하고 있는지 확인해야 합니다.

Unity에는 서버 설정 방식에 영향을 미치는 다음의 두 가지 주요 설정이 있습니다.

  • Compression Format: Unity가 빌드 단계에서 파일을 압축하는 방식을 결정합니다.
  • Decompression Fallback: 브라우저에서 빌드가 실행될 때 Unity가 다운로드된 파일을 처리하는 방식을 결정합니다.

Compression Format

웹 플레이어 설정 창(메뉴: Edit > Project Settings > Player를 선택한 후 을 선택하고 Publishing Settings 섹션 확장)에서 압축 유형을 선택합니다.

웹 퍼블리싱 창 이미지
웹 퍼블리싱 창 이미지
압축 방식 설명
gzip 기본 옵션입니다. Gzip 파일은 Brotli 파일보다 크지만, 빌드 속도가 더 빠르고 모든 브라우저에서 HTTP와 HTTPS를 통해 모두 기본적으로 지원됩니다.
Brotli Brotli 압축은 최상의 압축비를 제공합니다. Brotli 압축 파일은 gzip보다 작지만 압축하는 데 시간이 더 오래 걸리므로 릴리스 빌드의 반복 시간이 늘어납니다. Chrome과 Firefox는 기본적으로 HTTPS를 통한 Brotli 압축만 지원합니다.
Disabled 압축을 비활성화합니다. 포스트프로세싱 스크립트에서 원하는 압축을 직접 구현하려는 경우에 사용합니다. 호스팅 서버에서 정적 압축을 사용하려는 경우에도 이를 사용해야 합니다.

선택한 압축 방식의 브라우저 지원에 대한 자세한 내용은 웹 브라우저 호환성에 대한 기술 자료를 참조하십시오.

참고: Compression Format 설정은 릴리스 빌드에만 적용됩니다. 개발 빌드는 압축되지 않습니다.

웹 서버 설정

특정 빌드 설정과 일치하도록 서버 설정을 조정해야 할 수 있습니다. 특히 호스팅된 파일을 압축하기 위한 다른 서버 측 설정이 이미 있는 경우 이 설정에 방해가 될 수 있습니다. 애플리케이션을 다운로드하는 동안 브라우저가 기본적으로 압축 풀기를 수행하도록 하려면 서버 응답에 콘텐츠 인코딩 헤더를 추가하십시오. 이 헤더는 Unity가 빌드 시점에 사용하는 압축 유형에 해당해야 합니다. 코드 샘플은 서버 설정 코드 샘플을 참조하십시오.

Decompression fallback

Decompression Fallback 옵션을 사용하면 Unity가 JavaScript 압축 풀기를 빌드에 자동으로 내장할 수 있습니다. 이 압축 해제기는 선택한 압축 방식에 해당하며 브라우저에서 압축 해제하지 못하면 콘텐츠가 압축 해제됩니다.

Decompression fallback 활성화

플레이어 설정 창(메뉴: Edit > Project Settings > Player를 선택한 후 을 선택하고 Publishing Settings 섹션 확장)에서 Decompression Fallback을 활성화합니다.

Decompression Fallback을 활성화하면 Unity가 빌드 파일에 .unityweb 확장자를 추가합니다. 서버 설정에 대한 경험이 별로 없거나 서버 설정을 사용할 수 없는 경우 Decompression Fallback을 사용하는 것이 좋습니다.

참고: Decompression Fallback을 활성화하면 로더 크기가 커지고 빌드 파일 로드 체계의 효율성이 떨어집니다.

Decompression Fallback 비활성화

Decompression Fallback 옵션은 기본적으로 비활성화되어 있습니다. 따라서 기본적으로 빌드 파일에는 선택한 압축 방식에 해당하는 확장자가 포함되어 있습니다.

선택할 수 있는 압축 방식은 gzip 또는 Brotli입니다. 자세한 내용은 압축 포맷 섹션을 참조하십시오.

브라우저가 다운로드하는 동안 Unity 빌드 파일의 압축을 기본적으로 풀 수 있도록 하려면 적절한 HTTP 헤더로 압축된 파일을 제공하도록 웹 서버를 설정해야 합니다. 이를 네이티브 브라우저 압축 해제라고 합니다. JavaScript decompression fallback보다 빠르므로 애플리케이션 시작 시간을 단축할 수 있습니다.

네이티브 브라우저 압축 해제를 위한 설정 프로세스는 웹 서버에 따라 다릅니다. 코드 샘플은 서버 설정 코드 샘플을 참조하십시오.

Content-Encoding 헤더

Content-Encoding 헤더는 Unity가 압축 파일에 사용한 압축 유형을 브라우저에 알립니다. 이렇게 하면 브라우저가 기본적으로 파일의 압축을 풀 수 있습니다.

Content-Encoding 리스폰스 헤더를 플레이어 설정에서 선택한 압축 방식으로 설정하십시오.

압축 방식 파일 확장자 리스폰스 헤더
gzip .gz Content-Encoding: gzip
Brotli .br Content-Encoding: br

WebAssembly 스트리밍(높은 레벨의 헤더)

WebAssembly 스트리밍을 사용하면 브라우저가 코드를 다운로드하는 동안 WebAssembly 코드를 컴파일할 수 있습니다. 이렇게 하면 로딩 시간이 크게 개선됩니다.

WebAssembly 스트리밍 컴파일이 작동하려면 서버가 application/wasm MIME 유형의 WebAssembly 파일을 반환해야 합니다. WebAssembly 스트리밍을 사용하려면 Content-Type: application/wasm 리스폰스 헤더를 사용하여 WebAssembly 파일을 제공해야 합니다. Content-Type 헤더는 콘텐츠의 미디어 유형을 서버에 알립니다. WebAssembly 파일의 경우 이 값을 application/wasm으로 설정해야 합니다.

파일 확장자 리스폰스 헤더
.wasm, .wasm.gz, .wasm.br Content-Type: application/wasm

참고: WebAssembly 스트리밍은 Decompression Fallback 옵션이 활성화된 경우 JavaScript 압축 풀기와 함께 작동하지 않습니다. 다운로드한 WebAssembly 파일은 브라우저가 다운로드하는 동안 스트리밍할 수 없으므로 먼저 JavaScript 압축 해제기를 통과해야 합니다.

추가 헤더

파일에 JavaScript가 포함되어 있으면 application/javascript Content-Type 헤더를 추가해야 합니다. 일부 서버는 이를 자동으로 포함하고, 다른 서버는 포함하지 않습니다.

파일 확장자 리스폰스 헤더
.js, .js.gz, js.br Content-Type: application/javascript

  • 2020.1에서 서버 설정을 고려하도록 페이지 업데이트
  • 2019–09–04 2019.2에 WebAssembly 스트리밍 추가됨
웹 템플릿 빌드 설정 및 상호 작용
서버 설정 코드 샘플