"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."
이 책의 대상 독자
- 유니티로 게임 개발한 경험은 있으나 프레임 드롭, 메모리 증가, 로딩 지연과 같은 성능 문제의 원인을 명확히 설명하기 어려운 개발자
- 프로파일러를 사용해본 경험은 있지만 수집한 데이터를 어떻게 해석하고 최적화로 연결해야 할지 막막했던 개발자
- 감에 의존한 최적화가 아니라 지표와 근거를 기반으로 성능 문제를 정의하고 개선하고자 하는 실무 개발자
- 모바일, 콘솔, PC 등 다양한 플랫폼 환경에서 유니티 프로젝트의 성능 안정성을 확보해야 하는 개발자
++ 게임/그래픽스에 관심있는 사람(단, 레트로의 유니티 6 게임 프로그래밍 에센스 선행 필수)

(https://product.kyobobook.co.kr/detail/S000215787646)
저자의 말에서 이 책의 목적을 알 수 있었는데요.
이 책을 쓰며 가장 중요하게 생각한 점은 개별 사례의 해결 방법을 나열하는 것이 아니라 문제를 분석하고 해결하는 전문가의 사고 방식을 전달하는 것이었습니다. 게임 최적화에는 정답이 없습니다.
(…)
성능 문제를 해결하려면 소거법적인 사고방식이 필요합니다.
가능한한 모든 맥락을 수집하고 불필요한 정보를 제거하며 남은 가능성을 하나씩 검증합니다.
(…)
이 과정에서 2가지 도구가 필요합니다. 직관과 원자적 접근입니다.
직관은 경험을 통해 논리적 단계를 건너뛰는 능력입니다.
모든 현상에는 반드시 원인이 있다는 전제 아래 프로파일링 도구와 수치를 통해 정확히 무엇이 일어나고 있는지를 검증합니다.
직관은 방향을 제시하고 원자적 분석은 이를 증명합니다.
– p7
수치적으로 확인할 수 있는 도구와 함께 원자적 분석을 강조하셔서 공감이 많이 갔습니다.
최적화라는 키워드 때문에 저는 이 책을 읽기 시작했습니다.
프로그래밍에 있어서 최적화란 구현이 먼저일 때는 주변에서 중요하지 않다고 여길 때가 있습니다.
그렇지만,
무엇을 만들든 사용자를 생각한다면,
내가 만든 프로그램의 완성도를 생각한다면, 꼭 고려해야 할 요소라고 생각합니다.
발전 속도가 엄청난 ai 시대에
이런 추가적인 사고를 하는 것이 진짜 개발자(대체되지 않는 개발자)와 무늬만 개발자(대체되는 개발자)를 나누는 기준이라고도 여기고 있고요.
유니티를 모르는 호기로운 여행자(?)가 이 책을 읽기는 매우 험난했지만
그럼에도 성능 문제를 막연하게, 감으로.. 가 아닌 지표로 바라보는 방법을 알려주셔서 책을 모두 읽고 나서 곱씹을 부분이 많았습니다.
인상 깊은 몇 부분이 있었는데요
1.3 창의적인 접근

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


프로파일러에서 제공하는 항목이 무척 중요하게 느껴졌는데요.
스레드, job, 그리고 프로그램이 동작하는 과정을 시간과 함께 체크한다는 점이
제가 하는 프로그래밍 중에도 관련 도구가 있는지 알아보고,
없다면 이런 점을 참고해야겠다는 생각을 했습니다.
8. 메모리 프로파일러

8기가 메모리가 노출 되어서 조금 부끄럽지만 메모리 프로파일러와 스냅샷도 무척 인상 깊었습니다.
코드를 최적화하는 중에 수정 후의 성능을 명확한 수치로 비교할 수 있으니 왠지 부러웠습니다.
그동안 내 코드/내 프로그램의 성능은 어떠한가를 고민할 때, 기껏해야 코드 몇 줄로 혹은 ai에 의존해서 성능 체크를 해왔는데요.
더 복잡하고 더 초기 설계가 중요한 게임 영역에서는 이 문제를 어떻게 생각하고 수정하는가를 볼 수 있었습니다.
순서는 바뀌었지만 조만간 “레트로의 유니티 6 게임 프로그래밍 에센스”도 읽어보고 성능 최적화도 다시 읽어보겠습니다~ :D








