I   회사소개  I  사이트맵  I  도움말
인기검색어
  ID저장
 
회원가입 I 아이디/비밀번호찾기
ㆍOS / 하드웨어 / 서버군
ㆍOA / 오피스 / 전자출판
ㆍ아이폰 / 안드로이드
ㆍ디지털 포토그래피
ㆍ그래픽 / 홈페이지
ㆍ인터넷 프로그래밍
ㆍ일반프로그래밍
ㆍ게임프로그래밍
ㆍSNS / E-Business
ㆍ데이터베이스
ㆍ기 타
ㆍ길라잡이
ㆍ실력이 탐나는
ㆍ회사 실무에 힘을 주는
ㆍ예제가 가득한
ㆍ그림 한 장으로 보는
ㆍ디지털 포토그라피
ㆍ그래픽/홈페이지
페이스북 블로그 네이버포스트
관련분류 : 일반 프로그래밍 / C/C++/STL
제네릭 프로그래밍과 디자인 패턴을 적용한 Modern C++ Design - 절판
크게보기 l 차례보기
ㆍ저 자 Andrei Alexandrescu
ㆍ역 자 이기형 , 곽용재
ㆍ구 분 번역서
ㆍ발행일 2003년 07월 30일
ㆍ정 가 20,000원
ㆍ페이지 500 페이지
ㆍISBN 89-8054-517-7
ㆍ난이도 중급.상급
ㆍ출판사 인포북
모던 C++ 디자인은 그야말로 탁월한 책이다. 이 책은 '제네릭 패턴'이나 '패턴 템플릿'들을 이용하여 강력하고도 확장성 있는 디자인을 만들어내는 방법을 제시해 준다. 이것은 템플릿과 패턴을 결합하는 전혀 새로운 접근법이다. 그 동안은 불가능하다고 여겨져 왔지만, 이제 이 책으로 이러한 방법들이 가능해 졌다! 만일 여러분의 직업이 C++를 이용하여 디자인을 하거나 코딩을 하는 분야의 것이라면, 꼭 이 책을 읽어보기 바란다. 강추!

- Herb Sutter

C++에 대해 지금까지 논의된 것 외에 더 남아있는 내용이 있을까? 물론 그렇다. 그것도 아주 많이... 이제 이 책을 통해 그것이 드러난다.

- John Vlissides의 추천의 말에서 발췌

모던 C++ 디자인을 통해 Andrei Alexandrescu는 C++ 프로그래머들에게 새로운 지평을 열어 주었다. 극도로 독창적인 프로그래밍 기교를 펼쳐가며, Alexandrescu는 디자인 패턴과 제네릭 프로그래밍, 그리고 C++를 같이 엮는 매우 예리한 접근법을 제시하고 있다. 많은 프로그래머들이 이러한 접근법을 통해 명확하고 유연하면서도 재사용성이 뛰어난 코딩을 할 수 있게 될 것이다.

이 책은 C++를 통하여 제네릭 컴포넌트(사람보다는 컴파일러가 소화해야 마땅한 판박이 코드를 생성해 주는 재사용 가능한 디자인 템플릿)의 개념을 소개하고 있다. 제네릭 컴포넌트는 더 쉽고 자연스럽게 디자인을 애플리케이션 코드로 풀어나가게 해 주며, 본래의 디자인 의도를 보다 잘 반영하는 코드를 작성할 수 있도록 도와준다. 또한, 최소한의 코드 수정만으로 디자인 스트럭처를 다시 사용하는 것도 이 제네릭 컴포넌트를 통해 가능해진다.

