-
-
C++ 최적화 - 최고 성능을 구현하는 10가지 검증된 기법
커트 건서로스 지음, 옥찬호 옮김 / 한빛미디어 / 2019년 7월
평점 :

어린 시절 공부 잘하는 친구에게 노트를 빌려서 시험공부를 했던 적이 있다. 그때 친구의 노트에는 시험 관련 내용이 꼼꼼하게 정리되어 있어 모르는 부분마다 찾아서 공부하기 좋았다.

이번 C++ 최적화 저서 또한 검증된 연구 노트를 열어본 느낌이다. 이 저서의 핵심을 어떻게 최적화를 할 것인가 의문에서 시작한다. 특히 C++ 코드의 행동 패턴을 참조해 C++ 프로그램을 최적화하는 내용을 다룬다. 임베디드 C++ 개발자 경력을 가지고 있으며 성능 향상을 위한 경험사례들을 이야기해 준다.
최고 성능을 구현하는 10가지 검증된 기법 내용으로
1. 성능에 영향을 주는 컴퓨터 하드웨어 기본 지식
2. 프로파일러와 소프트웨어 타이머를 활용한 측정 기법
3. 최신 C++에서 문자열의 기능을 최적으로 조합하는 방법
4. 비효율적인 알고리즘을 개선하고 C++ 코드의 행동 패턴을 참조해 최적화하는 방법
5. 동적 할당 변수를 제대로 사용하고 메모리 관리자의 호출 횟수를 줄이는 방법
6. 실행에 불필요한 명령어를 제거하여 문장 수준에서 최적화를 이루는 방법
7. 처음부터 고성능을 목표로 하는 라이브러리를 설계하는 방법
8. C++ 컨테이너 클래스의 장단점을 이해하고 활용하는 방법
9. C++ 스트리밍 입출력 함수를 효율적으로 사용하는 방법
10. 그 외 성능 저하를 일으키는 요인을 찾아내고 수정하는 방법
10가지 기법 중심으로 C++ 설계의 모범 사례를 올바른 코드로 구현하는 방법을 다룬다. C++ 설계를 훌륭하게 구현하면서 올바른 코드를 작성해 거의 모든 컴퓨터에서 실행 속도가 더 빠르며 자원을 더 적게 사용하게 바꾸는 방법을 설명하고 있는 점이 이 책에 큰 장점인데요.


최적화라는 분야는 소프트웨어나 하드웨어를 개발하는 데 필수적인 요소라고 생각한다. 이 책은 C++ 설계의 모범 사례를 올바른 코드로 구현하는 방법을 다룬다. C++ 설계를 훌륭하게 구현하면서 올바른 코드를 작성해 거의 모든 컴퓨터에서 실행 속도가 더 빠르며 자원을 더 적게 사용하게 바꾸는 방법을 설명한다. 주로 설명 글로 되어 있어서 한 번에 최적화를 마스터하기엔 방대한 양이다. 차근차근 설명을 보고 챕터 속에 작은 상자에 속에 다양한 코멘트 같은 정보들이 담겨 있다. ‘ 잠시 멈추고 생각해봅시다’, ‘최적화 전쟁 이야기’ 등 알찬 정보들을 얻을 수 있는 연구 노트이다.

이 저서는 C++11을 기준으로 설명하고 있으며, 실무에서 C++을 사용 중인 신입, 주니어 개발자에게 큰 도움이 될 것이다. 하지만 지금의 C++17 릴리즈에도 적용되는 내용이다. 실제 테스트해보고 어떤 것이 효율적인지 어떤 것이 더 빠르게 연산하는지 확실한 답을 해준다. 단순히 최적화에 대해서 설명해 주는 쉬운 수준의 책이 아니다 컴퓨터 하드웨어 메커니즘에 대한 이해가 어느 정도 있어야 한다. C++ 문법을 전체적으로 잘 파악하고 있거나 실제 여러 코딩 경험이 있는 어느 정도 문법적 지식과 동작 원리를 잘 알아야 큰 도움을 받을 수 있다.