PART 5 · 강의 4/4

빌드 및 배포 최적화

Shipping 빌드, Pak 파일, 증분 쿠킹으로 배포를 최적화합니다

01

Shipping 빌드 설정

릴리스용 빌드 구성

📦 빌드 구성별 크기 비교
Development:
100% (기준)
Test:
90% (-10%)
Shipping:
86% (-14%)

빌드 구성 비교

구성 특징 크기
Development 디버깅 심볼, 콘솔 접근 기준
Test 제한된 디버깅 기준 -10%
Shipping 모든 디버깅 제거, 최적화됨 기준 -14%
Shipping 주의사항

Shipping 빌드에서는 인게임 콘솔 접근이 불가합니다. UI에 종료 버튼 등 사용자 인터페이스 옵션이 필수입니다.

02

Pak 파일 최적화

에셋 패키징

Pak 파일 장점

  • 파편화 감소로 게임 로드 속도 향상
  • 에셋 스트리밍 개선
  • 압축 및 암호화로 무단 접근/수정 방지
Pak 압축 활성화
코드 보기
# Project Settings > Packaging Create compressed cooked packages: True # 또는 DefaultGame.ini [/Script/UnrealEd.ProjectPackagingSettings] bCompressed=True bUsePakFile=True
03

증분 쿠킹

빌드 시간 단축

⚡ 증분 쿠킹으로 빌드 시간 단축

Multi-Process Cooking

~40%

빌드 시간 감소

Iterative + CotF

~70%

반복 쿠킹 시간 감소

Multi-Process Cooking
코드 보기
# *Editor.ini [CookSettings] CookProcessCount=4 # 사용할 프로세스 수 # 효과: 대규모 프로젝트에서 ~40% 빌드 시간 감소
Iterative Cooking 활성화
코드 보기
# Project Launcher > Custom launcher > Cook # > Advanced Settings > Iterative cooking # 또는 Project Settings에서 # Quick Launch용 Iterative Cooking 활성화
Cook-on-the-Fly

UE 5.3.2 이후 Iterative Deploy + CotF로 반복 쿠킹 시간 ~70% 감소. 변경된 에셋만 쿠킹하여 기기의 쿠킹된 에셋을 재사용합니다.

04

60 FPS 달성 체크리스트

최종 검증

✅ 60 FPS 달성 체크리스트
1
프로파일링
stat unit 병목 식별
2
CPU
Tick, Pool, Significance
3
GPU
DC < 1500, 셰이더
4
빌드
PSO, Shipping
  • 프로파일링: stat unit으로 병목 식별
  • CPU: Tick 최적화, Object Pooling, Significance Manager
  • GPU: Draw Call < 1500, 셰이더 복잡도 검토
  • 메모리: Soft Reference, Async Loading
  • 렌더링: TSR/DLSS/FSR, Stochastic Interpolation
  • 빌드: PSO Precaching, Shipping 빌드
60 FPS = 16.66ms

Game Thread, Draw Thread, GPU 모두 이 값 이하여야 합니다. 가장 높은 영역을 먼저 최적화하세요.

SUMMARY

핵심 요약

  • Shipping 빌드: 14% 작은 크기, 최적화된 릴리스용
  • Pak 파일: 압축 활성화로 로드 속도 향상
  • Multi-Process Cooking: 40% 빌드 시간 단축
  • Iterative Cooking: 변경된 에셋만 쿠킹
  • 60 FPS: 모든 스레드가 16.66ms 이하
학습 완료!

UE5 Optimization Deep Dive 전체 커리큘럼을 완료했습니다. 이제 프로파일링 기반의 체계적인 최적화로 60 FPS 게임을 개발할 수 있습니다!

PRACTICE

도전 과제

배운 내용을 직접 실습해보세요

실습 1: 빌드 시간 측정

UnrealBuildTool의 -Timing 옵션으로 전체 빌드의 모듈별 컴파일 시간을 측정하세요. 가장 오래 걸리는 모듈 5개를 식별하고 Forward Declaration으로 헤더 의존성을 줄여 빌드 시간을 단축합니다.

실습 2: Include What You Use 적용

IWYU(Include What You Use) 규칙을 프로젝트에 적용하세요. 불필요한 #include를 제거하고 Forward Declaration으로 대체하여 증분 빌드 시간을 50% 이상 단축합니다.

심화 과제

Derived Data Cache(DDC)를 네트워크 공유 폴더에 구성하여 팀 간 빌드 캐시를 공유하세요. Zen/Horde 빌드 시스템을 설정하여 분산 빌드를 구축하고, 전체 쿠킹 시간을 60% 이상 단축합니다.