본문 바로가기

Book Review

[책] 전문가를 위한 C++

 

 

 

 

대부분의 텐서플로 내부 연산은 C++로 구현되어 있고, 겉으로는 Python 으로 된 것 처럼 보이지만 내부적으로는 핵심 연산을 C++ 로 처리하는 경우가 대다수이다. C++ 자체가 Python 보다는 기능이 풍부하고 효율성이 높기 때문에 Python 을 쓰다가 빠른 처리를 요하는 문제에서는 C++ 로 구현하여 Python에 내장하기도 한다. 

 

C++은 엔터프라이즈급 객체지향 프로그램을 위한 빠르고 강력한 업계 표준 언어라고 한다. 하지만 C++ 기능이 무진장 많은 것에 비해 대부분의 C++ 프로그래머들은 고급 기능들을 다 알지 못한다는 한계가 있다. 책 두께부터 압권인 이 "전문가를 위한 C++" 책은 내가 본 C++ 책들중에서 가장 두껍고, 가장 무겁지만 이러한 한계를 극복할 수 있게 해주는 책이다. C++17 규격을 기반으로 소개해놓았으며, C++의 처음부터 끝까지 독학으로 모든걸 마스터하고자 하는 분들에게 추천해주고싶은 책이다.

 

책을 먼저 펴보면 정말 기초인 "gcc" 부터 시작해서 "main()" 함수 작성법, "주석 처리" 등 기초적인 것 부터 정말 자세히 수록해놓은 책이다. 당연하겠지만 책이 두꺼운만큼 알찬 내용이 정말 많고, 프로그래밍 기본이 있는 사람들 중 C++을 처음 독학하고자 하는 사람들도 쉽게 알 수 있도록 설명해놓았다. 기존 C++ 언어를 이용하여 프로그래밍을 하는 사람들도 도움이 될 수 있게 다양하고, 고급진 기능들을 자세하게 설명해주고 있어서 백과사전 같은 느낌이 든다. 

 

책의 목차는 다음과 같다.

 

  • 전문가를 향한 C++ 첫걸음
  • 전문가답게 C++ 소프트웨어 디자인하기
  • 전문가답게 C++ 코딩하기
  • C++ 고급 기능 마스터하기
  • C++ 소프트웨어 공학

 

책이 디자인패턴 뿐만 아니라 소프트웨어 공학 기법 까지 담고 있어서 더욱 더 알찬 책이다. 소프트웨어공학 수업에서 들었던 폭포수모델, 애자일 방법론 이러한 개념까지 설명하고 크로스 플랫폼과 크로스 언어 어플리케이션 개발 방법까지 알려주고 있어서 책을 1쪽부터 1496쪽까지 다 읽으면 정말 C++ 독파할 수 있을 것 같다.

 

필자도 요즘 C++ 전선에 다시 뛰어들었기 때문에 기초부터 다시 볼 예정인데, 이만한 책이 없는 것 같다. 두꺼워서 들고다닐 수는 없겠지만 집에 가져다 놓고 짬날때마다 보기 시작해서 내년 2월 까지는 다 볼 수 있지 않을까...싶다. 클래스 템플릿을 정의하고 사용하는 것에 익숙하지 않아서 그 부분을 중점적으로 공부할거고, 컨테이너에서 vector 와 같은 순차컨테이너를 사용하는 방법, 그리고 멀티스레드 프로그래밍까지 집중적으로 볼 것이다. 잠깐 내용을 훑어봤는데 너무 자세히 설명이 잘 나와있어서 무리없이 배울 수 있을 것 같다.