메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기
정가 28,000원
판매가
28,000원
총 결제 금액 28,000원
dropdown arrow
  • 소장/대여 옵션 선택
  • 소장
  • 365일
    30% 할인
  • 180일
    40% 할인
  • 90일
    50% 할인
  • 30일
    60% 할인

전자책은 웹뷰어와 한빛+ 앱에서
열람할 수 있으며, PDF 다운로드는 지원되지 않습니다.

대여 가능

전자책

종이책

레트로의 유니티 성능 최적화

발열은 줄이고 프레임은 높이는 갓겜 개발자의 필독서

  • 저자이제민(레트로)
  • 출간2026-03-09
  • 페이지412 쪽
  • eISBN9791175796331
  • 물류코드52633
  • 난이도
    초급 초중급 중급 중고급 고급
5점 (6명)

프로파일링부터 병목 제거까지, 쾌적한 플레이를 만드는 유니티 최적화 실전 가이드


프레임 드롭, 발열, 이유 없는 버벅임. 유니티 개발자라면 누구나 한 번쯤 마주하는 문제입니다. 이 책은 유니티 프로젝트에서 발생하는 성능 문제를 감이 아닌 구조와 지표로 바라보는 방법을 제시합니다. 프로파일링을 통해 병목을 찾고 수집한 데이터를 바탕으로 무엇을 어떻게 최적화해야 하는지를 판단하도록 안내합니다. 이 과정에서 CPU·GPU·메모리의 관계를 이해하며 상황에 맞는 선택 기준을 세울 수 있도록 돕습니다. 이 책은 단편적인 팁이 아닌 실무에서 다시 써먹을 수 있는 사고방식을 정리한 실전 가이드입니다. 성능을 책임져야 하는 유니티 개발자라면 반드시 곁에 두고 반복해서 읽어보세요.

이제민(레트로) 저자

이제민(레트로)

유니티에서 엔지니어로 일하면서 다양한 게임 개발사를 지원하고 있으며, 레트로(retr0)라는 이름으로 수천 명의 학생을 가르친 게임 개발 트레이너이다. 게임 <승리의 여신: 니케>에서 애니메이션과 물리 엔진, 최적화 등을 담당했다. 저자가 제작한 베스트셀러 유니티 강의 「retr0의 유니티 게임 프로그래밍 에센스」는 현재까지 유데미에서 가장 높은 평점과 판매량을 자랑하는 유니티 한국어 강의다.

 

 

1장 최적화 준비하기
1.1 최적화 사전 준비
1.2 최적화 워크플로
1.3 창의적인 접근
1.4 정리하기

 

2장 유니티 프로파일러
2.1 유니티 프로파일러 기본 사용법
2.2 프로파일러 모듈
2.3 CPU 모듈 소개
2.4 샘플
2.5 프로파일러 마커
2.6 차트 보기
2.7 모듈 세부 정보 창 툴바
2.8 콜 스택 설정
2.9 다른 프로파일러 모듈들
2.10 정리하기

 

3장 스레드와 병목
3.1 스레드
3.2 메인 스레드
3.3 렌더 스레드
3.4 워커 스레드(잡 스레드)
3.5 기타 스레드들
3.6 병목 스레드 찾기
3.7 병목 지점을 찾는 다른 방법들
3.8 정리하기

 

4장 그래픽스 명령어와 배칭
4.1 그래픽스 명령어
4.2 렌더 파이프라인 상태
4.3 렌더링 병목의 이해
4.4 드로우 콜 최적화
4.5 SRP 배처
4.6 배치 우선순위
4.7 정리하기

 

5장 프레임 디버거
5.1 프레임 디버거란
5.2 프레임 디버거 사용하기
5.3 정보 패널
5.4 정리하기

 

6장 iOS GPU 프로파일링
6.1 GPU 프레임 캡처하기
6.2 요약 뷰
6.3 디펜던시 뷰
6.4 퍼포먼스 뷰
6.5 메모리 뷰
6.6 파이프라인 상태 살펴보기
6.7 정리하기

 

7장 메모리 구조의 이해
7.1 iOS 메모리 구조와 동작 원리
7.2 유니티의 메모리 구조
7.3 정리하기

 

8장 유니티 메모리 프로파일러
8.1 메모리 프로파일러 설치
8.2 스냅샷 캡처하기
8.3 메모리 프로파일러 창
8.4 메모리 요약 탭
8.5 유니티 오브젝트
8.6 전체 메모리
8.7 상세 정보
8.8 스냅샷 비교하기
8.9 정리하기

 

9장 iOS 네이티브 메모리 프로파일러
9.1 네이티브 메모리 프로파일러가 필요한 경우
9.2 Xcode 프로젝트 설정
9.3 Instruments Allocations 프로젝트 생성
9.4 VM Tracker 살펴보기
9.5 Allocations 살펴보기
9.6 정리하기

 

10장 프로젝트 설정 최적화
10.1 그래픽스 관련 설정
10.2 셰이더 베리언트 로딩 설정
10.3 스크립팅 설정
10.4 코드 스트립
10.5 물리 설정
10.6 발열 제어를 위한 Idle 타임 확보
10.7 기타 프로젝트 설정 최적화
10.8 정리하기

 

