전문가를 위한 C++ (개정 5판)
연구이야기/도서이야기☆

전문가를 위한 C++ (개정 5판)

2023년 3월 말에 출간된 <전문가를 위한 C++ 5판>을 소개합니다. 이 책의 부제는 <C++20, 병렬 알고리즘, 파일시스템, 제네릭 람다, 디자인 패턴, 객체지향의 원리를 익히는 확실한 방법>입니다. <전문가를 위한 C++>은 번역서로 원서는 2021년 2월에 출간되었으며, 아마존 평점은 4.7점으로 높은 점수를 유지하고 있습니다. 개인적으로 이 책이 번역서로 출간되었다는 것은 국내 C++ 개발자에게 큰 도움을 준다고 생각합니다.  

이 책의 저자는 Marc Gregoire 님이며, 번역은 지난 번과 동일하게 남기혁 님께서 맡아 주셨습니다. 이 어려운 책을 번역해 주신 남기혁 님께 깊은 감사의 말씀을 전하고 싶습니다. 

<전문가를 위한 C++ 5판>은 약 1,690 페이지로 구성되어 있어 휴대하면서 읽기는 어렵습니다. 분철하거나 전자책으로도 출간되어 있으므로 전자책 뷰어가 있으면 전자책으로 만나보는 것도 좋을 것 같습니다. 참고로 필자도 전자책으로 봤습니다. 

한빛미디어 평가단에 참가하여 작성한 글이며, 한빛미디어에서 제공해준 책을 읽고 작성했음을 밝힙니다. 

 

이 책의 매력은?

<전문가를 위한 C++ 5판>은 기존 C++17 기준으로 작성된 <전문가를 위한 C++ 4판>에 현재 최신 버전은 C++20을 자연스럽게 녹여낸 작품입니다. C++20은 많은 변화가 포함되었고, 새로운 기능도 다수 추가되었습니다. 주요 변경 사항은 다음 링크에서 확인할 수 있습니다.

<전문가를 위한 C++ 5판>은 6부 34장, 부록 4장으로 구성되어 있습니다.

1부의 제목은 '전문가를 향한 C++ 첫걸음'으로 C++의 기본 소양을 다룹니다. 이 책에서 C++의 개론서에서 모든 내용을 다루지는 않습니다. 그러므로 다른 기본서를 읽은 후, 이 장을 정리하는 차원에서 보는 것을 추천합니다. 이 장에서 다루는 코딩 스타일 가이드는 꼭 한 번 읽고 정리했으면 하는 바람이 있습니다. 

2부는 '전문가다운 C++ 소프트웨어 설계 방법'입니다. 제목에서 볼 수 있듯이, 프로그램 디자인에 대해 소개합니다. 코드를 재사용하도록 디자인해야 하는 이유와 방법을 소개하며, 코드의 구조화에 대한 팁과 인터페이스 디자인에 대한 원칙을 소개합니다. 

3부는 '전문가답게 C++ 코딩하기'입니다. 동적 메모리와 관련된 주제부터 클래스와 객체에 대한 내용, 코드 재사용성과 다형성을 포함한 활용 사례 등을 다룹니다. 그리고 템플릿을 이용한 제네릭 프로그래밍의 개념을 소개합니다. 이외에도 I/O, 에러 처리, 표준 라이브러리, 람다 표현식 등 C++을 사용하며 숙지해야 할 많은 내용을 듬뿍 담고 있습니다. 이 부분은 제대로 보시면 많은 지식을 정리하고, C++ 코드를 작성하며 실수할 수 있는 부분을 줄일 수 있을 것입니다.

4부는 'C++ 고급 기능 마스터하기'입니다. 이 부분에서는 고릅 템플릿 기능과 C++ 멀티스레드 프로그래밍, 그리고 표준 라이브러리 커스터마이스 및 확장 방법에 대해 다루고 있습니다. 개인적으로 C++ 멀티스레드 프로그래밍 부분은 꼭 읽어보시는 것을 추천합니다. 이론으로 배운 지식들을 정리할 수 있고, C++에서 사용방법을 학습할 수 있어 좋았습니다. 

5부는 'C++ 소프트웨어 공학'입니다. 개인적으로 제목이 적합한 것인지 모르겠습니다만 효율적인 C++ 코드 작성법, 테스트, 그리고 디버깅 부분 등은 읽고 정리하시면 도움이 될것 같습니다.  

6부는 '부록'이며, 4개의 장으로 구성되어 있습니다. 부록 A장이 신선한데, 'C++ 면접 예상 질문' 부분입니다. 최근 이 부분이 독자들에게 요구 사항이 많은 것 같습니다. 이 책에도 지면을 할애해서 내용을 수록하고 있으니까요. 개인적으로 재미있는 부분이었습니다.

이 책은 너무나도 양이 방대합니다. 리뷰 시점에 모든 내용을 정독하는 것은 불가능했고, 띄엄띄엄 관심 있는 부분들만 살펴보고 이 글을 작성하고 있습니다. 그러므로 제가 살펴보지 못한 곳에도 매력적인 부분이 있을 것으로 생각합니다. 틈틈히 살펴보며 이 글에 내용을 보강하겠습니다. 

 

마치면서

<전문가를 위한 C++>는 제목에서 보듯이 입문서는 아닙니다. C++을 활용하는 사람들에게 최근에 도입된 문법들을 활용할 수 있도록 가르쳐 주는 책입니다. 이 책은 C++에 대해 경험있는 개발자가 최신 스펙을 이해하고 학습하는 데 도움을 주는 책으로 정리할 수 있습니다.

자바와 유사하게 어느 시점에서 C++ 발전 속도가 느리다고 생각했었습니다 하지만 몇 년전부터 자바와 C++의 개선 속도가 빨라지고 있음을 체감할 수 있습니다. 한동안 C++에 대해 경험하지 못했는데, 이 책을 통해 C++의 개선사항을 알 수 있었습니다.

프로그래밍 언어도 꾸준히 발전하고 있습니다. 원래 계획대로라면 올해 C++23이 도입이 되어야 하는데, 코로나 판데믹으로 인해 지연되고 있다는 것을 알게 되었습니다. 아마도 새로운 문법이 추가되는 것보다는 안정화에 초점을 맞추고 진행하는 것 같습니다. 곧 새로운 스펙이 나올 것으로 예상되는데, C++에 관심 있는 분들이라면 이 책을 통해 C++의 새로 도입된 기능을 한 번 경험해 보시는 것도 좋을 것 같습니다. 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."