C++ 코딩의 정석 :: 2006/07/25 04:28



이 책은 C++ 프로그램을 작성할때에 고려해야 할 101가지 사항에 관해서 다루고 있다. 처음에 목차를 쭈욱 훑어보다 100번에서 보는 것을 보고는 잠시 당황했었다. 왜 101가지지? 하는 생각을 2.3초간 했는데 돌아와 보니 목차가 0번에서 시작하고 있었다. 저자의 센스가 느껴지는 부분이었다.

101가지 모두 주옥같은 규칙들이라 뺄 것이 없을 것 처럼 느껴졌다. 단지 몇 가지 규칙들은 설명이 다소 추상적이라 몇 년간 개발을 해본 사람이라면 충분히 공감할 만 하지만, 이제 막 C++ 문법을 익힌 사람이 본다면 다소 당황할 수 있을 것 같았다. 각 챕터가 그렇게 길지 않은 내용으로 간략하게 규칙에 대해서 핵심만 설명하고 있다. 보통 3~4페이지를 넘지 않는다. 따라서 압축되어 있기 때문에 고급 독자가 아니라면 다소 내용을 이해하는데 무리가 있을것 같기도 했다. 하지만 초급 수준의 C++에 대한 지식을 가지고 있더라고 꼭 한번 읽어 보기를 권해주고 싶다. 왜냐하면 이 책에서 다루고 있는 내용들은 C++에 대한 것들이지만 코딩 전반에 관한 것들도 많기 때문이다. 또한 각 주제에 대한 두리뭉실한 지식을 미리 알고 있는 것도 나중에 그러한 문제를 만났을때 해결책을 더 쉽게 찾을 수 있기 때문에 도움이 될 것 같다.

개인적으로 도움이 많이 됐던 부분은 $47 - $56까지 나오는 생성과 파괴 그리고 복사 부분과 $68 - $75까지 나오는 오류와 예외의 처리 부분에 관한 것이었다. 두 부분다 오랜 시간 C++을 쓰면서도 별로 명확하게 생각하지 않고 있었던 문제에 대해서 정확하게 집어주고 있었다.

이 책의 번역은 별로 흠 잡을 곳도 없었지만, 그렇다고 S급 번역은 아니었다. 몇몇 이상한 부분이 눈에 띄었는데 오해의 소지가 클 만한 부분과 이해가 잘 안될법한 부분으로 아래와 같은 문장이 있었다.

p50. 데이터 멤버를 public으로 선언하는 것이
=> 위 문장에서 public은 아무래도 오타인 것 같다. 문맥상 private이나 protected가 나와야 한다. $11은 정보 보호에 관해서 이야기 하는데 거기서 public이 정보 숨김의 대표적인 예라는 것은 이상하다. C++에 익숙하지 않은 개발자가 본다면 오해하기 쉬운 부분이다.

p224. 예를 들어 malloc이 작동하여 창이 만들어지고 스레드가 시작되었는지 확실히 하기 위해 assert를 사용하는 것은 좋은 방법이 아니다.
=> 위 문장은 번역이 잘못된 것 같다. 말 그대로 이해하려고 하면 백날 곱씹어도 이해할 수 없다. 원문은 아마도 malloc이 정상 동작하는지, 창이 제대로 만들어 졌는지, 스레드가 시작되었는지 등의 리턴 값을 체크하기 위해서 assert를 사용해서는 안된다. 정도가 될 것 같다. 분리된 문장을 역자가 한 문장으로 합치면서 이상해 진 것 같다.

번역을 떠난 책의 나머지 품질들은 만족할 만 했다. 표지와 알장, 편집 상태 모두 괜찮았다. 사실 한번에 읽고 모든 내용을 몸에 익히기에는 무리가 있다고 느껴진다. 책장에 꼽아두고 종종 생각날때 마다 익히면서 하나씩 습관이 되도록 만드는 것이 중요한 것 같다. 프로그래밍에 있어 좋은 습관을 가진다는 것은 곧 좋은 품질의 소프트웨어를 만들 수 있다는 것과 같은 의미를 가지기 때문이다.

네이버에 북마크 다음에 북마크 마가린 바르기 HanRSS에 북마크하기 이올린에 북마크하기 News2.0에 투고하기 del.icio.us에 북마크하기 Digg에 번역해 투고하기 dzone에 번역해 투고하기 붐바
이올린에 북마크하기(0) 이올린에 추천하기(0)
스폰서
글타래

Trackback Address :: http://www.jiniya.net/tt/trackback/263
Name
Password

Homepage
Secret