11장 에셋 최적화
11.1 오디오 클립
11.2 텍스처
11.3 메시 설정
11.4 애니메이션 클립 최적화하기
11.5 파티클 시스템
11.6 Resources 폴더 사용하지 않기
11.7 BSON 사용하기
11.8 스프라이트 아틀라스 사용하기
11.9 정리하기

 

12장 셰이더 베리언트 최적화
12.1 셰이더 베리언트
12.2 셰이더 베리언트 추적하기
12.3 셰이더 베리언트 최적화하기
12.4 Project Auditor 로 셰이더 베리언트 추적하기
12.5 정리하기

 

13장 C# 스크립트 최적화
13.1 문자열 조합을 최적화하기
13.2 CompareTag()로 태그 비교하기
13.3 식별자로 문자열 대신 해시 사용하기
13.4 정적 데이터의 enum을 문자열로 다루지 않기
13.5 Find 계열 메서드 줄이기
13.6 런타임에 AddComponent 사용하지 않기
13.7 빈 유니티 이벤트 제거하기
13.8 할당이 없는 물리 캐스트 API 사용하기
13.9 트랜스폼 연산을 한 번에 수행하기
13.10 conditional 디버그 로그
13.11 Fake null 유의하기
13.12 오브젝트 풀 사용하기
13.13 런타임에 리플렉션 자제하기
13.14 계산 결과 캐싱하기
13.15 잡 시스템 활용하기
13.16 구조체 사용하기
13.17 데이터 지향 설계와 SoA 사용하기
13.18 DOTS 소개
13.19 정리하기

 

부록 유니티 AI를 활용한 최적화
A.1 사전 준비 사항
A.2 프로젝트 설정 분석하기
A.3 에셋 점검하기
A.4 프로파일링 데이터를 AI 에게 분석시키기

이 책은 저자가 전 세계의 인디 게임부터 AAA급 게임에 이르기까지 다양한 유니티 게임의 성능 문제를 컨설팅하며 얻은 지식을 정리한 것입니다. 유니티 프로젝트에서 발생하는 성능 문제를 분석하고 최적화하는 여러 방법을 다루며 실무에 바로 적용할 수 있는 기준과 접근 방식을 중심으로 설명합니다.

 

★ 이 책의 대상 독자
이 책은 유니티를 활용해 실제 프로젝트를 개발하고 있으며, 성능 문제를 체계적으로 분석하고 해결하고자 하는 개발자를 대상으로 합니다.

  • 유니티로 게임을 개발한 경험은 있으나 프레임 드롭, 메모리 증가, 로딩 지연과 같은 성능 문제의 원인을 명확히 설명하기 어려운 개발자
  • 프로파일러를 사용해본 경험은 있지만 수집된 데이터를 어떻게 해석하고 최적화로 연결해야 할지 막막했던 개발자
  • 감에 의존한 최적화가 아니라 지표와 근거를 기반으로 성능 문제를 정의하고 개선하고자 하는 실무 개발자
  • 모바일, 콘솔, PC 등 다양한 플랫폼 환경에서 유니티 프로젝트의 성능 안정성을 확보해야 하는 개발자

 

★ 이 책에서 다루는 내용
최적화의 기본 개념과 접근법
성능 최적화의 본질과 올바른 접근 방식을 설명합니다. 최적화 문제를 체계적으로 정의하고 분석하
는 방법을 익히고 프레임 타임, 메모리 예산, GPU·CPU 밸런스 등 실무에서 사용하는 지표를 설정
하는 방법을 소개합니다.


프로파일링과 데이터 분석
유니티 프로파일러, 메모리 프로파일러, Metal 프레임 디버거, Xcode Instruments 등 다양한 플
랫폼의 프로파일러 사용법을 설명합니다. 데이터를 단순히 수집하는 데 그치지 않고 병목의 원인을
추론하고 해석하는 과정을 다룹니다.
 

메모리 구조와 관리 전략
유니티 엔진 내부의 메모리 구조와 GC 동작 원리를 상세히 설명합니다. 관리되는 힙, 네이티브 힙, 그래픽 메모리 간의 관계를 살펴보고 메모리 파편화와 상주 메모리가 성능에 미치는 영향을 분석합니다. 또한 iOS 환경에서 운영체제 수준의 메모리 동작 방식도 다룹니다.
 

그래픽스 최적화
렌더링 파이프라인의 흐름을 이해하고 실제로 GPU 부하를 줄이는 방법을 설명합니다. 배칭, SRP 배처, GPU 인스턴싱 등 그래픽스 최적화의 핵심 개념을 원리 중심으로 다루며 셰이더 베리언트의 구조와 관리 전략도 함께 소개합니다.
 

CPU와 스크립트 최적화
C# 잡 시스템과 Burst 컴파일러를 활용한 멀티 스레딩 최적화 기법을 다룹니다. IL2CPP, GC, 메모리 할당 패턴을 중심으로 CPU 사용량을 줄이고 안정적인 프레임 레이트를 확보하는 실전 사례를 소개합니다.
 

프로젝트 최적화
프로젝트 설정이 성능에 미치는 영향을 다룹니다. 어드레서블, 에셋 번들, 텍스처 압축, 오디오 임포트 설정 등을 통해 빌드 용량과 로딩 시간을 줄이는 방법을 설명합니다.

 

"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."

 

