| 먼저 이 서평은 원서를 바탕으로 작성되었음을 알려드립니다. 그러나 거의 1년이라는 번역기간에 부응하듯, 번역서의 미리보기 PDF를 살펴보시면 이 시대 최고의 번역서 중 하나라고 말할 수 있을 거 같습니다. 유치하게 오타 이런 것의 문제가 아닙니다. (참고로 인포북 홈페이지에서 받으실 수 있습니다.) Alexandrescu의 생각과, 우리에게 전하고 싶었던 진정한 의미를 정말로 우리의 눈앞에 펼쳐보이고 있습니다. 실제로 1장을 보면 다중상속이 왜 해결책이 될 수가 없는지에 대해서 지금까지의 그 어떠한 책보다도 깊이 있고 명쾌하게 설명하며, 이 단점을 보완하기 위해 사용한 템플릿이 어떠한 장점과 단점을 가지고 있는지 설명합니다. 그리고 이 둘을 병합함으로써 최상의 도구가 될 수 있고, 그것을 2장부터 실제로 눈앞에 보여주기 시작합니다. 이 책을 구입하지 않더라도, 미리보기 PDF만으로도 지금 자신의 실력 여하에 따라 엄청난 컨셉의 전환을 가져올 수 도 있습니다. 하지만 이 책은 결코 누구나 볼 수 있는 책은 아닙니다. 그러니 반드시 먼저 PDF를 보시고 구입하시기 바랍니다. PDF를 보셨다면 다음과 같은 느낌을 받으실 수 있습니다. 1. Alexandrescu.. 논리의 세계를 이런 식으로 펼쳐나가고.. 이런 식으로 접근해 가는구나.. 하며 직접 저자와 대화를 할 수 있는 사람. 2. 이거 C++언어로만 내용을 기술하고 있다고 했는데.. 너무 생소하고 어렵다. 전자의 경우는 Policy class, code generation, design pattern, type list, template meta programming등 다양한 개념들이 하나로 합쳐지는 광경을 눈 앞에 보면서 마음껏 즐기시면 됩니다. 정말로 어떻게 이렇게 논리정연하게 자신의 생각을 글로 적을수 있는지.. 감동적입니다. 그리고 이 책에 단점이란 존재하지 않는다라는 느낌도 곧 느끼실 수 있습니다. 그러나 후자의 경우는, 선택할 수 있는 두 가지의 길이 존재합니다. 첫째는, Application Programmer역할로서 이 책을 받아드리는 방법입니다. 마치, STL을 만들어보는 방법을 배우는 것이 아닌, 쓰는 방법에만 열중하는 것입니다. 즉, 이 책의 모든 면을 보는 것이 아닌 Loki 라이브러리를 사용하는 방법에만 집중하시면 됩니다. 이럴 경우에는 이 책의 각 장 마지막에 존재하는 Quick Facts이 많은 도움이 될 수 있습니다. 그리고 Loki라이브러리 자체에서도 Sample이 같이 포함되어 있기 때문에 직접 디버깅하시면서 어떻게 돌아가는지 몸으로 파악하실 수 있습니다. Visual Studio VC++.Net 2003에서는 완벽한 호환성을 보여주며, Visual Studio VC++.Net 2002에서는 Rani Sharoni라는 분께서 포팅을 하셨기 때문에 사용에 문제가 없습니다. 하지만 Visual Studio VC++ 6.0에서는 문제가 발생합니다. 둘째는, 이 책이 기본이 되는 문법 지식과, 도움이 되는 책들을 먼저 읽어보는 것입니다. 이 책을 무리 없이 소화하기 위해서는 다음에 열거하는 개념들에 대해서 기본적으로 능숙하셔야 합니다. * Function Template -> Argument Deduction -> Overloading Function Template -> Nontype Function Template Parameter * Class Template -> Specialization of Class Template -> Partial Specialization -> Default Template Argument -> Nontype Class Template Parameter * Keyword typename * The .template Construct -> [Standard98 : 14.2장 - Names of template specializations 참조] * Template Template Parameter * Virtual Member Function과 Template의 연동시의 문제점. * Friend Template * Class Template와 Template Class와의 의미상의 차이점. 이와 같은 개념들에 대해서는 C++ Templates : The Complete Guide 에서 모두 얻으실 수 있으며, 이 책을 읽는데 가장 큰 도움을 드릴 수 있을 것 입니다. 이와 더불어 4장. Small-Object Allocation에 대해서는 EFFICIENT C++ : Performance Programming Techniques – Chapter 6,7 가 새로운 방향 또한 제시해 줄 것입니다. 그리고 5장. Generalized Functors에 대해서는 THE C++ STANDARD LIBRARY A TUTORIAL AND REFERENCE – Chapter 8 C++ Templates : The Complete Guide – Chapter 22. 들이 Functor의 개념과 활용방안에 대해서 보다 많은 예제를 제시해 줍니다. 그리고 6장, 8장, 9장, 11장에서 다루는 디자인 패턴과 관련된 이야기들은 Design Patterns -Elements of Reusable Object-Oriented Software Pattern Hatching -Design Patterns Applied 에서 보다 다양한 패턴과 실용적인 접근법을 익히실 수 있습니다. 어떻게 글을 쓰다 보니 서평보다는 이 책을 읽는 가이드 라인이 되어 버린 느낌도 지울 수 없지만, 이 책을 보다 많은 분들이 읽어, 보다 높은 수준이 되었으면 하는 소망이 간절합니다. PS> 이 책의 앞부분은 말도 난해하고, 약간은 많이 어려우실 수도 있습니다. 그러나 뒤로 갈수록 그 난이도는 줄어들게 됩니다. 조급하게 생각하지 마시고 천천히 여유를 가지고 읽어보시기 바랍니다. 결코.. 저의 매우 주관적인 견해지만 빠르게 보시면 얻는것도 그만큼 적어지는 책입니다. 많이 생각하시면서 읽으시면 그 많큼 많은것을 얻어 가실 수 있습니다. |
|
|
|
정말 괜찮은 책이다. 템플릿을 이용하는 방식을 다양하게 설명해놨는데
이해를 못해 몇번씩 반복해서 읽었지만 그만큼 재미있는 책이었던거 같다.
|
|
책 내용도 좋고 번역도 어느정도 깔끔합니다. 하지만 챕터별로 간간히 나타나는 오역들은 책을 더 어렵게 만드는군요. 원래 책이 어려운데 오역들로 인해서 더 어려워 지는 것 같습니다. 소스코드 오타도 수준급입니다.
이 책 사시기 전에 감안해야 할것들을 미리 말씀드리면,
1. 책 내용 자체가 중급에서 고급으로 넘어가는 수준입니다. 디자인 패턴, 템플릿, 각종 최신 C++ 기법들에 익숙하지 않다면 다음에 사보세요.
2. 간간히 나오는 오역들은 공부의 흐름을 끊어 놓습니다. 책 읽으시다가 "이게 무슨뜻일 까" 또는 "이거 좀 이상한데" 싶으시면 바로 원서를 보세요. 오역이 챕터별로 한 두개씩 나옵니다.
3. Loki 라이브러리 소스와 책을 비교하면서 보세요. 책보다 더 많은 걸 알 수 있습니다.
4. 이 책에 빠지지 마세요. 모든 훌륭한 도구들이 그렇듯이 템플릿은 양날의 칼입니다. 템플릿 디버깅 해보셨나요? 템플릿 부분 구체화가 가져다 주는 폐헤는요? 템플릿으로 라이브러리를 작성하면 blackbox 화가 되지 않는 다는 점은요? 템플릿은 만능이 아닙니다.
다음 판이 나올때는 오타 및 오역에 더 신경 써 주시면 아주 훌륭한 책이 될듯 합니다. |