빌드 및 배포 최적화
Shipping 빌드, Pak 파일, 증분 쿠킹으로 배포를 최적화합니다
Shipping 빌드 설정
릴리스용 빌드 구성
빌드 구성 비교
| 구성 | 특징 | 크기 |
|---|---|---|
| Development | 디버깅 심볼, 콘솔 접근 | 기준 |
| Test | 제한된 디버깅 | 기준 -10% |
| Shipping | 모든 디버깅 제거, 최적화됨 | 기준 -14% |
Shipping 빌드에서는 인게임 콘솔 접근이 불가합니다. UI에 종료 버튼 등 사용자 인터페이스 옵션이 필수입니다.
Pak 파일 최적화
에셋 패키징
Pak 파일 장점
- 파편화 감소로 게임 로드 속도 향상
- 에셋 스트리밍 개선
- 압축 및 암호화로 무단 접근/수정 방지
# Project Settings > Packaging
Create compressed cooked packages: True
# 또는 DefaultGame.ini
[/Script/UnrealEd.ProjectPackagingSettings]
bCompressed=True
bUsePakFile=True
증분 쿠킹
빌드 시간 단축
Multi-Process Cooking
~40%
빌드 시간 감소
Iterative + CotF
~70%
반복 쿠킹 시간 감소
# *Editor.ini
[CookSettings]
CookProcessCount=4 # 사용할 프로세스 수
# 효과: 대규모 프로젝트에서 ~40% 빌드 시간 감소
# Project Launcher > Custom launcher > Cook
# > Advanced Settings > Iterative cooking
# 또는 Project Settings에서
# Quick Launch용 Iterative Cooking 활성화
UE 5.3.2 이후 Iterative Deploy + CotF로 반복 쿠킹 시간 ~70% 감소. 변경된 에셋만 쿠킹하여 기기의 쿠킹된 에셋을 재사용합니다.
60 FPS 달성 체크리스트
최종 검증
- 프로파일링: stat unit으로 병목 식별
- CPU: Tick 최적화, Object Pooling, Significance Manager
- GPU: Draw Call < 1500, 셰이더 복잡도 검토
- 메모리: Soft Reference, Async Loading
- 렌더링: TSR/DLSS/FSR, Stochastic Interpolation
- 빌드: PSO Precaching, Shipping 빌드
Game Thread, Draw Thread, GPU 모두 이 값 이하여야 합니다. 가장 높은 영역을 먼저 최적화하세요.
핵심 요약
- Shipping 빌드: 14% 작은 크기, 최적화된 릴리스용
- Pak 파일: 압축 활성화로 로드 속도 향상
- Multi-Process Cooking: 40% 빌드 시간 단축
- Iterative Cooking: 변경된 에셋만 쿠킹
- 60 FPS: 모든 스레드가 16.66ms 이하
UE5 Optimization Deep Dive 전체 커리큘럼을 완료했습니다. 이제 프로파일링 기반의 체계적인 최적화로 60 FPS 게임을 개발할 수 있습니다!
도전 과제
배운 내용을 직접 실습해보세요
UnrealBuildTool의 -Timing 옵션으로 전체 빌드의 모듈별 컴파일 시간을 측정하세요. 가장 오래 걸리는 모듈 5개를 식별하고 Forward Declaration으로 헤더 의존성을 줄여 빌드 시간을 단축합니다.
IWYU(Include What You Use) 규칙을 프로젝트에 적용하세요. 불필요한 #include를 제거하고 Forward Declaration으로 대체하여 증분 빌드 시간을 50% 이상 단축합니다.
Derived Data Cache(DDC)를 네트워크 공유 폴더에 구성하여 팀 간 빌드 캐시를 공유하세요. Zen/Horde 빌드 시스템을 설정하여 분산 빌드를 구축하고, 전체 쿠킹 시간을 60% 이상 단축합니다.