myjar***
2019-10-10

C++는 마스터하기 어렵기로 악명 높지만 풍부한 기능 덕분에 게임이나 상용 소프트웨어 애플리케이션을 개발하는 대표 언어로 자리매김했다. 숙련된 C++ 프로그래머조차 잘 모르는 고급 기능도 많이 있는데, C++17이 나온 지금이야말로 C++의 모든 기능을 살펴볼 절호의 기회다.
책을 받고 나서 책의 두께를 보고 오랜만에 C++ 프로그래밍 언어의 위대함을 느꼈다.
원서 제목은 Professional C++, 4th edition.
벌써 네번째 개정판으로, John Wiley & Sons와 Wrox 출판사의 원서를 번역한 책이다.
이 책은 C++을 사용하지만 C++의 고급 기능에 익숙하지 않거나, 고급 기능을 사용한 적이 거의 없는 사람, C++ 코딩에는 자신있지만 C++로 다자인하는 방법이나 바람직한 프로그래밍 스타일을 자세히 알고 싶은 사람, C++ 경험은 부족하지만 실전에 제대로 활용하는 방법을 배우고 싶은 사람 등 다양한 요구를 반영하여 독자의 C++ 실력을 전문가 수준으로 끌어올리고자 이 책을 집필했다고 한다.
이 책의 목적은 C++의 초급부터 중급 수준의 실력을 전문 C++ 프로그래머 수준으로 끌어올리는데 있다고 한다. 독자의 수준에 관계없이 프로그래밍 기초는 갖추고 있어야 이 책을 읽을 수 있다. 그렇지 않으면 이 책을 읽는 의미가 하나도 없다. 이 책에서는 코드의 품질과 프로그래밍 효율을 동시에 향상시킬 수 있는 C++ 프로그래밍 기법도 소개하고 있다. 특히 C++ 17에 새로 추가된 기능을 이 책 전반에 걸쳐 소개하고 있다.
이 책은 총 5부로 구성되어 있다.
1부 전문가를 향한 C++ 첫걸음
2부 전문가답게 C++ 소프트웨어 디자인하기
3부 전문가답게 C++ 코딩하기
4부 C++ 고급 기능 마스터하기
5부 C++ 소프트웨어 공학
1부는 C++ 초단기 속성 코스이다. 이미 알고있는 사람은 넘어가도 좋고, 다시 한번 리뷰 차원에서 읽는 것도 괜찮을 것 같다.
C++의 가장 기초적인 문법부터 코딩스타일까지 한번쯤은 읽어보면 좋은 내용들이다. 특히 코딩스타일은 개인마다 선호하는 것이 다르겠지만, 코딩을 할 때 일반적으로 지켜야할 것들을 다시한번 생각하게 한다.
2부에서는 본격적으로 C++ 전문가가 되기 위한 디자인 관련 내용들이다.
전문가다운 C++ 프로그램 디자인, 객체지향 디자인, 재사용을 고려한 디자인 등 디자인 패턴에 대한 내용들을 담고 있다. C++ 디자인에서 가장 핵심적인 원칙은 추상화(abstraction)과 재사용(reuse)이다. 이 두가지는 꽤 중요한 내용으로 이 책에서도 여러번 다루고 있다.
2부에서 디자인을 다뤘다면 3부에서는 전문가답게 C++를 다루는 기법을 소개한다.
C++에서 메모리 관리를 위한 바람직한 방법, 2부에서 다뤘던 재사용 가능한 클래스 작성법, 에러 핸들링, 연산자 오버로딩 등 C++ 코딩시 자주 마주하게 되는 내용들에 대해 전문가답게 어떻게 해야하는지 소개하고 있다. 이 책의 핵심부분이고 꽤 많은 내용이 담겨 있다. 하나하나 차근차근 학습하며 권장한다.
4부에서는 C++의 잘 알려지지 않은 기능을 소개하고, 고급 수준에 해당하는 기능을 사용하는 방법을 소개한다.
반복자, 템플릿, 멀티스레딩 등을 사용하는 방법이 자세히 설명되어 있다.
5부에서는 소프트웨어 공학에 대한 내용이다.
예전 내용부터 최신 내용까지 간단히 읽어볼 수 있고, 효율적인 코드 작성법, 테스트, 디버깅 등 하나의 프로그램을 만드는데 일련의 과정에 대한 내용을 담고 있다. 또 디자인 기법 및 디자인 패턴, 크로스 플랫폼 개발 방법 등 다양한 내용을 다루고 있다.
부록에서는 기술면접에 나올 법한 C++ 예상 질문을 장별로 소개하고, 다양한 참고 문헌을 부연 설명과 함께 제시하고 있다.
기술면접 관련해서 기억해야할 사항, 질문 유형 등의 내용을 파악하면 좋을 것 같다. 실제 면접을 보지 않더라도 C++ 프로그래머로서 알아야 하는 내용들이 많아서 관련 내용들을 꼭 익히면 좋을 것 같다.
C++에 대한 레퍼런스는 책에서 소개하는 다음 2개의 사이트에서 참고하면 좋다.
www.cppreference.com
www.cplusplus.com/reference/
그리고 이 책의 예제소스는 한빛미디어 홈페이지에서 확인할 수 있다.
http://www.hanbit.co.kr/media/books/book_view.html?p_code=B3215427289
이 책의 학습을 위해서 예제소스를 활용해도 좋지만 직접 코딩하면서 학습하는 방법을 추천한다.
이 책은 내용이 상당히 방대해서 책 두께도 꽤 두껍지만, 내용 자체가 C++의 매력을 한껏 느낄 수 있는 책이다.
이정도 내용을 알아야 C++ 전문가가 될 수 있을까라고 물어본다면 그렇다라고 조심스럽게 말해본다.
C++ 전문가가 되기 위해서 내용이 상당히 방대하지만 하나씩 차근차근 내 것으로 만들어가야겠다.
한빛출판사의 나는 리뷰어다 활동을 통해 도서를 제공받아 작성한 리뷰입니다
#전문가를위한C++ #C++ #한빛미디어 #나는리뷰어다