빌노트의 노트

Accelerated C++ 책 리뷰 본문

IT책

Accelerated C++ 책 리뷰

빌노트 2019.01.31 20:45

Accelerated C++

게임을 만들거나 MFC로 윈도우 프로그래밍을 할 때 C++을 많이 사용했습니다. 최근에는 다른 옵션들이 많아서 그만큼 자주 사용되지는 않지만 성능을 중요시 여기는 프로그램에는 C언어나 C++만한 것이 없다고 생각합니다. 개인적으로도 가장 좋아하는 언어지만 사실 이 C++이라는 것이 다른 프로그래밍 언어보다 조금 어렵습니다. 예전에도 그랬지만 C++을 빠르게 학습하기 위해서는 ‘Accelerated C++’이라는 책이 괜찮은 것 같습니다. 이번에 이 책이 새로 번역되어 나왔습니다. 반가운 마음에 다시 한번 읽어봤네요.

‘Accelerated C++’의 가장 큰 장점은 C언어를 몰라도 된다는 것입니다. C언어에서 사용하는 것을 빼고, 순수 C++언어만 가지고 설명을 합니다. 다른 언어를 사용해본 경험이 있다면 더 편하게 이 책을 읽을 수 있겠지만, 처음 프로그래밍을 하는 사람이라도 충분히 도전해볼 수 있는 책이라고 생각합니다. 그래도 이 책이 비전공자를 위해 만든 프로그래밍 입문서는 아니기 때문에 약간의 난이도는 있습니다. 통합 개발환경을 설치하고 컴파일, 디버깅, 실행하는 방법은 인터넷 검색을 해서 직접 알아봐야 합니다.

‘Accelerated C++’은 프로그래밍 언어 문법을 설명하기 위해 예시를 만드는 책이 아닙니다. 프로그래밍을 진행하면서 필요한 C++의 기능을 사용하는 책입니다. 그래서 그런지 C++에서 정말 필요한 내용만 반복해서 설명하고 있습니다. 예전 1000페이지가 넘어가는 'C++ 기초 플러스'로 C++ 공부를 시작한 저로서는 반가운 구성이 아닐 수 없습니다. 물론 기초 플러스 책도 레퍼런스용으로는 좋습니다만, 입문자가 감당하기에는 너무 두껍고 뭐가 중요한지 잘 모르고 공부할 수 있다는 단점이 있다는 것입니다.


챕터 0부터 챕터 7까지는 C++언어의 사용에 중점을 둡니다. C++의 기본 기능과 표준 라이브러리를 활용하여 프로그래밍을 합니다. 기본적으로 제공하는 기능을 사용함으로서 프로그래밍이 쉽다는 인상을 심겨주려는 구성인 것 같네요. 예전에는 STL과 같은 내용은 C++기초를 공부하고 난 후 나중에 배우는 내용이었는데 이 책에서는 바로 처음부터 사용을 해버리네요. 이렇게 C++을 사용하여 프로그래밍하는 방법을 익힌 후 챕터 8부터 직접 이러한 기능을 만드는 것을 배웁니다.


챕터8 ‘제네릭 함수’, 챕터9 ‘새로운 타입 정의’부터 나만의 클래스를 정의하는 방법을 설명합니다. 그리고 무시무시한 포인터라는 것도 챕터10에서야 등장합니다. (예전에는 이 포인터 때문에 프로그래밍을 포기하는 학생들이 많았습니다.) 그래서 챕터8 부터는 조금 난이도가 있다고 생각할 수 있습니다. 책 앞부분에서 C++ 프로그래밍에 흥미를 느꼈다면 하나씩 정복을 할 수 있을 것입니다. 아니라면 그냥 책을 접으세요. 모두가 코딩에 소질이 있는 것이 아니기 때문에 재미가 없다면 하루라도 빨리 접는 것이 현명합니다. 최근 코딩이 유행한다고 억지로 하는 것은 무의미하다고 생각합니다. 사실 C++이 조금 어렵긴 합니다. 코딩에 미련이 남는다면, 파이썬으로 새로 도전해보세요. 이것도 아니면 그만.


각 챕터마다 마지막 부분에 핵심정리연습문제가 있어서 배운 내용을 정리하기에 좋습니다. 시간이 있다면 연습문제를 꼭 풀어보세요. (쉽게 배운 내용은 머리에서 빨리 날아갑니다. 시간을 투자한 만큼 효과가 있어요.)


부록에는 ‘C++ 세부 사항’과 ‘라이브러리 요약’이 있습니다. C++에 관한 중요한 내용이 잘 정리되어 있어서 개발을 하다가 모르게 있으면 자주 참조할 것 같네요.


Accelerated C++

자주 사용하는 기능을 중심으로 C++언어를 제대로 배우고 싶은 분에게 ‘Accelerated C++’을 추천합니다. 500페이지에 C++에 대한 많은 내용을 담고 있어서 조금 딱딱하고 불친절하게 느낄 수도 있겠지만 C++을 정말 제대로 사용하기 위해서는 필요한 내용이라고 생각합니다. 참고로 이 책에는 GUI 프로그래밍, 네트워크 프로그래밍에 대한 내용은 없습니다. 'Accelerated C++'은 C++의 시작이기 때문에 이것을 출발점으로 해서 다양한 분야의 프로그래밍을 해볼 수 있을 것입니다.



0 Comments
댓글쓰기 폼