본문 바로가기
외부 활동🚀/Unity Unite Seoul 2025

Unity 퍼포먼스 최적화, 어디서부터 시작해야 할까?

by Sports Entrepreneur 2025. 4. 30.

 

Unity 퍼포먼스 최적화, 어디서부터 시작해야 할까?

지난 UNITE Seoul 2025에서 가장 인상 깊었던 세션 중 하나는 “Unity 최적화” 관련 발표였습니다.
개발 현장에서 누구나 고민하는 성능 문제를 어떻게 체계적으로 진단하고 개선할 수 있을지,
현업에서 다년간 쌓인 노하우를 바탕으로 소개해준 시간이었죠.

요즘 게임 개발은

  • 개발 비용 상승,
  • 고객 기대치 상승,
  • 시장 경쟁 심화 속에서
    "빠른 개발 + 높은 품질"을 동시에 요구받고 있습니다.

이를 해결하기 위해 발표팀은 '선제적 품질관리 체계'를 강조했는데,
단순한 코딩을 넘어 조직 전체의 구조화된 대응 시스템이 핵심이었습니다.


🧩 구조적 접근의 핵심 4가지

  1. 최적화 자동화:
    • 측정은 자동으로, 반복 작업은 최소화
    • 데이터 축적 기반으로 진단 가능
  2. 공통 리소스 및 가이드 구축:
    • 유니티 튜닝 바이블 사내 배포
    • 전 사원 대상 성능 가이드 공유
  3. 실시간 알림 시스템:
    • Slack 연동으로 성능 저하 즉시 감지
    • 사후 대응이 아닌 사전 방지 중심
  4. 프로젝트 간 데이터 비교 시스템:
    • 과거 프로젝트와의 성능 비교 가능
    • 기초 데이터 없이 "감"으로 개발하지 않음

🛠️ 핵심 도구: 카나리아(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 단위 정밀 측정

💬 내가 느낀 핵심

  • 최적화는 개발 말기 작업이 아니라, 설계 초기 전략이다.
  • 측정 없이 감으로 하는 최적화는 비효율적이고 재작업을 부른다.
  • 시스템을 갖춘 팀은 반복하지 않고, 지속적으로 개선할 수 있다.

📚 참고 리소스


✅ 마무리

이번 세션은 단순한 기술 강의가 아닌,
“조직이 어떻게 성능 관리 문화를 만들 수 있을까”에 대한 실질적인 해답이었습니다.

지금 개발 중인 프로젝트가

  • 성능이 불안정하다면
  • 반복적인 QA에 시달리고 있다면
    → 반드시 참고해볼 만한 내용입니다.