aim***
2019-11-15

빠른 코드를 작성하는 시간은 느린 코드를 작성하는 시간보다 결코 길지 않다. 이 책은 올바른 코드를 구현하면서도 빠른 C++ 프로그램을 만드는 최적화 방법을 소개한다. 습관적으로 쓰는 C++ 구문을 점검해보고 싶다면 35년 경력의 저자가 소개하는 10가지 기법으로 시작해보자.

앞의 필요성과 개요 부분만 봐도 상당히 중요한 내용이 많다고 생각한다.
성능 측정을 위한 방법도 설명해주고 이런 방법의 다양함과 테스트 방법 및 결과들을 체계적으로 정리하고 문서화하는 것에 대한 중요성, 또 증명해야 하는 목표까지 비단 최적화뿐만 아니라 개발 전반에 있어서 꼭 알아두어야 할 내용이 들어있다.
약간 너무 깊이 들어가는 게 아닌가 싶은 부분은 시간 측정에 필요한 '시간'에 대해 알려주는 부분이다. 어떻게 정확하게 측정할 수 있을까에 대한 내용인데, 진자시계부터 전자시계 등 백과사전에서나 볼법한 예시를 들어줘서 상당히 재미있었다. 또 시스템에서 시간 값을 반환해주는 여러 가지 함수에 대해서도 소개해주었다.
최적화 방법에 대해 알려주는 부분은 이해하는데 어려움이 좀 있었다. c++보다는 c 위주로 작업을 하고 있어서 클래스나 자원 할당에 대한 부분이 익숙하지 않아서 예제를 봐도 와닿지(?) 못하는 부분이 꽤 있어서 아쉬웠다. 기술적으로는 많은 도움이 되었다. c나 다른 언어에도 적용할 수 있는 방법도 많았고, 지금껏 생각하지 못한 새로운 아이디어처럼 느껴지는 방법도 있었다. 입문자보다는 어느 정도 실전 경험이 있는 사람이라면 정말 큰 도움이 될 책이라고 생각한다. 예제 코드만 봐도 몇 줄 수정하지 않고 20%씩 성능이 오르는 걸 보면 담당하는 제품에도 이런 식으로 적용하면 마법같이 빨라지겠다 싶은 생각과 함께 코딩 욕구가 솟아오르기도 한다. 개발 참고서라 그렇게 중요하지는 않은 부분이지만 직역하는 느낌에 읽다가 흐름이 끊기는 부분이 몇 번 있었던 것 같다.