손쉽고 편하게! 똑똑한 프로그래밍을 위한 C++ 템플릿
Dec 09, 2008데이비드 반데보드, 니콜라이 조슈티스 지음 | 한정애 옮김 |
552쪽 | 2008년 12월 16일 출간 예정 | ISBN 9788960770676 | 38,000원
똘이와 둥이는 같은 회사에 입사해 같은 부서에 배치를 받았습니다. 둘이 하는 일이 아주 똑같지는 않지만, 어느 회사나 그렇듯 얼추 비슷한 일을 같은 시간 안에 해내야 합니다.
입사 일주일쯤 지났군요. 똘이는 수많은 업무 중에 반복되는 패턴과 작업을 금세 파악해내고 자신만의 특정한 틀을 만들어냅니다. 틀을 만들어내느라 시간이 조금 걸리긴 했지만 앞으로 시간이 크게 줄어들 것을 생각하며 안도의 한숨을 내쉽니다. 한편 둥이는 업무에 바빠 바로바로 신속히 일을 처리하는 데 더욱 몰두합니다. 틀을 만드는 시간에 하나라도 빨리 처리하자며 "완벽하게"를 읖조립니다.
'하늘 아래 새로운 것은 없다'죠. 한달이 지나고, 1년, 몇 년 후, 누구의 효율이 더 높았을지는 불보듯 뻔한 일입니다. 열심히 공부하는 것 같은데, 늘 책상머리에 앉아있는데도 성적은 고만고만한 학생과 몇시간 책을 펴든 시간은 길지 않아 보이는데 늘 우등생 자리를 놓지 않는 학생. 뭔가 비법이 있는 게죠.
자신만의 비법. 틀. 패턴. 열심히 노력한다는 건 매우 훌륭한 일이지만, 질러 갈 수 있는 지름길을 눈앞에 뻔히 두고도 먼 비포장도로로 돌아가는 것은 정말 어리석은 짓이 아닐 수 없습니다. 하지만 비법을 만들어내고 익힌다는 것은 사실 말만 번지르르하지 쉬운 일이 아닙니다. 좌절하는 일도 생기고 눈물을 머금는 일도 생기지만 누군가 가이드를 해준다면 그 어려운 산을 넘는 데 조금은 힘이 되지 않겠습니까?
기초부터 고급까지, 완전무결한 C++ 템플릿 완벽 가이드
C++ 템플릿(template)은 ANSI C++ 표준에 포함된 C++의 언어적 기능입니다. C++ 프로그래밍에서 템플릿을 활용한 함수나 클래스, 라이브러리 등에서는 데이터 형에 무관하게 인자로서 건네받은 데이터 형에 따라 해당 기능을 오류없이 처리할 수 있습니다.
템플릿을 쓰면?
손쉽다.
개발이 빨라진다.
고민이 줄어든다.
재사용이 가능하다.
편해진다.
효율이 높다.
고로, 똑똑한 프로그래밍을 할 수 있다!!
그런데 왜 이처럼 좋은 템플릿을 두고도 사람들은 잘 활용하지 못하는 걸까요?
"템플릿을 쓰면 쉬워진다더라!"는 이야기는 숱하게 들어왔으니,
'한번 해볼까'하고 시작해봤는데....
STL(Standard Template Library)은 당최 뭥미? OTL...
템플릿 메타프로그래밍 공부하다 C++ 포기하고 자바로 되돌아갔다더라!!!
이 모두 C++ 템플릿과 관련해 전설처럼 들려온 이야기입니다. "템플릿"이라는 묘약을 손에 얻고자 강호의 프로그래머들이 눈물을 머금고 비법을 익히고자 노력했으나 모두 어느 시점에 가서 좌절하기에 이르죠.
템플릿은 어려워!! @#(&%*&%*(&*#$
하지만 과연 템플릿은 쓰잘데없고 복잡하기 만한 기능일까요?
아니면 "저 포도는 시고 맛도 없을 게 분명해"라고 버려둔 "여우의 신 포도"일까요?
이런 현실을 개탄해 데이비드 반데보그와 니콜라이 조슈티스가 분연히 의기 투합해 함께 책을 쓰기로 결정했다고 하죠. 데이비드는 C++ 템플릿 언어 구조를 상세히 설명하고 템플릿을 사용할 때 쓸 수 있는 주요 고급 프로그래밍 테크닉을 자세히 설명합니다. 한편 실용주의자 니콜라이는 프로그래머로서 자신의 경험을 되살려 템플릿의 실용적인 측면을 강조하고 직관적인 내용을 담아 책을 씁니다.
반짝반짝 빛나는 아마존 서평 별 5개★★★★★를 자랑스럽게 달고 있는 이 책 원서 C++ Templates: The Complete Guide 서평을 읽으시면 아시겠지만, 절대적이고도 상대적인 C++ 템플릿 참고서에 목말라했던 개발자들의 궁금증과 지적갈증을 모두 해소시켜 줍니다.
우리나라에 출간된 책들도 단지 STL 위주로 설명을 하거나 메타프로그래밍 개념을 다룬 고급서만 있었기에, 『똑똑한 프로그래밍을 위한 C++ 템플릿 가이드』처럼 기초부터 활용, 고급내용까지 두루 훑어주는 책 한 권이면 이제 여러분도 똑똑한 프로그래밍을 할 수 있는 고급 C++ 개발자로 쑥! 렙업이 가능할 거라 생각합니다.
이 책은 1부. 템플릿에 대한 기본 개념. 2부. 언어의 구체적인 부분을 제시하고 템프릿과 관련된 참고자료 제공. 3부. C++ 템플릿으로 제공되는 기본적인 설계 기술 설명. 4부. 기술을 활용하는 템플릿의 다양하고 대중적인 애플리케이션까지 C++ 템플릿의 모든 것을 설명합니다.
특히 실제로 활용가능한 크고 작은 예제를 모두 담아서, 실제로 어떻게 끌어다 쓰고 직접 만들 수 있는지, 어떤 부분을 수정하고 바꾸면 실전에서 활용가능한지를 세세히 알려주는 실용서의 역할까지 해줍니다.
C++에 템플릿의 개념을 도입한 지도 벌써 10년이 넘었다. 하지만 10년이 지나도록 이토록 황홀하고 복잡하며 강력한 C++ 기능인 템플릿에 대해 기초적인 개념을 충실히 설명하거나 고급 템플릿 기술을 설명한 문서는 거의 없었다. 템플릿을 설명한 문서 기근 현상을 해결하기 위해 우리들은 직접 템플릿에 관한 책을 쓰기로 마음먹었다(별로 겸손해보이진 않을지도 모르겠다).
- 저자 서문 중에서
역자 한정애님은 옮긴이의 말에서 더욱 간결하고 재미있게 이 책을 표현해주셨습니다. 한번 읽어보세요!
C++는 처음 배우는 사람들을 골탕 먹이기 위해 프로그래밍 언어 개발자들이 일부러 어렵게 만들었다는 음모론이 있다. 그 대표적인 예로 거론되는 것이 바로 템플릿이다. 템플릿으로 구현한 코드를 보고 있으면 프로그래밍 언어를 잘 안다고 자부하는 사람도 정신이 아득해지는 경험을 하곤 한다. 특수 기호로 가득한 코드를 따라가다 보면 출구를 알 수 없는 미로 속을 헤매는 듯한 답답함을 느끼기도 한다.
이 책은 바로 그 이상하다는 C++ 템플릿을 다룬다. 이 책에서 다루는 템플릿들은 딱 보기에도 어렵고 복잡할 뿐만 아니라 컴파일이라도 제대로 될지 의심스러운 C++ 문법들로 이뤄져 있다. 하지만 이 책의 친절한 설명을 따라 템플릿을 왜 만들었고 그 구조는 어떻게 되는지 차근차근 익혀나가다 보면 이상한 생김새가 친숙하게 느껴지기 시작할 것이다.
또한 C++ 템플릿이라는 게 생각보다 그리 어렵지만은 않으며 매우 편리하다는 사실도 알게 될 것이다. 특히 C++ 표준에 포함돼 있기 때문에 대부분의 컴파일러에서 바로 사용할 수 있는 STL(표준 템플릿 라이브러리)을 쓴다면 이제까지 그때그때 임기응변식으로 직접 작성해야 했던 오류 투성이 자료 구조(스택, 큐, 우선순위 큐 등)대신 누군가가 템플릿으로 만들어 놓은 깔끔한 자료 구조나 알고리즘을 손쉽게 가져다 쓸 수 있어 템플릿의 편리함에 감탄하게 될 것이다.
이 책의 원서는 2002년에 출판됐지만 내용이 구닥다리라고 생각하면 오산이다. 템플릿 표준을 실제로 구현하는 것은 컴파일러 개발사의 몫이기 때문에 템플릿의 일부 고급 기능들은 최근에서야 제대로 지원되고 있다. 따라서 이 책을 읽고 템플릿을 실제 업무에 적용하기를 원한다면 가장 최신 버전의 컴파일러를 사용해야 할 것이다. 그만큼 이 책에서 다루는 내용은 현대적이며 C++ 프로그래밍에서 가장 높은 수준의 지식을 다루고 있다.
독자들이 이 책의 마지막 페이지를 덮었을 때 C++ 템플릿이 생각보다 편리하고 걱정한 것만큼 어렵지는 않다고 느꼈으면 한다. 물론, 쉽지는 않다.
『똑똑한 프로그래밍을 위한 C++ 템플릿 가이드』는 YES24, 교보문고, 강컴, 인터파크, 알라딘에서 예약판매중입니다. 여러분의 행복한 C++ 프로그래밍을 위해! 이제 C++의 세계에 폭 빠져 보세요~ ^^/
크리에이티브 커먼즈 라이센스 에이콘출판사에 의해 창작된 이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
우와~ 완전 기대 되요!!
비인기 언어 사용자는 서러워요 ㅠㅠ
저도 C++은 잘 못해서...
항상 가려운 부분인데..
기대가 됩니다..
템플릿 프로그래밍 어려워서 활용 못했는데 에이콘 덕분에 아주 많은 도움을 얻게 되었네요. 기대됩니다 ^^/
C++ 손뗀지 오래되서 기억이 하나도 안나요 -_-;;;
템플릿하면 기억이 너무나 안좋아서 -_-;;
과제를 템플릿사용해서 많이 했다만 오타만 내도 컴파일러서 100개이상의 에러를 뿜어내서 제일 싫어한답니다만, 이 책 기대는 되군요.
(이제 JAVA로만 플젝해서 이 책 펼칠 날이 있을려나? ㅠㅠ)
호야지기님, 좋은 책이라지요. 기대해주세요~
레몬에이드님은 무슨 언어를 쓰시길래요? -0-;;
dawnsea님, 시원하게 긁어 드릴게요!
min님, 역시나 이 책도 "에이콘"스러운 책이었군요.
프리버즈님, 다시 고고싱.
StudioEgo님도 싫다고 계속 버려둘 수는 없으니 다시 한번 옛 추억을 되살리며~ :)
에이콘 책나오는 거보면 다 하고 싶어진다는... ^^; C++ 임베디드...제가 욕심이 많은 걸까요? 에이콘 책 넘 좋아요 (^^)/