윤성우의 열혈 C++ 프로그래밍 - 개정판
윤성우 지음 / 오렌지미디어 / 2010년 5월
평점 :
장바구니담기


  이 책은 윤성우 저자의 열혈강의 C++ 프로그래밍의 개정판이다. 이 책의 초판이였던 그 책은 나를 대학교에 들어와서 중학교 이후로 다시 컴퓨터 공부를 시작하게 만들어준 열정을 제공해준 책이다. 그 책이 더욱 내용이 보강되서 드디어 개정판이 나오게 되었다.
 

  초판도 이미 정독을 한번 하였기에 여러가지 방면으로 개정판에 대한 서평을 써보도록 하겠다.

  일단 이 책은 초판의 내용을 모두 가지고 있다. 즉 초판+@의 내용이 합쳐져서 새로운 개정판이 나왔다고 생각하면 된다. 이 책은 이미 C프로그래밍을 공부했던 사람을 대상으로 쓰여져서 기존 C언어와의 차이점을 중심으로 객체지향프로그래밍(OOP)에 대한 개념과 C++에서 제공하는 다양한 기능들을 설명한다.

  사실 다른 여타 C++ 책과 비교할 때 이 책은 상대적으로 얇은 편이다. 실제로 다른 여타 책에 나와있는 C언어와 겹치는 부분, 자료구조, 제공하는 클래스에 대한 자세한 설명 등이 빠져있다. 하지만 윤성우 저자의 책이 그렇듯이 책을 읽는 사람으로 하여금 기본기를 탄탄하게 쌓을 수 있도록 도와준다. 해외 원서, 번역서, 그리고 국내 서적을 많이 읽어왔지만, 저자가 쓴 책만큼 기초에 충실한 책은 찾아보기 힘들다.

  기초라고 하면 많은 사람들이 많은 것을 안가르친다고 더 많은 것을 다루는 책들을 찾을지도 모른다. 하지만 이 책의 목적은 앞으로 C++에 관하여 더 많은 것을 공부하고자 할 때 어려움이 없도록 도와줄 수 있는 최고의 책이라고 생각한다. 초판을 읽은 후 다양한 C++코드를 봐왔고, 여러가지 더욱 어려운 것을 다룬 책들을 봐왔지만, 초판에 나온 책의 지식만으로 공부하는데에 어려운 것이 없었다. 즉 앞으로 C++과 관련된 어떤 것을 공부해도 어려움이 없도록 내공을 쌓아주는 책이다.

  개정판을 처음부터 끝까지 정독을 한 느낌을 먼저 말해보도록 하겠다. 이 책은 마치 소설 같다. 읽는 사람으로 하여금 책에 빠져들게 만든다. 저자가 의도한 전체적인 책의 구성의 흐름 또한 뛰어나며, 저자의 책의 특징인 서술형 구어체로 읽는 사람으로 하여금 마치 하나의 소설책을 읽어나가는 기분이 들게 만든다. 그 덕분인지 요즘 바쁜 가운데에 짬짬이 시간을 내서 읽었는 데에도 불구하고 최근에 읽었던 책중에서 가장 빨리 그리고 재밌게 읽었던 책인 것 같다.

  현재 시중에 "소설같은 "으로 시작하는 서명의 프로그래밍 책 시리즈가 나오는 것으로 알고 있다. 그 이름에 가장 걸맞는 책은 사실 이 책이 아닐까 싶다.

  초판과 비교를 해볼 때, 가장 먼저 눈에 틔게 달라진 것은 

  1. 특정 부분들에 대한 설명이 더욱 상세해졌다는 것이다. 아마도 많은 사람들이 질문이 들어왔던 부분에 대해서 추가적인 설명을 덧붙인 것 같다.

  2. 내용적 측면도 보강되었다. 가장 눈에 틔는 것은 객체지향을 설명을 2가지 방식으로 접근하였다. 한가지 방법은 이전 초판에서 접근했던 방법이며, 새로운 방식은 과일장수와 구매자 두사람의 관계를 통해서 객체의 개념을 설명하는 방식을 취하였다. 후자의 방식은 저자의 JAVA책에서도 똑같이 볼 수 있다. 아마도 저자는 이 방식이 많은 사람들에게 이해를 돕는데 큰 역할을 했다고 생각한 것 같다. (개인적으로는 두가지 방식 모두 훌륭하다.)

  3. 초판에서 설명하지 않은 다양한 연산자 오버로딩에 대해서 설명하였다. 아마도 추가적인 연산자 오버로딩에 대한 설명을 한 이유는 초판에서 다루지 못한 "펑터"와 "스마트포인터"에 대한 설명을 하기 위함이 아닐까 조심스럽게 생각해본다.

  4. 템플릿에 대한 설명을 강하게 보강했다. 템플릿을 사용할 때 여러가지 케이스의 경우, 그리고 템플릿을 사용할 때 발생하는 여러가지 고민 점 등을 속시원하게 해결해주었다.

  5. C++에서 제공하는 4가지 형 변환자를 설명하였다. 사실 기존 C언어에서 제공하는 형변형자 말고 C++에서 새로운 형 변형자가 생겼다. 나 같은 경우도 새로운 형변환자가 있는 것을 알고 많이 봐왔지만, 굳이 새로운 것을 사용하는 것이 불편해서 거의 외면하고 있었던 것이 사실이다. 하지만 이 책의 뒷부분을 읽고나니 C++에서 제공하는 형변환자를 사용해야만 하는 이유들을 다시한번 생각할 수 있는 기회를 제공해 주었다.

  이외에 더욱 좋은 점을 뽑으라면, 같이 제공되는 강의 수강 기간이 길어졌다. 사실 이번에는 강의를 보지는 않았지만 처음 C++를 공부할 때는 강의를 보는 것이 도움이 될 때가 많다. 또한 조금 이해가 안가는 부분에 대해서는 강의를 듣다보면 책에서 서술하지 않았던 말들을 해주는 경우가 있어서 이해에 많은 도움이 된다.

  또한 이번 C++ 강의 같은 경우는 일주일에 2강이라는 원칙을 세워놓고 지금까지는 아주 정확하게 올라오고 있다. 언제 강의가 끝날지 예측이 가능하다는 것도 하나의 장점이라고 하겠다.

  그리고 초판이 나올 때랑은 달리 질문을 빠르게 해결해줄 수 있는 카페 (http://cafe.naver.com/cstudyjava)가 개설되어있다. 지금 빠른 시간안에 2000명을 돌파했으며, 질문에 대한 답변도 많은 사람들이 동참하여서 달아주기 때문에 빠르고 정확한 답변을 얻을 수 있다. 물론 카페안의 분위기도 매우 인간적이여서 너무 좋다 ^^

  여담이지만... TCP/IP책부터 나오던 이 책의 표지가 너무 아기자기해서 예쁘다. 개인적으로 참 맘에 든다.

  그래도 서평인데 칭찬만 할 수 없지는 않은가. 그래서 개인적으로 개정판에 느꼈던 아쉬운점을 말해보도록 하겠다. (사실 별로 없다..)

  초판에 없었던 연산자 오버로딩인 new와 delete부분을 설명할 때에 저자의 책에서 가장 강점을 느꼈던 왜 이것을 사용하느냐 부분이 조금 빠져있었다. 사실 저자의 책을 보면 모든 내용에 대한 왜? 라는 의문을 들게하고 해결하는 방식으로 나아간다. 또한 대표적인 예를 들어 이렇기 때문에 이 기능의 필요성이 있다. 라고 설명하기 때문에 머리에 오래 남게 된다. 아마도 이유가 있으리라 생각하지만 저 연산자의 경우만 유독 그부분이 빠져있고 그냥 있다고만 알고 넘어가자. 하는 부분이 조금 아쉬웠다. 사실 이 부분 빼면 단점이랄게 없다. 그만큼 훌륭한 책이다.

  이 책을 읽고 다른 두꺼운 C++ 개념서를 읽지 않아도 될만큼 전체적인 설명은 충분하다. 초판을 처음 읽을 때 객체지향 프로그래밍의 강력한 힘을 느끼면서 전율이 온몸에 나면서 책을 읽었던 기억이 난다... 여러분도 이 책을 읽으며 그런 기분을 느껴보았으면 좋겠다!


댓글(0) 먼댓글(0) 좋아요(22)
좋아요
북마크하기찜하기 thankstoThanksTo