jrcfore***
2019-08-07

빠른 코드를 작성하는 시간은 느린 코드를 작성하는 시간보다 결코 길지 않다. 이 책은 올바른 코드를 구현하면서도 빠른 C++ 프로그램을 만드는 최적화 방법을 소개한다. 습관적으로 쓰는 C++ 구문을 점검해보고 싶다면 35년 경력의 저자가 소개하는 10가지 기법으로 시작해보자.
C++이 생겨난지도 이제 근 25년이 다되어가고 있다. 그 기간동안 무수히 많은 명세가 제안되었고 기능적으로 효율적으로 상당한 진보를 이루어워왔다. 이런 파고의 과정을 거치다 보니 C++만큼이나 다양한 어프로치와새로운 인사이트 그리고 최적화 이론이 등장한 언어도 없을 것이라 생각된다. 위의 언급한 것들 중에, 본 서는 특히 C++을 어떻게하면 최적화 할 수 있는지에 집중하고있다. 가령 C++의 코드를 최대한 버퍼에 올리거나 혹은필요없는 로직들 등을 없엠으로써 효율 향상을 시키는 방법 등을 말이다.
【어떤 독자를 위한 책인가】
이 책은 그림은 상당히 적고 글이 대부분인 책이다. 글보단그림 위주로 책을 읽으며 학습하기 좋아하는 분이라면 위 책을 선택하는 것은 어찌보면 잘못된 선택일 수 있다. 또한 C++의 성능 향상 이슈를 다루다보니 C++의 기본 지식과 이에 필요한하드웨어 지식등을 요하고 있다. 따라서 대학교 학부 수준의 전산학 지식을 가지고 있지 않은 독자가 있다면이해하는데에 어려운 부분이 있을 것이라 생각된다. (물론 책에서 자세히 설명하고 있으나 그 설명만으로전부를 이해하는데엔 확실히 한계점이 있어 보였다.) 결론적으로, 위책은 자신이 C++의 동작 원리와 기본기에 대해 어느정도 숙달되었고,또한 하드웨어 이론에 대해서도 어느정도 이해하고 있는 독자를 대상으로 하고 있다.
【책의 구성】 'C++ 최적화' 책의 구성은어떠한가.
본 서는 스텝 바이 스텝으로책의 내용을 접근하고 있다. 가령 하드웨어부터 시작하여 하드웨어를 제어하기 위한 C++에 이르기까지 바텀-업 방식을 취하고 있기에 학습하기에 매우좋은 구성을 하고 있다. 또한 위 책은 다양한 수치를 독자에게 제공함으로써 책에서 제안하고 있는 최적화이론의 논리적 근거를 명백하게 제시하고 있다. 따라서 실험이나 최적화 이슈로 고민하는 사람이 있다면이를 확실한 근거로 삼아도 좋을 것이라 생각한다.
다만 위에서 언급했던 것처럼 책의 대부분이 글로 이루어져 있고, 각 쳅터별로 서두 본론 정리식의 구성을 취하여 나름의 체계성을 가추어져 있으나, 자칫하면 약간 지루함에 빠질 수 있는 오류가 있다. 이 부분만을 주의해서 차근 차근 공부해간다면 최적의 효율을 취할 수 있을것이라 기대한다.
【C++ 최적화를 읽으며…….】
리뷰어는 지난 20년 가까이 C와 C++을 전공해왔다. 그렇기에그 긴 세월 동안 C/C++이 어떤식으로 변해왔는지 멀리서나마 지켜볼 수 있었는데, 요즘 만큼 활발히 C/C++이 변화하는 시대도 없는 듯했다. (이렇게 고인 언어가 말이다!!) 또한 웹 프레임 워크가 중요해지는시대이다 보니, 다양한 웹관련 언어들이 탄생하고 소멸하고 다시 나타나고를 반복하고 있다. 이런 시대일 수록 기초 언어 하나를 최적으로 학습한다면 다른 언어들을 학습함에 있어 큰 어려움이 없을 것이라기대해본다.