jangej1***
2019-08-08

빠른 코드를 작성하는 시간은 느린 코드를 작성하는 시간보다 결코 길지 않다. 이 책은 올바른 코드를 구현하면서도 빠른 C++ 프로그램을 만드는 최적화 방법을 소개한다. 습관적으로 쓰는 C++ 구문을 점검해보고 싶다면 35년 경력의 저자가 소개하는 10가지 기법으로 시작해보자.
다양한 방면에서 아주 소중한 우리 C++을 더욱더 잘 쓸 수 있도록 가이드해주는 C++ 최적화 책이 출간되었다! 한빛미디어에서 리뷰어로 읽을 수 있게 해주어서 너무나도 기쁘다.
C++을 더욱더 잘 쓰려면 컴퓨터 구조와 구동하는 방식에 대해서 잘 알아야 하며, 컴파일러가 어떻게 동작하는지도 잘 알아야 하며, 운영체제가 뭔지에 대해서도 잘 알아야 한다... 너무 어렵다... 그래도 잘 쓰면 엄청난 퍼포먼스를 자랑하기 때문에 꼭 마스터가 되고 싶다. 그래서 C++책 중에 다양한 책이 있지만 특히 C++을 어떻게 하면 잘 쓰냐에 대한 책들을 읽다보면 위에서 말한 컴퓨터나 OS에 대한 내용들도 많이 등장한다. 이 C++ 최적화에서는 세부적으로 윈도우에서 MSVC컴파일러를 썼을 때 C++코드를 최적화 하는 방안들에 대해서 알려준다. 어느 최적화와도 마찬가지로 항상 최적화는 실험과학적이다. ㅋㅋ
항상 책 마지막 부분에 마치면서 이 장에서 다루었던 내용들을 쉽게 요약해두어서 정말 보기 편하다. 책을 읽으면서 항상 내용에 대해서 생각하며 읽어야 하는데, 그럴 시간이 없다면 무작정 이 마지막 페이지만 읽어도 뭐 나쁘진 않을 것 같다는 생각을 한다. 가까운 책장에 꽂아두고 항상 보고 읽을만한 좋은 책인 것 같다.
C++11에 관한 내용들도 언급하고 있다. rvalue reference, std::move과 같은 C++11에서 다루는 내용들도 어떻게 최적화 할 것인지 다루고 있다. 구식 책은 아니라는 점.
항상 최적화와 아름다운 구조간의 중간지점 타협을 찾아야 한다. 구조가 예뻐서 코딩하는데 쉽고 빠르고 간편하게 하고 싶지만 성능도 빠르게 하고 싶은게 프로그래머 마음일 것이다. C++은 둘다 잡을 수 있는 기회를 제공해준다. 근데 실력에 따라 둘다 놓칠 수도 있다. 항상 주의해가면서 써야하는게 C++인것 같다. 최근에 연구하면서 후위 증가 연산자를 한문장에 여러 번 쓴 적이 있는데, 그것을 디버깅한다고 꼬박 이틀이 날라갔다.
이 책은 Effective C++ 시리즈 처럼 어떻게 하세요~ 이런식으로 나와있지만 다루는 내용들은 전부 최적화와 관련된 내용이라서 좋았다. 저자가 직접 자기 환경에서 실험해보면서 어떻게 최적화 하는게 좋은지 상세히 알려주고 있어서 신뢰도 생긴다. 이 책을 통해 내 연구 소스코드도 좀 손봐야 할 곳이 많다는 생각이 들었다.
항상 잘 하고 있다고 생각했을 때 돌아봐야 한다.