한빛미디어의 11번째 도서 리뷰이다.
제목은 [이것이 C++이다]
부제로는 [강의 현장을 그대로 옮긴 C++ 입문서]이다.
강의현장에서 쓰기 좋은 구성을 가진 책이다.
3월 이벤트였는데... 발표가 늦게 나고, 개인적인 사정으로 기한날짜에 임박하여 작성을 하다보니 이제야 이렇게 키보드 앞에 앉았다.
때마침 C++에 대한 필요가 요구되던 때에, 이에 맞추어 이에 대한 책을 받게되니 너무도 실제적인 리딩을 하게 되었고,
실제 받은 느낌에 근거하여 리뷰를 적을 수 있을것 같다.
개인적으로 건담은 잘 모르지만, 건담을 표지로 한 이 책이 인상적이다.
C++의 특징을 담아낸 느낌이랄까.
복잡한 프로그래밍을 대변하듯이, 프라모델의 대표주자 건담이 이 자리를 차지하고 있다.
즉, 복잡한 프라모델도 구성요소들을 설명서대로 차근차근 조립하다보면 하나가 완성되듯이,
각 객체가 프로퍼티와 메소드의 조합으로 로봇조립하듯 차근차근 개발하다보면, 어느덧 프로그램은 완성되어있다는 느낌이다.
특히 이것은 C와 비교할 때, 건담같은 조립을 하는 프로그래밍에 비춰보면 너무도 유용하게 쓰일 부분이라는 것이다.
이 책은 다른책들과는 다르게 좀 시간이 된 책이다. 2016년 2월 1일에 초판 1쵀 발행, 초판 3쇄는 2017년 7월 31일이다.
반년이 더 지난 책이지만, 그래서 아쉽게도 비주얼 스튜디오 2015나 2017이 아닌 2013을 반영한 책이지만,
그래도 기본에 충실하다. 그리고 많은 것이 바뀌었다던 C++11에 맞추어 기록되었다.
구성에 대한 간단한 요약 설명이다.
실제 내용을 제외하고 위에 그림의 설명처럼 실습과제, 연습문제, 인터넷 강의 등으로 충분히 자신을 점검하고 추가적인 학습이 가능하도록 배려한 것이 돋보인다.
구성은 다음과 같다.
파트와 챕터. 챕터 몇개를 하나의 파트로 묶고, 총 4개의 파트로 구성되어 있는 구조이다.(총 12개의 챕터)
PART 01. C에서 C++로 문법 전환하기
CHAPTER 01. C와는 다른 C++
CHAPTER 02. C++함수와 네임스페이스
PART 02. 객체지향 프로그래밍
CHAPTER 03. 클래스
CHAPTER 04. 복사 생성자와 임시 객체
CHAPTER 05. 연산자 다중 정의
PART 03. 객체의 관계 규정과 설계
CHAPTER 06. 상속 기본
CHAPTER 07. 상속 심화
CHAPTER 08. 수평적 관계와 집합 관계
PART 04. 템플릿과 예외처리 그리고 이후에 알아야 할 것
CHAPTER 09. 템플릿
CHAPTER 10. 예외처리
CHAPTER 11. 객체지향 주소록
CHAPTER 12. 못 다한 이야기와 앞으로 해야 할 것
이렇게 구성되어 있다.
전체적인 느낌은, 절차지향 프로그래밍으로서의 C를 탈피하고, 객체지향 프로그래밍으로서의 C++을 인식하고 그에 맞는 사고를 하여 개발하게 하려는 저자의 의도가 아주 충실히 보인다.
챕터의 서두이다.
해당 챕터에서 추구하고자 하는 바를 편한한 문체로 왼쪽에 적어두었다.
이 추구하는 바는 의문형으로 남겨두는 분위기이기 때문에, 챕터에 진입시 내가 얻어야 할것에 대한 생각을 할 수 있도록 도와준다.
챕터 1에서는 C의 사고를 갖고 있는 사람이 C++로 개발한다고 하였을 때, C의 사고 습관을 가지고 그대로 들어가지 않도록 하기 위해 C++로 만들어진 자신만의 이유와, C에서 경험하지 못한 C++의 장점 등에 대해서 서술하고 시작한다.
또한, 왼쪽에는 이 장의 학습 흐름을 명시함으로써, 대략 어떤 키워드로 흘러가겠구나 느낌도 오면서, 예습의 느낌도 준다.
즉, C++을 배울 수 밖에 없는 당위성을 명시한다. 물론 다른 챕터도 비슷하다. 각 챕터에서 주장하는 바에 대해 왜 이 내용으로 챕터를 구성했는지 한번쯤 생각하게 만든다.
제대로 학습하고자 했기 때문에, 예제코드를 대부분 직접 쳐서 컴파일해보고 확인하였다.
각 예제코드는 친절하게도, 파일이름과 타이틀, 그리고 실제 라인을 포함한 코드가 나와있다.
실행에 대한 테스트도 대부분 잘 진행했는지, 따라만 작성해도 실행가능한 예제코드가 금방 나온다.
역시 기본서는 실제로 코드를 작성하면서 친해져야 하는데, 이 책이 딱 그런 가이드 역할을 잘 해준다고 생각한다.
이것은 r-value에 대한 내용이다.
C++11에서 새로 등장한 문법이다. 사실 내용을 봐도 무슨 내용인지 잘 몰라서 구글 검색을 하기는 했지만, 자칫 올드한 C++을 적어놓았다면 지나치고 넘어갈 수 있는 내용인데, 이것을 잘 기록해두었기 때문에, r-value라는게 있다는 것을 잘 알게 되었다.
어차피 개발이란 실제로 파악은 직접 하더라도 이러한 것들이 있는지 사실을 먼저 접하는게 필요하다고 생각한다.
이 책은 여기서 제시하는 로드맵의 중간 단계이다.
C언어를 학습한 독자가, 이어서 C++을 학습할 수 있도록 돕는것이며,
C++학습 이후에는 STL을 공부함으로 더 빠져들 수 있도록 한다.
C++을 처음 접하거나, 나처럼 오랫만에 C++을 되살리는 측면에서 공부하는 사람 모두 도움이 된다.
마지막으로 이 책의 장점과 아쉬운 점을 정리하면 다음과 같다.
먼저 장점이다.
- 대학교재로 쓰기 좋을 정도로 짜임새 있는 구성이다.(챕터도 12챕터로 한학기 분량이 충분히 나온다.)
- C++을 C++답게 쓸 수 있도록 도움을 준다.
- 각 예제코드가 오류 없이 깔끔하게 동작한다.
- 실습과제를 통해 다시 내용을 상기할 수 있도록 돕는다.
- 인터넷 강의 및 카페 등 철저한 독자의 AS를 받을 수 있도록 노력하였다.
그리고 아쉬운 점이다.
- Visual Studio 2013기준이기 때문에, 최신 버전인 Visual Studio 2017을 사용하는 사람과 아주 조금 메뉴가 다른 부분들이 있다.
- 현재 나와있는 C++표준 최신인 C++17을 반영하지 않고, C++11 기준이므로, 최신 기능을 이용하는데에는 어렵다.
- 여러 예제코드들을 한 솔루션 소스 내에서 작업하기 위해 어떻게 해야하는지 가이드가 부족하다.
(당장 활용을 위해서 나는 main함수의 이름을 수정해야만 했다.)
- 524페이지의 다소 적은(?) 분량으로 많은 내용을 소화하려다보니 어려운 내용이라도 2~3페이지에 할당하여 설명한 것이 많다.
이해하기엔 다소 부족한 분량으로 여겨진다.
이 책을 평가해보면 다음과 같다.
가격: 9 / 10
내용: 8 / 10
디자인: 8 / 10
구성: 10 / 10
저자: 최호성
대상자: C++을 처음 접하거나, 오랫만에 C++을 공부하는 사람(숙련자 제외, 다만 C++11 이전 개발자는 C++11의 특성 파악에 도움이 된다)
가격: 25,000원
전체 페이지: 524페이지
이 리뷰는 "한빛미디어"를 통해 도서를 제공받아 작성하였습니다.
'[Review] > Book' 카테고리의 다른 글
[도서 리뷰] 아무것도 모르고 시작하는 인공지능 첫걸음 (0) | 2018.07.14 |
---|---|
[도서 리뷰] Java 9 모듈 프로그래밍 (0) | 2018.05.25 |
[도서 리뷰] 코딩셰프의 3분 딥러닝, 케라스맛 (0) | 2018.02.15 |
[도서 리뷰] IT 트렌드 스페셜 리포트 2018 (0) | 2017.12.14 |
[도서 리뷰] RxJava 프로그래밍 (0) | 2017.11.28 |
댓글