최적화는 비효율적인 부분을 좀 더 효율적으로 바꾸는 작업이다.

최적화에 있어 가장 중요한 것은 최적화하려는 대상이 정말 비효율적이냐는 것이다. 비효율적인지를 판단하는데에 자신의 경험도 중요하지만 프로파일러같은 툴을 이용하는 것이 낫다. 섵부른 최적화는 대상의 복잡도만 증가시키고 그다지 효율적이진 못한 결과를 낳게 된다. 툴을 이용하면 이런 사태를 줄일 수 있다.

최적화는 많은 경우에서 트레이드 오프 특성이 나타난다. 예를 들어 드로우콜 비용을 줄이기 위해 Static Batching 을 사용했다고 해보자. 이는 렌더링 속도를 높이는 대신 메모리를 낭비하는 결과를 낳는다. 최적화가 다른 부분을 비효율적으로 바꿀 수 있는지, 그렇다 했을 때 어느 쪽이 더 가치가 있는지를 판단해야 한다.

클라이언트 사이드에서 최적화는 단지 프로그래머만의 몫은 아니다. 최적화에 관한 가이드라인을 정하고 프로그래머, 아티스트, 디자이너 등의 여러 직군들이 이를 공유하고 숙지하며 작업에 임해야 한다. 최소 사양 하드웨어가 무엇이고 텍스처 크기 제한은 얼마이며 몬스터는 최대 몇 명이 등장해야 하는 지 등에 대한 기준을 정한 뒤 작업을 진행하도록 하자.

프로파일링은 자주 하는 것이 좋다. 프로파일링을 자주 하면 최적화 하려는 대상이 언제, 어떻게 비효율적으로 되었는지를 보다 쉽게 유추할 수 있다.

Posted by 카코데몬
,