Unity 퍼포먼스 최적화, 어디서부터 시작해야 할까?
지난 UNITE Seoul 2025에서 가장 인상 깊었던 세션 중 하나는 “Unity 최적화” 관련 발표였습니다.
개발 현장에서 누구나 고민하는 성능 문제를 어떻게 체계적으로 진단하고 개선할 수 있을지,
현업에서 다년간 쌓인 노하우를 바탕으로 소개해준 시간이었죠.
요즘 게임 개발은
- 개발 비용 상승,
- 고객 기대치 상승,
- 시장 경쟁 심화 속에서
"빠른 개발 + 높은 품질"을 동시에 요구받고 있습니다.
이를 해결하기 위해 발표팀은 '선제적 품질관리 체계'를 강조했는데,
단순한 코딩을 넘어 조직 전체의 구조화된 대응 시스템이 핵심이었습니다.
🧩 구조적 접근의 핵심 4가지
- 최적화 자동화:
- 측정은 자동으로, 반복 작업은 최소화
- 데이터 축적 기반으로 진단 가능
- 공통 리소스 및 가이드 구축:
- 유니티 튜닝 바이블 사내 배포
- 전 사원 대상 성능 가이드 공유
- 실시간 알림 시스템:
- Slack 연동으로 성능 저하 즉시 감지
- 사후 대응이 아닌 사전 방지 중심
- 프로젝트 간 데이터 비교 시스템:
- 과거 프로젝트와의 성능 비교 가능
- 기초 데이터 없이 "감"으로 개발하지 않음
🛠️ 핵심 도구: 카나리아(Canaria)
사내에서 자체 개발한 성능 측정 시스템으로,
자동화 + 시각화 + 알림 기능을 모두 갖춘 유틸리티입니다.
기능 요약
기능설명
📊 성능 측정 자동화 | 엔지니어 개입 없이 자동 계측 |
🧠 데이터 시각화 | 웹에서 실시간 그래프 확인 |
🚨 슬랙 연동 | 기준 이하 수치 알림 전송 |
🧩 히스토리 관리 | 프로젝트별 성능 추이 비교 가능 |
🧼 메모리 누수 추적 | UTS 및 프로파일러 연동으로 분석 |
🎯 실전 최적화 팁 요약
🔹 Shader Variant 로딩 최적화
- 설정 위치: Project Settings > Player > Shader Variant Loading
- 추천 설정:
- Default Chunk Count = 1
- Default Chunk Size = 1
- 효과: 쉐이더 로딩 시 메모리 사용량 최대 75% 절감
🔹 Texture Streaming
- 설정: 텍스처 스트리밍 사용 + 메모리 예산 조정
- 효과: 사용 중인 Mipmap만 메모리에 유지 → 메모리 대폭 절감
🔹 RenderTexture 최적화
- 사용 포맷 통일 → 메모리 재사용
- URP 내 Built-in Buffer 활용 추천
🔹 기타 팁
- UnloadUnusedAssets() 명시적 호출 → 장시간 체류 신에서 메모리 해제
- GC.Collect()는 긴급 상황용으로 제한 사용
- ProfilerRecorder 활용 → 프레임/메모리/GPU 단위 정밀 측정
💬 내가 느낀 핵심
- 최적화는 개발 말기 작업이 아니라, 설계 초기 전략이다.
- 측정 없이 감으로 하는 최적화는 비효율적이고 재작업을 부른다.
- 시스템을 갖춘 팀은 반복하지 않고, 지속적으로 개선할 수 있다.
📚 참고 리소스
- 🔗 Unity Performance Tuning Bible (JP)
- 📖 Unity 공식 문서
✅ 마무리
이번 세션은 단순한 기술 강의가 아닌,
“조직이 어떻게 성능 관리 문화를 만들 수 있을까”에 대한 실질적인 해답이었습니다.
지금 개발 중인 프로젝트가
- 성능이 불안정하다면
- 반복적인 QA에 시달리고 있다면
→ 반드시 참고해볼 만한 내용입니다.
'외부 활동🚀 > Unity Unite Seoul 2025' 카테고리의 다른 글
Unity Unite 2025에서 만난 세 분의 Unity 전문가 (0) | 2025.05.02 |
---|---|
UNITE Seoul 2025 모션 트래킹 세션 후기 (2) | 2025.04.30 |
유니티와 ComfyUI를 활용한 간단한 AI 포토 부스 만들기 (0) | 2025.04.30 |