"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
주변에서 프로그래밍을 하는 사람이 있다면, 그중에 사용하는 언어가 C++라면, 심지어 어느 정도 연배(?)가 있다면, 모니터 밑을 유심히 살펴보면 <전문가를 위한 C++>가 있는 경우가 꽤 있다. 물론, 끊임없이 읽기 위함이라기보단, 목 건강을 위해 모니터 받침으로 이만한 책이 별로 없기 때문이다. 물론 한빛미디어에서 제공받은 책을 모니터 받침으로 사용할 순 없다. 아쉽게도 전자책인 이유도 있지만, 모니터 암을 쓰고 있기 때문이다. 만약을 위해 종이책도 사두어 책장에 고이 모셔져 있는 상태이다.
<전문가를 위한 C++>는 책의 제목만큼이나 디자인이 너무나도 전문가스러워서 그야말로 C++의 은거기인이 아니라면 이 책을 펴서 읽어볼 엄두도 안나게 생긴 것은 사실이다. 하지만, 외향과는 달리 C++을 입문해서 문법 공부를 마쳐 "난 이제 C++전문가야!"라는 생각을 갖는, 그야말로 더닝 크루거 효과에서 말하는 우매함의 봉우리 꼭대기에 있는 사람을 위한 책이다(그야말로 나를 위한 책인 것 같다!)
<전문가를 위한 C++(개정5판)>은 부록 파트를 제외하면 총 5가지의 파트로 이루어져 있다. 각 챕터의 제목은 아래와 같다.
- 전문가를 향한 C++ 첫걸음
- 전문가다운 C++ 소프트웨어 설계 방법
- 전문가답게 C++ 코딩하기
- C++ 고급 기능 마스터하기
- C++ 소프트웨어 공학
1700페이지 가까이되는 책이기 때문에 각 챕터에 대한 정리를 하는 것은 지면이 부족하기 때문에 넘어가야 할 것 같다. 전반적인 내용을 요약해 보자면, 책의 시작인 첫 번째 파트에서는 C++의 기초적인 문법들에 대해 익숙하지 않은 독자를 위한 문법들이 있다. 또한 C++에 갓 입문한 독자들을 위한 코딩 스타일에 대해서도 간략히 정리해 두었다. 두 번째 파트부터는 입문자 단계에서 전문가 단계로 진입하기 위한 "소프트웨어 설계"에 대한 내용이 정리되어 있다. C언어를 공부하고 C++로 넘어오게 된다면 뇌의 사고방식을 "절차지향"에서 "객체지향"으로 바꾸어야 하는데, 이 과정에서 수많은 C++포기자가 발생하기 때문에 상세히 설명해 두었다.
세 번째 파트인 '전문가답게 C++ 코딩하기'부터는 본격적인 C++ 만의 문법에 대해 설명한다. C/C++의 난이도를 대폭 높여버린 메모리 관리를 효율적으로 하기 위한 스마트 포인터, 객체지향을 위한 클래스와 객체에 관한 문법들, "#include"를 탈피하기 위한 C++20의 모듈, 템플릿, 입출력, 에러 처리, 연산자 오버로딩, 표준 라이브러리, 다양한 유틸리티 등이 있다. 네 번째 파트는 3번째 파트의 심화 문법에 대한 내용으로, 표준 라이브러리의 커스터마이즈 방법, 템플릿의 고급 사용법, 멀티스레드에 대해 다루고 있다.
마지막 다섯 번째 파트는 이전 파트에서 다룬 C++의 기능들을 보다 효과적으로 활용한 소프트웨어를 만들기 위한 공학적인 방법론들을 다루고 있는데, 개발 프로세스, 효과적인 코드 작성 방법, 테스트, 디버깅, 설계기법, 디자인 패턴, 크로스 플랫폼 개발 방법에 대해 다루고 있다.
책 자체가 둔기 수준으로 두껍다 보니 그 안에서 다루는 내용은 그야말로 대학교 1학년 기초 과목에서 다루는 내용부터 시작해 4학년 졸업작품 만드는 여정 전체를 아우르고 있다. 이 책의 제목에서 나온 '전문가를 위한'이라는 말은 이제 막 C++의 문법 기초를 공부한 초보 개발자가 '전문가로서 발돋움하기 위한' 말에 더 가깝다고 생각이 된다. 물론 1700페이지 분량의 책을 몇 달 내로 마스터해서 전문가가 되려는 목표를 갖기보단, 필요에 따라 틈틈이 내용을 훑어보는 것을 위주로 하는 것이 정신건강에 이로울 것 같다.
'서평' 카테고리의 다른 글
[나는 리뷰어다] 파이썬 라이브러리를 활용한 데이터 분석 (3판) (0) | 2023.05.24 |
---|---|
[서평] 아무도 알려주지 않은 C++ 코딩의 기술 (2) | 2023.05.12 |
[나는 리뷰어다] 혼자 공부하는 컴퓨터구조+운영체제 (4) | 2022.12.24 |
[나는리뷰어다] 어쩌다 데이터 분석 with 파이썬 (0) | 2022.10.28 |
[나는 리뷰어다] 코드로 인프라 관리하기 (2판) (0) | 2022.09.27 |