모던 C++ 디자인 패턴

드미트리 네스터룩 (지은이), 권오인 (옮긴이) | 길벗 | 2019년 4월 정가 25,000원 판매가 22,500원 배송비 0원 (0원 이상 무료) 페이지 360쪽 판형 152*225mm 550g ISBN 9791160507676 상태 새책 or 중고 수량 합계 22,500

책소개

C++는 C++11/14/17을 거치면서 강력한 언어로 발전했으며, 표현력이 풍부해졌다. GoF의 전통적인 디자인 패턴을 표현력이 풍부해진 모던 C++로 새롭게 학습한다. 또한, 모던 C++을 디자인 패턴에 활용하는 방법을 통해 모던 C++을 응용하는 방법도 학습할 수 있다.

저자소개

드미트리 네스터룩 (Dmitri Nesteruk) (지은이)  
신간알리미 신청
금융 분석가(퀀트), 소프트웨어 개발자, 교육/저술가, 콘퍼런스 연사이다. 소프트웨어 개발과 더불어 계산, 금융 분석, 알고리즘 트레이딩의 모범 사례들을 통합하는 데 전문성과 관심을 갖고 있다. 기술적으로는 C# 및 C++ 프로그래밍 언어와 CUDA, FPGA 등을 활용한 고성능 컴퓨팅에 관심이 많다. 그리고 2009년부터 C# MVP로 선정되어 활동하고 있다.
권오인 (옮긴이)  
신간알리미 신청
아르바이트, 창업, 벤처를 거쳐 잠시 생뚱맞게 이동 통신사 연구소에서 사업 기획을 하다가 현재 대형 제조사에서 시스템 소프트웨어 개발을 하고 있다. 공대생의 로망인 메카닉 제어 펌웨어 개발이 첫 시작이었으나, 생계를 꾸리다 보니 본의 아니게 웹 서비스, 모바일 앱까지 버티컬한 소프트웨어 스택 전체와 부딪히고 있다.
역서로는 《전문가를 위한 C++ 1(한빛미디어》, 《전문가를 위한 C++ 2(한빛미디어》가 있다.
역자후기
디자인 패턴은 일상적인 코딩 문제들의 해법을 일반화한 코딩 노하우의 모음입니다. 프로그래머라면 절대 놓쳐서는 안될 지식입니다. 프로그래머로서 역량을 키우는데 디자인 패턴만큼 배우기 쉬우면서도 효과가 큰 지식은 대단히 드뭅니다.
당연하게도 코딩 문제의 해법은 사용하는 프로그래밍 언어의 특성에 큰 영향을 받습니다. C++는 난해하기로 악명이 높고 오랜 기간 정체되어 있었습니다. 하지만 C++11 표준을 시작으로 "모던 C++"라는 애칭을 부여받으며 잠에서 깨어나고 있습니다. 모던 C++는 C++만이 제공하는 끝판왕급 최적화 기능과 하드웨어 제어 자유도를 고스란히 간직하고 있습니다. 여기에 부러워하며 쳐다보기만 했던 신생 언어들의 멋진 기능들을 품으며 새롭게 태어났습니다.
디자인 패턴을 모던 C++ 버전으로 누가 좀 정리해줬으면 좋겠다는 생각을 하던 차에 이 책을 만났습니다. 딱 생각하던 바로 그 책이었습니다.
이 책은 최신 C++ 표준은 물론 아직 표준화가 진행 중인 따끈따끈한 기능까지 활용하고 있습니다. 모던 C++의 새로운 기능들로 인해 코드가 얼마나 간결하고 아름다워질 수 있는지 보여줍니다. 뿐만 아니라 전통적인 디자인 패턴에 대한 비판과 대안도 제시하고 있으며 함수형 언어에서 활용되는 모나드 개념까지 소개하고 있습니다.
모니터 바로 옆에 두고 애용될 책이라 믿어 의심치 않습니다.

출판사소개

목차

1장 개요
__1.1 사전 지식
__1.2 중요한 개념
__1.3 SOLID 디자인 원칙

제 I 부 생성 패턴
I.1 함수에서의 객체 리턴

2장 빌더
__2.1 시나리오
__2.2 단순한 빌더
__2.3 흐름식 빌더
__2.4 의도 알려주기
__2.5 그루비-스타일 빌더
__2.6 컴포지트 빌더
__2.7 요약

3장 팩터리
__3.1 시나리오
__3.2 팩터리 메서드
__3.3 팩터리
__3.4 내부 팩터리
__3.5 추상 팩터리
__3.6 함수형 팩터리
__3.7 요약

4장 프로토타입
__4.1 객체 생성
__4.2 평범한 중복 처리
__4.3 복제 생성자를 통한 중복 처리
__4.4 직렬화(Serialization)
__4.5 프로토타입 팩터리
__4.6 요약

5장 싱글턴(Singleton)
__5.1 전역 객체로서의 싱글턴
__5.2 전통적인 구현
__5.2.1 멀티스레드 안정성
__5.3 싱글턴의 문제
__5.4 싱글턴과 제어 역전(Inversion of Control)
__5.5 모노스테이트(Monostate)
__5.6 요약

제 II 부 구조 패턴
6장 어댑터
__6.1 시나리오
__6.2 어댑터
__6.3 일시적 어댑터
__6.4 요약

7장 브릿지
__7.1 Pimpl 관례
__7.2 브릿지
__7.3 요약

8장 컴포지트
__8.1 배열에 기반한 속성
__8.2 그래픽 객체의 그루핑
__8.3 뉴럴 네트워크
__8.4 요약

9장 데커레이터
__9.1 시나리오
__9.2 동적 데커레이터
__9.3 정적 데커레이터
__9.4 함수형 데커레이터
__9.5 요약

10장 퍼사드( )
__10.1 터미널은 어떻게 동작할까?
__10.2 고급 터미널
__10.3 퍼사드는 어디에 있는가?
__10.4 요약

11장 플라이웨이트(Flyweight)
__11.1 사용자 이름
__11.2 Boost.Flyweight
__11.3 문자열 범위
__11.4 섣부른 접근 방법
__11.5 플라이웨이트의 구현
__11.6 요약

12장 프록시(Proxy)
__12.1 스마트 포인터
__12.2 속성 프록시
__12.3 가상 프록시
__12.4 커뮤니케이션 프록시
__12.5 요약

제 III 부 행태 패턴
13장 책임 사슬(Chain of Responsibility)
__13.1 시나리오
__13.2 포인터 사슬
__13.3 브로커 사슬
__13.4 요약

14장 커맨드
__14.1 시나리오
__14.2 커맨드 패턴의 구현
__14.3 되돌리기(Undo) 작업
__14.4 컴포지트 커맨드
__14.5 명령과 조회의 분리
__14.6 요약

15장 인터프리터
__15.1 산술 표현식의 계산
__15.2 Boost.Spirit을 이용한 파싱
__15.3 요약

16장 반복자(Iterator)
__16.1 표준 라이브러리의 반복자
__16.2 이진 트리의 탐색
__16.3 코루틴(Coroutine)을 이용한 순회
__16.4 요약

17장 매개자(Mediator)
__17.1 채팅 룸
__17.2 매개자와 이벤트
__17.3 요약

18장 메멘토(Memento)
__18.1 은행 계좌
__18.2 Undo와 Redo
__18.3 요약

19장 Null 객체
__19.1 시나리오
__19.2 Null 객체
__19.3 shared_ptr는 Null 객체가 아니다
__19.4 개선된 디자인
__19.5 묵시적인 Null 객체
__19.6 요약

20장 관찰자(Observer)
__20.1 속성 관찰자
__20.2 Observer
__20.3 Observable
__20.4 관찰자(Observer)와 관찰 대상(Observable)의 연결
__20.5 종속성 문제
__20.6 수신 해제와 스레드 안정성
__20.7 재진입성(Reentrancy)
__20.8 Boost.Signals2를 이용한 관찰자
__20.9 요약

21장 상태(State)
__21.1 상태 기반 상태 전이
__21.2 수작업으로 만드는 상태 머신
__21.3 Boost.MSM을 이용한 상태 머신
__21.4 요약

22장 전략
__22.1 동적 전략
__22.2 정적 전략
__22.3 요약

23장 템플릿 메서드
__23.1 게임 시뮬레이션
__23.2 요약

24장 방문자(Visitor)
__24.1 침습적 방문자
__24.2 반추적(reflective) 출력
__24.3 디스패치(Dispatch)?
__24.4 전통적인 방문자
__24.5 비순환 방문자
__24.6 std::variant와 std::visit
__24.7 요약

제 IV 부 부록: 함수형 디자인 패턴
25장 ~라면 모나드(Maybe Monad)

더보기

배송

- 배송비, 무료배송비는 업체 사정에 따라 달라질 수 있습니다.
- 배송은 결제 확인 후 다음날부터 2~3일 이내에 배송됩니다. (단 도서 산간지역은 1~2일정도 더 소요됩니다.)
- 공휴일은 배송기간에 포함되지 않습니다.
- 주문하신 상품이 여러개인 경우 동일한 업체의 상품만 묶음 배송 가능합니다. (업체 사정에 따라 달라질 수 있습니다.)
- 배송정보는 상단 주문조회나 마이페이지 주문목록에서 가능합니다.

상품 품절

- 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드립니다.

주문취소/변경

- 주문 상품에 대한 변경사항(품절,가격변동)이 발생하면 전화나 메일을 통해 변경내용을 알려드립니다.
- 주문 상품의 변경/취소/환불은 배송 시작전 마이페이지에서 직접 신청이 가능합니다.
- 주문 상품이 발송된 시점에서는 변경/취소/환불이 모두 불가능합니다.

반품/교환

- 기간 : 배송받으신 후 7일 이내에 가능합니다.
- 방법 : 홈페이지 마이페이지 > 반품/ 교환 신청 및 조회에서 가능합니다.
- 배송비 부담 : 상품에 이상이 있을시에는 무료, 고객의 단순변심 및 착오구매일 경우 상품 반송비용은 고객 부담입니다.
- 포장 개봉 후 재판매가 불가능한 상품은 반품/교환이 불가능합니다.
- 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우, 반품/교환이 불가능합니다.

반품/교환 불가 사유

- 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우 (단지 확인을 위한 포장 훼손은 제외)
- 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
- 복제가 가능한 상품 등의 포장을 훼손한 경우
- 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
- 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
- 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
- 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우

소비자 피해보상 환불 지연에 따른 배상

- 상품의 불량에 의한 반품, 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 준하여 처리합니다.
- 대금 환불 및 환불 지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리합니다.

Copyright © 2022 이츠북. All Rights Reserved.