저자가 기술하고 있는 이 독특한 C++의 특징이나 기법들은 실제 어플리케이션을 작성하는 데에 상업적으로 쓰일 수 있는 제네릭 컴포넌트를 구현하는 데에 적용될 수 있다. 이 책에서는 C++ 개발자가 매일 매일의 업무중에 반복적으로 접하게 되는 이슈들에 대해 깊이 있게 논의되고 있으며, 제네릭한 방법으로 이런 문제들의 해법을 구현하고 있다. 여기서 제네릭한 방법이란 다음을 포함한다.

  • 유연성을 위한 단위전략 기반의 디자인(Policy-based design)
  • 템플릿 코드의 부분적 특화 (partial template specialization)
  • 자료형을 다루는 강력한 기법인 타입리스트(Typelist)
  • 비지터(Visitor), 싱글톤(Singleton), 커맨드(Command), 그리고 팩토리(Factory)와 같은 각종 패턴
  • 멀티 메소드 엔진

    이 책은 이 같은 각각의 제네릭 컴포넌트들에 대해, 기본적인 문제와 디자인 사양을 제시해 주며, 결과적으로는 제네릭한 해법을 구현해 주고 있다.

    더불어, 독자들은 웹 페이지 "http://www.awl.com/cseng/titles/0-201-70431-5"를 통하여 이 책에서 쓰이고 있는 C++ 라이브러리 Loki를 무료로 다운로드 받아 볼 수 있다. 이 책의 저자가 직접 작성한 라이브러리 Loki는, 이제까지 다른 어떤 C++ 프로젝트에서도 얻을 수 없었던,확장된 기능들을 제공한다.

    Andrei Alexandrescu는 RealNetworks 사의 개발 매니저이다. 그는 C/C++ User Journal의 컬럼니스트이자, C++ Report의 컬럼니스트이며, 그의 혁신적인 성과는 그에게 이 분야에서의 선구자라는 명성을 가져다주었다. Andrei의 기술적 관심사는 프로그래밍 언어와 소프트웨어 재활용, 그리고 데이터 압축에 관한 것이다.
  •  
    프로그램을 작성한다는 것은 달리 말하면 '논리의 성'을 쌓는 작업이라고 말할 수 있습니다. 그리고 그 성의 재료가 되는 '논리'라는 것은 당연히 전적으로 프로그래머의 역량에 따라 질의 높음과 낮음이 구분될 수 있을 것입니다. 또한 언어가 발전되어 감에 따라 그 논리의 체계 역시 점점 더 발전되어 온 것이 사실입니다. 하지만 그러한 발전에도 불구하고, 저는 그저 오래된 벽돌을 가지고 부실한 성을 쌓아 왔던 것은 아닌가 하는 자성의 목소리를 떨쳐 버릴 수 없었습니다.

    그러던 중 {Modern C++ Design}은 저에게 그야말로 새롭고 신선한 충격을 안겨 주었습니다. 물론, 여기에서 사용하고 있는 제네릭 프로그래밍이나 여러 가지 디자인 패턴들이 완전히 새로운 개념인 것은 아닙니다. 하지만, 저자 Andrei Alexandrescu가 쌓아 놓은 논리의 체계는 그동안 접해왔던 그 어떤 코드들보다 더 제네릭하며, 편리하고, 또 튼튼합니다. 게다가, 그가 제공하고 있는 Loki 라이브러리는 확장성에 있어서도 전혀 부족함이 없습니다.

    물론 이 책은 C++로 구사할 수 있는 고급 테크닉들을 다루고 있습니다. 그리고 이 책을 이해하기 위한 선행 지식의 예를 들면, STL 및 제네릭 프로그래밍 그리고 디자인 패턴이라 말할 수 있을 것입니다. 하지만 너무 겁내실 필요는 없습니다. 이 책은 여러분에게 이런 주제들에 대한 완전한 이해를 요구하지는 않습니다. 독자 여러분은 STL, 제네릭 프로그래밍 그리고 디자인 패턴에 대한 개념적인 이해만을 가지고도 이 책의 내용을 커다란 어려움 없이 따라갈 수 있을 것입니다(다만 한 가지, 템플릿에 익숙해지는 과정은 감수해야 합니다).

    또한 가장 멋진 일은, 이 책을 읽은 후에 여러분이 가질 수 있는 것이 비단 '향상된 실력'만이 아니라는 점입니다. 저자 Alexandrescu는 이 책에서 자신이 설명하고 있는 모든 내용을 Loki라는 라이브러리에 집약시켜 놓았습니다. 여러분은 웹 상에서 자유롭게 이 라이브러리를 다운로드 받으실 수 있으며, 아무런 제한 없이 이것을 사용할 수 있을 것입니다. 즉, 여러분은 향상된 실력과 함께 제네릭한 스타일로 응용할 수 있는 매우 강력한 라이브러리를 가지게 되는 것입니다.

    [감수의 글]
    {Modern C++ Design}은 C++의 템플릿 기능을 사용하여 재사용성과 효율성을 동시에 갖춘 컴포넌트를 설계하고 프로그래밍하는 방법을 정리해 놓은 책으로서, 필자 자신이 개발한 Loki라는 C++ 프로그래밍 툴을 설명하는 식으로 진행되어 있다. 개인적으로 C++ In Depth 시리즈로 나온 책 중에 가장 독특하고 감동적인 책이라고 생각한다. C++의 기능을 최대한 활용한 컴포넌트 클래스 설계, 프로그래밍 테크닉, C++에 최적화한 디자인 패턴 적용 방법이 500페이지에 걸쳐서 기술되어 있다. 이 책을 보고 있노라면 '이만하면 나도…'라고 생각해 오며 자기 혼자 우쭐해 있던 모습이 소리없이 작아지는 것을 느낄 수 있을 것이다. C++의 언어적 특징과 템플릿 기능에 대한 저자의 완벽한 이해를 바탕으로 풀어 헤쳐지는 중·고난도 테크닉을 한국의 많은 개발자들도 전수받길 바란다. 원서의 자세한 리뷰는 감수자의 홈페이지(www.kwak101.pe.kr)에서 확인할 수 있다. 한편, 이 책의 한국어판 작업은 "블루버드 메신저"로 유명한 블루버드 소프트웨어의 팀장으로 있었던 이기형씨가 맡아 주셨다

    시작부터 원고의 완성도가 매우 높고 깔끔했기 때문에, 독자들로부터 좋은 반응을 얻으리라 생각된다.
     
     
    "Infobook-C++ in Depth" 관련도서는 총 11권 입니다.
    - Accelerated C++ : 예제로 배우는 진짜배기 C++ 프로그래밍
    - Essential(에센셜) C++
    - C++ Template Metaprogramming : Boost로부터 배우는 개념, 도구, 기법
    - C++ 코딩의 정석 : 101가지 규칙, 가이드라인, 좋은 습관들
    - Exceptional C++ Style : 40개의 새로운 프로그래밍 퍼즐과 문제 그리고 그 해답
    - C++ Network Programming Volume 2 : ACE와 프레임워크를 이용한 체계적인 재사용 기법
    - Applied C++ : 향상된 소프트웨어를 개발하기 위한 실용적인 기술
    - 제네릭 프로그래밍과 디자인 패턴을 적용한 Modern C++ Design
    - Exceptional C++ : C++ 프로그래머를 자극하는 47개의 재미있는 퍼즐 문제
    - C++ Network Programming Volume 1 : ACE와 패턴을 사용한 객체지향 네트워크 프로그래밍
    - Essential(에센셜) C++
     
    1. <정오표 파일[2003년 12월]>
    제네릭 프로그래밍과 디자인 패턴을 적용한 Modern C++ Design

    서적의 정오표 파일입니다.
    첨부파일 : 8054-517-ox.hwp 38KB

                                      
    회사소개      개인정보취급방침      고객센터     사이트맵      도움말