추천 검색어

최근 검색어

도서 IT 전문서 프로그래밍/오픈소스
객체 지향 소프트웨어 디자인을 재사용하는 방법 모던 C++ 디자인 패턴
정 가
25,000원
출 간
2019-04-30
지 은 이
드미트리네스터룩
옮 긴 이
권오인
I S B N
9791160507676
분 량
360쪽
난 이 도
중급
부 록
소스 코드

모던 C++로 배우는 디자인 패턴

새로운 기능으로 풍부해진 C++로 다시 배운다 

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

 

객체 지향 소프트웨어 디자인을 학습한다

GoF의 디자인 패턴은 기본! 객체 지향 소프트웨어의 디자인 원칙은 SOLID 원칙, CRTP 패턴, Mixin 상속, 모나드 패턴을 학습하면서 객체 지향 소프트웨어 디자인의 기본을 학습한다.

 

점진적인 설계로 패턴의 장단점을 살핀다

패턴의 구현을 단순히 나열하지 않았다. 각 패턴을 간단하게 구현해보고 기술적 복잡도에 따라 패턴을 발전시켜가면서 각 복잡도 단계에 따라 발생하는 장단점을 면밀하게 설명했다.

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)

 

ㆍ지은이 드미트리네스터룩
지은이 소개
이화여대 컴퓨터공학과를 졸업하고, KAIST 대학원 전산과에서 데이터베이스 전공으로 석사 학위를 취득했다. 데이터베이스 외에 온톨로지(Ontology), 개인화 검색 등을 연구했으며 졸업 후 네이버에서 검색 서버 설계 및 개발 실무 경험을 쌓다가 현재는 검색 연구실에서 검색 모델링과 추천 시스템 관련 연구를 진행 중이다.

ㆍ옮긴이 권오인
옮긴이 소개
다양한 프로젝트 경험을 바탕으로 저술 및 강연 활동을 하고 있으며 월간 마이크로소프트웨어에 IT와 전쟁사를 연결해서 설명하는 '김영욱의 The war of IT'를 연재하고 있다. 현재 한국마이크로소프트에서 기술을 전도하는 에반젤리스트로 활동하며 최근에는 Microsoft DX팀에서 IoT와 관련된 업무를 하고 있다. - 월간 마이크로소프트웨어 자문위원 - 웹 접근 2.0 표준 자문위원 - 디지털 교과서 프로젝트 리더 - IT와 전쟁사를 다루는 ‘김영욱의 The War of IT’ 기고 중

필요한 자료를 선택하세요.

추천도서