이 책의 대상 독자

  1. 유니티로 게임 개발한 경험은 있으나 프레임 드롭, 메모리 증가, 로딩 지연과 같은 성능 문제의 원인을 명확히 설명하기 어려운 개발자
  2. 프로파일러를 사용해본 경험은 있지만 수집한 데이터를 어떻게 해석하고 최적화로 연결해야 할지 막막했던 개발자
  3. 감에 의존한 최적화가 아니라 지표와 근거를 기반으로 성능 문제를 정의하고 개선하고자 하는 실무 개발자
  4. 모바일, 콘솔, PC 등 다양한 플랫폼 환경에서 유니티 프로젝트의 성능 안정성을 확보해야 하는 개발자

       ++ 게임/그래픽스에 관심있는 사람(단, 레트로의 유니티 6 게임 프로그래밍 에센스 선행 필수)

 

레트로의 유니티 6 게임 프로그래밍 에센스 대표 이미지

(https://product.kyobobook.co.kr/detail/S000215787646)

 

저자의 말에서 이 책의 목적을 알 수 있었는데요.

 

이 책을 쓰며 가장 중요하게 생각한 점은 개별 사례의 해결 방법을 나열하는 것이 아니라 문제를 분석하고 해결하는 전문가의 사고 방식을 전달하는 것이었습니다. 게임 최적화에는 정답이 없습니다. 

(…)

성능 문제를 해결하려면 소거법적인 사고방식이 필요합니다.

가능한한 모든 맥락을 수집하고 불필요한 정보를 제거하며 남은 가능성을 하나씩 검증합니다.

(…) 

이 과정에서 2가지 도구가 필요합니다. 직관과 원자적 접근입니다. 

직관은 경험을 통해 논리적 단계를 건너뛰는 능력입니다.

모든 현상에는 반드시 원인이 있다는 전제 아래 프로파일링 도구와 수치를 통해 정확히 무엇이 일어나고 있는지를 검증합니다.

직관은 방향을 제시하고 원자적 분석은 이를 증명합니다.

–  p7

수치적으로 확인할 수 있는 도구와 함께 원자적 분석을 강조하셔서 공감이 많이 갔습니다.

 

최적화라는 키워드 때문에 저는 이 책을 읽기 시작했습니다.

프로그래밍에 있어서 최적화란 구현이 먼저일 때는 주변에서 중요하지 않다고 여길 때가 있습니다. 

그렇지만, 

무엇을 만들든 사용자를 생각한다면, 

내가 만든 프로그램의 완성도를 생각한다면, 꼭 고려해야 할 요소라고 생각합니다.

발전 속도가 엄청난 ai 시대에 

이런 추가적인 사고를 하는 것이 진짜 개발자(대체되지 않는 개발자)와 무늬만 개발자(대체되는 개발자)를 나누는 기준이라고도 여기고 있고요.

 

유니티를 모르는 호기로운 여행자(?)가 이 책을 읽기는 매우 험난했지만

그럼에도 성능 문제를 막연하게, 감으로.. 가 아닌 지표로 바라보는 방법을 알려주셔서 책을 모두 읽고 나서 곱씹을 부분이 많았습니다.

인상 깊은 몇 부분이 있었는데요

1.3 창의적인 접근

성능 최적화가 코드만으로 해결되는 문제가 아니다. 란 걸 꼭 오래 기억하고 싶습니다. 

 

2. 유니티 프로파일러

프로파일러에서 제공하는 항목이 무척 중요하게 느껴졌는데요.

스레드, job, 그리고 프로그램이 동작하는 과정을 시간과 함께 체크한다는 점이 

제가 하는 프로그래밍 중에도 관련 도구가 있는지 알아보고,

없다면 이런 점을 참고해야겠다는 생각을 했습니다.

 

8. 메모리 프로파일러

8기가 메모리가 노출 되어서 조금 부끄럽지만 메모리 프로파일러와 스냅샷도 무척 인상 깊었습니다.

코드를 최적화하는 중에 수정 후의 성능을 명확한 수치로 비교할 수 있으니 왠지 부러웠습니다.

 

그동안 내 코드/내 프로그램의 성능은 어떠한가를 고민할 때, 기껏해야 코드 몇 줄로 혹은 ai에 의존해서 성능 체크를 해왔는데요.

더 복잡하고 더 초기 설계가 중요한 게임 영역에서는 이 문제를 어떻게 생각하고 수정하는가를 볼 수 있었습니다.

순서는 바뀌었지만 조만간 “레트로의 유니티 6 게임 프로그래밍 에센스”도 읽어보고 성능 최적화도 다시 읽어보겠습니다~ :D

 

 

"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."

[책리뷰] 레트로의 유니티 성능 최적화

https://www.hanbit.co.kr/store/books/look.php?p_code=B4508580257

 

 

전반적인 소감 및 마음에 드는 부분

그래픽 프로그래밍 관련 업계에서 일하고 있기 때문에 이 책은 굉장히 마음에 들었다. 최근 개발 추세를 보면 생산성이다 뭐다 하면서 일단 빠르게 개발하는 것에 초점을 맞추고 있다. 여기까지는 괜찮지만 그 다음이 문제다. 우선 결과물을 내놓고 성능이 안 좋으면 컴퓨터 사양을 더 높이라고 한다. 즉 프로그램, 앱의 성능을 높이거나 최적화 하는 방향이 아니라 구동시키는 컴퓨터, 하드웨어의 성능을 더 높이라고들 한다. 이런 방식은 느린 로딩, 버벅임, 잦은 프레임 드랍 등으로 결국 사용 불가로 이어지게 된다.  사실상 저사양 기기 사용자, 저속 네트워크 사용자, 예산이 적은 사용자들을 버리겠다는 말이다. 또한 유지보수 역시 어려워지기 때문에 사업적으로도 손해로 이어진다고 본다.

따라서 AI를 이용해 빠른 결과물을 내놓는 책이 만연한 요즘, 최적화라는 근본 서적이 나와서 정말 마음에 들었다. 이건 AI에도 적용시킬 수 있는데 더 적은 메모리, 더 빠른 알고리즘, 더 성능 좋은 프로그램은 AI 토큰 사용 시간/비용을 줄일 수 있기 때문이다. 게다가 이 책은 단순히 유니티 프로파일러 사용 방법을 알려주는 것이 아니라 병목 현상 분석부터 실질적인 해결까지 이어지는 올바른 접근 방식과 성능 최적화의 본질을 제대로 알려주고 있다.

 

 

대상 독자 및 책 난이도

책 제목에도 유니티가 포함되어 있듯이 기본적으로는 유니티를 활용해 실제 프로젝트를 개발하고 있으며, 성능 문제를 체계적으로 분석하고 해결하고 하는 개발자를 대상으로 한다. 저자가 말한 대상 독자는 다음과 같다.

  • 유니티로 게임을 개발한 경험은 있으나 프레임 드롭, 메모리 증가, 로딩 지연과 같은 성능 문제의 원인을 명확히 설명하기 어려운 개발자
  • 프로파일러를 사용해본 경험은 있지만 수집된 데이터를 어떻게 해석하고 최적화로 연결해야 할지 막막했던 개발자
  • 감에 의존한 최적화가 아니라 지표와 근거를 기반으로 성능 문제를 정의하고 개선하고자 하는 실무 개발자
  • 모바일, 콘솔, PC 등 다양한 플랫폼 환경에서 유니티 프로젝트의 성능 안정성을 확보해야 하는 개발자

그러나 유니티와 상관없이 그래픽 프로그래밍을 다루는 개발자라면 한 번쯤은 읽어볼 만하다고 생각한다. 최적화 대상이 유니티여서 그렇지 책에서 설명하는 내용은 그래픽 프로그래밍 분야 전부 동일하게 적용되기 때문이다. 특히 3장 스레드와 병목, 7장 메모리 구조의 이해는 반드시 읽어보았으면 한다. 

 

예를 들어 챕터13을 보면 최적화 방법 중 하나의 오브젝트 풀 기법을 설명하고 있다. 오브젝트를 미리 많이 생성해두어서 생성/파괴 과정을 최대한 줄여서 FPS를 높이는 방법 중 하나다. 이런 기법은 특정 도구를 써야지만 사용할 수 있는 것이 아니기 엔진 프로그머들은 알아두면 좋은 내용이다.

 

 

다루는 내용과 범위

프로파일러 기본 도구가 유니티와 iOS에 맞춰져있긴 하지만 어차피 대부분의 프로파일러 도구들이 비슷하기 때문에 큰 상관없이 볼 수 있다. 중요한 것은 해당 프로파일러 도구들을 이용해 성능 측정 및 최적화를 어떻게 하는지를 봐야한다.

  • 최적화의 기본 개념과 접근법
  • 프로파일링과 데이터 분석
  • 메모리 구조와 관리 전략
  • 그래픽스 최적화
  • CPU와 스크립트 최적화
  • 프로젝트 최적화

 

6장 챕터 설명하는 페이지를 보면 각 OS별로 어떤 GPU 프로파일러를 대표적으로 사용하는지 알려준다. 책에서 설명은 iOS · macOS 환경에서 사용하는 Xcode Metal 디버거를 활용했지만, 윈도우나 안드로이드라면 다른 프로파일러를 사용하면 된다.

 

결론

성능 최적화는 단순히 저사양 기기 사용자, 저속 네트워크 사용자, 예산이 적은 사용자들을 위한 것이 아니다. 예를 들어 성능 최적화를 통해 기존에 10가지 기능밖에 없는 프로그램이 100가지 기능을 가질 수 있게 될 수도 있다. AI 토큰을 사용할 때 서버 이용 시간이 1분이였던 것이 최적화를 통해 100ms로 줄어든다면, 그만큼 서버 이용 비용을 아낄 수 있게 된다. 아무리 AI 등장으로 개발 방법이 바뀌고 있다고 하더라도 근본적인 개발론은 바뀌지 않을 것이라 본다. 여기서 말하는 근본적인 개발론은 오랫 시간 동안 축척되어온 소프트웨어 개발론, 문제를 분석하고 해결하는 전문가의 사고 방식이다. 이 책은 성능 최적화에 대한 전문가의 사고 방식을 기를 수 있는 아주 좋은 참고서이다.

 

"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."

이번에 한빛미디어에서 출간한 '레트로의 유니티 성능 최적화'는 유니티로 게임을 오래 만들어 왔지만, 막상 규모가 커진 프로젝트에서 실제로 부딪히는 성능 문제 앞에서는 어디서부터 손을 대야 할지 막막했던 개발자에게 특히 큰 도움이 되는 책이라고 느꼈습니다. 저희가 만들고 있는 프로젝트는 방치형 모바일 RPG이면서 동시에 PC와 모바일 크로스 플랫폼으로 플레이할 수 있도록 개발 중인데, 이런 프로젝트일수록 최적화는 선택이 아니라 거의 설계의 일부에 가깝다는 점을 절실하게 느끼고 있습니다.

그동안 회사에서 유니티 엔진으로 게임 개발을 진행한 기간은 꽤 되었지만, 주로 하이퍼 모바일 게임류의 비교적 작은 프로젝트를 다뤄왔습니다. 그런 프로젝트에서는 일정 수준의 최적화만 해도 큰 문제가 드러나지 않는 경우가 많았습니다. 하지만 최근처럼 콘텐츠 양이 많고, 캐릭터·UI·이펙트·장비·성장 시스템이 복합적으로 얽히는 규모 있는 게임 프로젝트를 진행하게 되니, 예전과는 전혀 다른 종류의 문제를 마주하게 되었습니다. 예를 들어 게임 로딩이 이해되지 않을 정도로 느려지거나, 특정 구간에서 플레이 중 갑자기 앱이 종료되거나, 장시간 실행 후에야 드러나는 메모리 사용량 증가와 프레임 저하 같은 문제들이었습니다. 처음에는 원인을 알 수 없어 막연하게 “유니티라서 그런가?” 하고 넘기기 쉬웠지만, 이 책을 읽고 나서는 적어도 어떤 관점으로 원인을 좁혀가야 하는지가 보이기 시작했습니다.

이 책의 가장 큰 장점은 “최적화는 무조건 코드 몇 줄 고치면 끝나는 작업”이 아니라, CPU, GPU, 메모리, 로딩 구조, 리소스 관리, 렌더링 방식, UI 구성까지 전체 흐름을 이해해야 하는 문제라는 점을 실무적으로 설명해 준다는 데 있습니다. 유니티는 최적화에 따라 성능을 꽤 높은 수준까지 끌어낼 수 있다는 것을 알게 되었지만, 동시에 엔진 소스를 직접 볼 수 없기 때문에 내부 동작을 추측하며 접근해야 하는 부분도 많습니다. 그런 점에서 이 책은 단순한 팁 모음집이 아니라, 왜 느려지는지, 어디를 의심해야 하는지, 어떤 도구와 지표를 봐야 하는지를 알려주는 가이드 역할을 해줍니다. 원인을 정확히 모르던 문제들도 “이건 로딩 구조 문제일 수 있겠다”, “이건 GC나 객체 생성 패턴을 의심해야겠다”, “이건 드로우콜이나 오버드로우 쪽일 가능성이 높겠다”처럼 유추할 수 있게 된 점이 정말 유익했습니다.

실제로 떠오르는 사례도 있습니다. 첫 번째는 초기 로딩 지연 문제입니다. 프로젝트 규모가 커지면서 로비 진입이나 전투 시작 전 로딩이 비정상적으로 길어지는 일이 있었는데, 예전에는 단순히 데이터가 많아서 그런가 보다 하고 생각했습니다. 하지만 이 책을 읽고 나서는 한 번에 너무 많은 리소스를 불러오고 있지는 않은지, 꼭 지금 불러와야 할 것과 나중에 불러와도 되는 것이 섞여 있지는 않은지, 동기 로딩이 병목이 되고 있지는 않은지 같은 관점으로 보게 되었습니다. 그 결과 로딩 타이밍을 나누고, 선로드와 지연 로드를 구분해야 한다는 인식이 생겼고, 실제로 일부 구간은 구조를 다시 보며 개선 방향을 잡을 수 있었습니다.

두 번째는 플레이 중 튕김과 메모리 문제입니다. 모바일에서는 특히 텍스처, 이펙트, UI 리소스가 누적되면 어느 순간 앱이 버티지 못하고 종료되는 상황이 생기는데, PC에서는 상대적으로 늦게 드러나기 때문에 초기에 놓치기 쉽습니다. 이 책은 플랫폼별로 자원 관리 관점이 달라야 한다는 점을 잘 짚어주고 있어서, “PC에서 괜찮으니 모바일도 괜찮겠지”라는 위험한 생각을 버리게 해줍니다. 예를 들어 사용이 끝난 오브젝트와 리소스가 정말 해제되고 있는지, 재사용 가능한 객체를 불필요하게 계속 생성하고 있지는 않은지, 텍스처 크기와 압축 방식이 적절한지 등을 점검하는 습관을 갖게 되었습니다. 원인을 몰랐던 크래시 문제도 이 책 덕분에 메모리 관점에서 접근해 볼 수 있었고, 몇 가지는 실제로 해결까지 이어졌습니다.

세 번째는 방치형 RPG 특유의 UI와 이펙트 누적 문제입니다. 방치형 장르는 화면에 항상 여러 UI가 떠 있고, 성장 알림, 재화 획득, 버튼 강조, 캐릭터 스킬 이펙트 등 시각 요소가 끊임없이 쌓입니다. 여기에 모바일과 PC 크로스 플랫폼 대응까지 더해지면 단순히 “보이기 좋게” 만드는 것만으로는 부족하고, 어떤 요소가 프레임을 갉아먹는지를 함께 고민해야 합니다. 이 책은 이런 부분을 감으로 접근하지 않게 해주었습니다. 캔버스 분리, 불필요한 갱신 최소화, 배치와 드로우콜, 오버드로우, 프로파일러 기반 확인 같은 개념을 실무 흐름 안에서 이해할 수 있어서, 단순히 책을 읽고 끝나는 것이 아니라 바로 프로젝트에 대입해 보게 만든다는 점이 좋았습니다.

무엇보다 이 책은 “최적화는 고수들만 하는 어려운 영역”이라는 막연한 두려움을 줄여줍니다. 물론 유니티 최적화는 결코 쉬운 일이 아니고, 엔진 소스를 공개하고 있지 않기 때문에 답답한 순간도 많습니다. 그럼에도 불구하고 이 책은 보이지 않는 엔진 내부를 전부 알 수는 없어도, 최소한 증상을 통해 원인을 추적하는 방법을 알려줍니다. 그 덕분에 문제를 마주했을 때 막연히 불안해하기보다, 프로파일링하고 가설을 세우고 확인하는 식의 좀 더 개발다운 접근이 가능해졌습니다.

결론적으로 '레트로의 유니티 성능 최적화'는 유니티를 어느 정도 써 본 개발자, 특히 작은 프로젝트를 넘어 조금 더 큰 규모의 게임을 다루기 시작한 팀에게 매우 추천할 만한 책입니다. 저처럼 하이퍼 모바일 게임 중심의 경험에서 출발해, 이제는 방치형 모바일 RPG 같은 규모 있는 프로젝트를 PC와 모바일 크로스 플랫폼으로 개발하며 새로운 문제들을 마주하는 입장에서는 더더욱 공감되는 내용이 많았습니다. 단순히 성능을 “좋게 만드는 법”을 알려주는 책이 아니라, 왜 문제가 생기는지 이해하고, 원인을 유추하고, 실제 해결 방향을 잡게 해주는 책이라는 점에서 실무 가치가 높았습니다. 원인을 몰랐던 문제들을 추정할 수 있게 되었고, 실제로 몇 가지는 해결까지 이어졌다는 점에서, 이 책은 저희 프로젝트에 분명히 도움이 된 실용적인 개발서였습니다.

 

“한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다.”

 

 

들어가며

 

게임을 기획하고 개발하다 보면 어떠한 시스템을 설계함에 있어 구현 가능성을 고려하게 되기 마련이다.

 

이때 단순히 구조 설계와 동작 가능성의 관점에서만 고려하면 추후 모델링이나 이펙트 등을 적용했을 때 프레임 레이트가 떨어지는, 흔히 렉이 걸리는 현상이 발생하기도 한다.

 

이에 이것저것 찾아보며 렌더링이니 드로우콜이니 프로파일링이니 여러 가지 이야기를 들어왔지만 이것들을 어떻게 고려해 최적화를 해야 하는지에 대해서는 의문이었고, 당장 이것들을 해결하기에는 무엇부터 시작해야 할지 막막했기에 언제나 뒷전이 됐다.

 

이런 상황에 '레트로의 유니티 성능 최적화'를 발견하게 됐다. 레트로님은 유니티의 개발 입문 바이블이라고 할 수 있는 '레트로의 유니티 게임 프로그래밍 에센스'의 저자이기도 하기에 차고 넘치게 믿을 수 있었고, 한 번 읽어보게 됐다.

 

 

 

리뷰

 

나는 어떠한 기술 서적을 고르고 읽을 때 그 책이 단순히 지식을 전달하는지, 아니면 그 지식을 다룰 수 있는 사고방식을 심어주는지 살펴본다.

 

결론부터 말하면 '레트로의 유니티 성능 최적화'는 이런 관점에서 최적화를 위한 사고방식을 내재시켜주는 책이었다고 정리할 수 있겠다.

 

 

책의 구성을 살펴보자.

 

'레트로의 유니티 성능 최적화'는 최적화를 위해 목표를 설정하는 것부터 시작해서 스레드, 렌더링, 메모리 관점에서 병목을 파악하고 문제를 정의하는 것, 그 문제를 확인하기 위해 프로파일러와 프레임 디버거 등의 툴(유니티 기준)을 쓰는 방법, 에셋과 셰이더를 최적화하는 방법까지 다룬다.

 

그리고, 이에 더해 기반 지식이 필요한 부분에서는 메모리 페이징과 같은 원리를 간단명료하게 설명해 가며 이해를 돕고, AI를 활용해 최적화를 하는 가이드까지 소개돼 있다.

 

 

나는 단순하게 지식을 나열하는 것이 아닌 최적화를 위해 무엇을 고려할 수 있고, 어떻게 문제를 좁혀가는지에 대해 명확히 정리돼 있는 걸 확인할 수 있는데, 나는 이런 관점에서 '레트로의 유니티 성능 최적화'가 최적화를 다루는 사고방식을 내재시켜 준다고 생각했다.

 

 

책을 보며 가장 인상 깊었던 문구를 얘기해 보며 리뷰를 마무리 지어보자. 나에게 유의미하게 다가왔던 문구는 아래와 같다.

 

게임 최적화는 프로그래머만의 작업이 아니며 기획과 아트 측면에서도 시각적 품질을 유지한 채 성능을 개선할 방법을 함께 고민해야 합니다.

『레트로의 유니티 성능 최적화』 (이제민 저자 | 한빛미디어, 2026)

 

나는 이제까지 게임 기획을 하면서 최적화는 개발자의 일이라는 생각을 했다. 하지만, 결국 게임이라는 협업의 결과물을 만들기 위해서는 최적화 부분에 있어서도 무엇이 어디까지 표현될지에 대한 의도, 그리고 범위 표현이 굉장히 중요하다는 걸 깨달을 수 있었다.

 

물론 책의 서두에서 개발자를 위한 책이라고 언급하신 만큼 개발자가 읽는 것이 가장 좋겠지만, 유니티 입문서를 작성하신 경험이 있는 만큼 어렵지 않게 서술돼 있기에 게임에서 성능 관점 내 무엇을 고려할 수 있을지 궁금했던 타 직군들 또한 이 책이 적지 않은 도움이 되리라고 생각했다.(기본적인 컴퓨팅 논리 사고를 갖췄다면..!)

 

그렇기에 단순히 기획하고 리소스를 만드는 것을 넘어 나의 작업물이 적용될 때 어떤 요소가 성능에 영향을 미칠지 기술적으로 접근해 보고 싶은 타 직군에게도 이 책을 추천한다.

"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."

 

이번에 읽은 도서는 유니티 개발과 관련된 좀 더 심도있는 내용을 다루고 있는 도서이다. 사실 처음에 이 책을 읽을지에 대해 상당히 고민을 많이 했었다. 그 이유는 내가 이 책을 읽을만큼 유니티에 대한 지식이 충분히 있는지에 사실 자신이 없었기 때문이다. 유니티로는 습작으로 소규모 연습용 게임 정도 개발해봤던 터라, 최적화를 논하기에는 아직 좀 시기상조라는 생각이 들었지만, 그럼에도 최적화란 부분은 개발자라면 늘 평생 숙제로 중요하게 생각하는 부분이기도 하고, CPU, 메모리, 스토리지와 관련된 부분은 가슴 뛰는 일이라는 생각에 덜컥 본 도서를 읽어보게 되었다.

 

그러나 도서를 읽다보니 역시나 전문 유니티 개발자가 아닌 탓에 도서에서 다루고 있는 내용을 100% 소화하기에 좀 무리가 있긴 했지만, 일단 쭉 읽어나가며 잘 이해가 안가는 부분은 잠시 독서를 멈추고 관련 지식들을 좀 찾아보며 대략적으로라도 이해를 하고 넘어가는 과정을 진행하면서 도서를 읽어 나갔다.

 

사실 상당히 오래 전에 이 책의 저자 분의 도서인 <레트로의 유니티 게임 프로그래밍 에센스>를 출간 전 베타리딩을 수행한 적이 있었는데, 당시에도 풍부한 예제를 기반으로 이해하기 쉽게 잘 설명되어 있어 좋은 인상에 남았던 기억이 있는데 이번에 이렇게 같은 저자의 중급 도서를 읽게 되어 감회가 새롭다. 내 기억이 맞다면 저자분은 아마도 디자이너 출신으로 개발을 시작하신 것으로 알고 있는데(확실치는 않음), 당시에도 비전공자 출신임에도 그러한 개발 도서를 집필했다는 부분에 대해 참 대단하다는 생각을 했었는데, 이제는 성능 최적화까지 다루시다니, 개발자의 한 사람으로서 멋지다는 생각이 든다.

 

그 간 출간된 수많은 유니티 도서 중에 이렇게까지 시간 당 프레임 수, 메모리, CPU와 GPU 등의 최적화에 대한 내용을 본격적으로 다룬 도서는 보지 못했던 것 같다. 개인적인 생각에 최적화는 상용 게임 개발에 필수적인 요소라는 생각이 들고, 이러한 최적화를 위한 프로파일링 기법과 각종 관련 지식들은 특정 유니티 버전에만 해당되는 내용이 아니기에 모든 유니티 개발자들에게 상당히 유용할 것 같다는 생각이 들었다. 다만, 내용 중 macOS와 iOS 환경에서의 최적화를 다루고 있는 부분이 있어, 윈도 환경에서 개발하거나 안드로이드 용으로 개발하는 분들보다는 macOS에서 iOS용 앱을 개발하는 분들에게 조금 더 원활한 학습 진행이 될 것 같다.

 

이번 도서를 통해 내가 얻은 가장 유익했던 부분은 뭐니뭐니해도 유니티 프로파일러 사용에 대한 부분이다. 유니티는 습작 프로토타입 정도 개발 목적으로만 사용했기 때문에 프로파일러를 제대로 사용해본 건 이번이 처음이었는데, 상당히 파워풀한 기능들이 포함되어 있다는 느낌을 받았다.

 

참고로 도서의 실습 예제들은 6.3 LTS 버전으로 구성되어 있으나, 프로파일러 등 예제는 최근 새로이 나온 6.4 버전에서도 문제 없이 잘 돌아갔다. (내 PC에 원래 6.0 버전이 설치되어 있었는데, 이번 도서를 읽으면서 6.4로 업그레이드했음) 다만, 도서에서 프로파일러 설정 관련하여 언급한 "File > Build Settings" 메뉴는 현재 "File > Build Profiles" 메뉴로 변경되어 있다는 부분은 참고하면 좋을 것 같다.

 

본 도서에서는 다양한 형태의 성능 최적화 관련 이야기를 다루고 있는데, 유니티는 멀티 스레드를 지원하는 엔진인만큼 스레드 성능에 대한 내용도 빼놓지 않고 다루고 있다. 유니티는 기능에 따라 크게 메인 스레드, 렌더 스레드, 워커 스레드로 구분되는데, 이러한 복수 개의 스레드들이 함께 동작하는 과정에서 그 중 어떤 스레드가 성능 저하를 일으키고 있는지를 찾는 과정이 성능 최적화 활동의 핵심 요소 중 하나라고 할 수 있는데, 이러한 과정에 대한 노하우 또한 이 책에서 다루고 있어, 개선이 필요한 스레드에 대한 핀셋 교정을 하는데 있어 매우 큰 도움이 될 것 같다.

 

또한, 아무래도 개발자인 내 입장에서는 코딩과 관련된 C# 스크립트 최적화 부분에 대한 내용도 개인적으로 유용했다는 생각이 들었다. 예를 들면, Fake null 상태를 검사하는 방법에 대한 효율화 방안이라든지, 위치와 회전에 대한 트랜스폼 연산을 한꺼번에 수행하여 성능을 조금 더 높히는 시도라든지 등과 같은 자잘한 팁부터, 게임 오브젝트의 인스턴스화(객체 생성)에 대한 처리를 실시간이 아닌, 미리 오브젝트 풀을 만들어 두고 할당하는 방식이라든지, 계산(특히 소수점 계산) 결과를 미리 캐싱해놓고 사용한다는지..하는 유니티 플랫폼과 관계 없이 일반적인 게임 개발 시 많이 사용하는 깨알 최적화 기법들도 잘 기술되어 있어 유용하다는 느낌이 들었다.

 

결론적으로, 본 도서는 다음과 같은 분들이 읽으면 좋을 것 같다.

  • 유니티에 어느 정도 익숙해져서 본격적인 상용 앱을 개발하고 싶은 중급 개발자
  • 본인이 개발 중인 유니티 앱의 성능을 좀 더 높히고자 하는 개발자
  • 유니티의 메모리 구조와 프로파일링 도구에 대해 자세히 공부하고자 하는 분
  • 그 외 유니티 성능 최적화 방안에 대해 궁금한 모든 분들

 

앞서 언급했듯이 이번 도서는 아무래도 유니티에 대한 실무적인 개발 역량이 이미 어느 정도 갖춘 사람에게 더 도움이 되는 도서라 할 수 있으므로, 유니티를 이제 막 입문하고자 하는 초보자 분들께는 적합하지 않은 도서이다. 유니티 개발에 어느 정도 익숙해지면서 실제로 조금씩 퍼블리싱도 수행하고 있는 분들께서 본인이 개발하고 있는 개발 산출물들을 좀 더 빠르고 동작하도록 만들면서 사용하는 리소스 또한 줄일 수 있는 어드밴스드한 고급 기법을 적용하고자 할 때 옆에 두고 참고하며 읽어보기에 유용한 도서이다.

 

시중에 일반적으로 나와 있는 일반적인(대중적인) 유니티 게임 개발 도서와는 분명 차별화된 난이도가 있는 도서이지만, 분명 상용 유니티 소프트웨어를 개발하고 있는 개발자분이라면 분명 한번씩 읽어봐야할 수준 높은 내용을 담고 있는 도서라 할 수 있을 것 같다. 게임 개발에 늘 관심을 갖고 기웃기웃 하고 있는 나의 경우에는, 아직은 본격적인 게임 개발을 하고 있지 않기에, 이러한 유용한 내용이 있구나 정도의 관전하는 마음가짐으로 이번 도서를 읽기는 했지만, 분명 머지 않은 미래에, 늘 옆에 두고 매우 유용하게 활용하고 있을 때가 올 것이라고 생각한다.

 



"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."

유니티 최적화를 항상 렌더링 위주로만 생각해왔는데, 이 책을 보면서 메모리, GC, 리소스 생명주기까지 함께 봐야 한다는 점을 다시 느꼈습니다. 특히 실제로 프로젝트를 진행하면서 리소스를 제대로 해제하지 못해 메모리가 지속적으로 증가했던 경험이 있었는데, 당시에는 단순히 “메모리가 많이 쓰인다” 정도로만 인식했었습니다. 

하지만 이 책에서는 이런 문제를 객체 참조와 생명주기 관리 관점에서 설명해주기 때문에, 왜 GC가 발생하지 않고 메모리가 유지되는지 명확하게 이해할 수 있었습니다.

또한 Profiler와 Memory Profiler를 활용해 스냅샷을 비교하고, 문제 발생 시점의 변화를 추적하는 방식이 인상 깊었습니다. 단순히 수치를 보는 것이 아니라 “언제, 왜 증가했는지”를 분석하는 접근이 실무에서 바로 활용 가능하다고 느꼈습니다. 최적화를 막연한 튜닝이 아니라, 근거를 기반으로 문제를 해결하는 과정으로 정리해준다는 점에서 유니티 개발자라면 한 번쯤 읽어볼 가치가 있는 책이라고 생각합니다.

리뷰쓰기

닫기
* 상품명 :
레트로의 유니티 성능 최적화
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
레트로의 유니티 성능 최적화
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
레트로의 유니티 성능 최적화
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 적립금 500P를 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?