본문내용 바로가기
MD의선택 무료배송 이벤트

모던 C++로 배우는 함수형 프로그래밍 커링, 메타프로그래밍 등 C++와 함수형 프로그래밍의 핵심

acorn+PACKT 시리즈
위스누 앤거로 지음 | 김현욱 옮김 | 에이콘출판 | 2018년 03월 30일 출간
  • 정가 : 30,000원
    판매가 : 27,000 [10%↓ 3,000원 할인]
  • 통합포인트 :
    [기본적립] 1,500원 적립 [5% 적립] 안내 [추가적립] 5만원 이상 구매 시 2천원 추가적립 [회원혜택] 우수회원 5만원 이상 구매 시 2~3% 추가적립
  • 추가혜택 : 카드/포인트 안내 추가혜택 더보기
  • 배송비 : 무료 배송비 안내
  • 배송일정 : 서울특별시 종로구 세종대로 기준 지역변경
    06월 22일 출고 예정 배송일정 안내
  • 바로드림 : 인터넷으로 주문하고 매장에서 직접 수령 안내
장바구니 담기 바로구매

책 그리고 꽃 서비스
책 그리고 꽃 | 책과 꽃을 함께 선물하세요 자세히보기

닫기

바로드림 주문 선물하기 보관함 담기
이벤트도서포함, 5만원이상 구매시 택1 (그레이/네이비/카키 3종, 포인트 차감)
닫기
  • [초등학습] 계산력. 연산력. 독해력 이벤트
  • 인문교양 메인이벤트
  • 이벤트도서포함, 5만원이상 구매시 택1 (그레이/네이비/카키 3종, 포인트 차감)
  • 유리컵&티코스터 증정 월간 생활책방 6월호
  • 경제경영, 부자의 생각은 당신과 다르다
  • 2018 운전면허 시험 EVENT
  • [초등학습] EBS 만점왕 2학기 EVENT
  • 퀴즈응모 1천원혜택, 이달의 추천 새책 구매시 트래블노트 선택(택1), 댓글참여 시그니처향 추첨

이 책의 이벤트 해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.

  • MANNING, O'REILLY, PACKT, WILEY 등 해..
    2016.03.07 ~ 2020.12.31
상품상세정보
ISBN 9791161751368(116175136X)
쪽수 368쪽
크기 186 * 236 * 27 mm /860g 판형알림
이 책의 원서/번역서 Learning C++ Functional Programming/Wisnu Anggoro

책소개

이 책이 속한 분야

모던 C++의 새로운 기능과 함수형 프로그래밍을 다룬다. 기능이나 개념별로 예제 코드를 작성하고 실행하며 공부할 수 있도록 구성했다. 기본 문법은 자세히 설명하지 않으므로 C++ 사용 경험이 있는 독자를 대상으로 한다. C++ 11 이후의 새로운 기능을 요약해서 배우고, 함수형 프로그래밍에 적용해 보는 과정을 흥미 있게 따라갈 수 있다

저자소개

저자 : 위스누 앤거로

저자 위스누 앤거로(Wisnu Anggoro)는 C# MCP(Microsoft Certified Professional)이며 경험 많은 C/C++ 개발자다. 팩트출판사에서 『Boost.Asio C++ Network Programming』(2013)과 『Functional C#』(2017)을 집필했다. 약 20년 전 고등학생 때부터 프로그래밍을 시작했으며, MS-DOS 환경에서 BASIC을 사용해 프로그램을 만들기 시작했다. 심(SIM) 카드 OS 포팅, 개인화, PC/SC 통신 등 C#과 C/C++을 필요로 하는 스마트카드 프로그래밍과 데스크톱, 웹 개발에 풍부한 경험을 갖고 있다. 현재 스마트카드의 혁신적인 기술을 전문으로 하는 인도네시아 기업 CIPTA에서 선임 스마트카드 소프트웨어 개발자로 일하고 있다

역자 : 김현욱

역자 김현욱은 스마일게이트, 엔씨소프트 등에서 게임 플랫폼을 개발했다. C++, 얼랭(Erlang), 파이썬, Go를 좋아하며, 오픈소스 기여와 스택 오버플로 활동을 틈틈이 하고 있다. 『크로스 플랫폼 개발을 위한 C# 7과 닷넷 코어 2.0』(에이콘, 2018)을 번역했다

작가의 말

저자 위스누 앤거로의 말
함수형 프로그래밍(Functional Programming)은 프로그램 구조 스타일 중 하나로, 공유 상태(shared state), 가변 데이터(mutable data), 부작용(side-effects)을 배제하는 순수 함수(pure function)로 구성된다. 수학에서 다루는 함수와 유사한데, 출력 값은 인수에만 의존하므로 동일한 입력에는 항상 같은 결과를 반환한다. 함수형 프로그래밍의 근본 개념은 문제 해결 방법으로 기존 패러다임과 다르게 함수의 활용을 강조하는 것이다.
함수형 프로그래밍은 명령형(imperative)에 대비되는 선언형(declarative)이다. 이 말은 프로그래밍이 명령(statement) 대신, 표현식(expression)과 선언(declaration)으로 이루어진다는 뜻이다. 함수형 프로그래밍에서는 순수 함수를 사용하므로 프로그램의 상태가 예상과 다르게 변하는 현상, 이른바 부작용을 방지한다. 반면 명령형 프로그래밍에서 프로그램 상태는 보통 객체의 함수 간에 공유되며 빈번하게 변경된다.
한편 표현식이 평가되면 명령형 프로그래밍에서는 결과 값이 변수에 대입된다. 예를 들어 함수 내에 여러 개의 표현식이 있다면, 최종 결과 값은 마지막 변수 상태에 영향을 받는다. 상태는 끊임없이 변할 수 있으므로 실행 순서가 매우 중요하다.
반면 함수형 프로그래밍에서는 기존 변수의 값을 바꾸는 대입은 금지되며, 만약 대입이 필요하다면 기존 변수를 사용하지 말고 새로운 변수를 만들어야 한다. 무엇보다 함수형 코드는 명령형이나 OOP 코드에 비해 더 간결하고 예상 가능하며 테스트가 쉽다.
하스켈(Haskell)이나 스칼라(Scala)처럼 함수형 프로그래밍을 염두에 두고 설계된 언어도 있지만, C++ 역시 언어의 여러 기능을 활용해 함수형 코드 작성이 가능하다는 점을 이 책을 통해 배우게 될 것이다.

역자 김현욱의 말
C++은 대표적인 객체 지향 언어이므로 함수형 프로그래밍과의 조합이 다소 어색해 보이는 게 사실이다. 그렇지만 C++이 어떤 언어인가? C++은 못하는 게 없는 전지전능한(!) 언어이다. C++의 풍부한 기능을 활용하면 함수형 프로그래밍의 특징인 일급함수, 불변객체, 맵/필터/폴드 등도 큰 어려움 없이 구현할 수 있다.
이 책은 모던 C++을 비롯한 C++의 여러 기능을 사용해 함수형 프로그램을 개발하는 방법을 설명한다. 그리 길지 않은 예제 코드를 곁들여 설명하므로 따라가기 수월하며, 함수형 프로그래밍을 궁금해하는 C++ 개발자들이 흥미를 가질 내용이 가득하다.
C++과 함수형 프로그래밍을 본격적으로 다룬 책은 이 책이 처음이 아닐까 생각한다. 몇 가지 약점이 있지만 가벼운 마음으로 따라가며 알고 있던 내용은 확실히 다지고, 몰랐던 개념이나 함수 사용법 등을 새로 익히다 보면 함수형 프로그래밍의 기본 개념을 잡는데 충분할 것이다.
파이썬, GO, 러스트까지 점점 설 자리가 줄어들어 외롭고, 비주얼 스튜디오 만큼 잦은 버전업으로 부담은 커져가는 C++ 개발자들이 이 책을 통해 잠시나마 괴로운 현실을 잊고 새로운 흥미를 느끼길 기대한다.

목차

1장. 모던 C++과 친숙해지기
__모던 C++의 새로운 기능 익히기
____auto 키워드로 데이터 타입을 자동으로 정의하기
____decltype 키워드로 표현식 타입 질의하기
____null 포인터
____비멤버 함수 begin()과 end()
____범위 기반 for 루프로 컬렉션 내 요소 순회
__C++ 표준 라이브러리 구현 살펴보기
____컨테이너 안에 객체 배치하기
____알고리즘 사용하기
__람다 표현식
____간단한 함수를 람다로 표현하기
____여러 줄의 함수를 람다로 표현하기
____람다 표현식에서 값 반환
____람다 표현식에서 값 캡처하기
____초기화 캡처
____제네릭 람다 표현식
__스마트 포인터로 메모리 관리 자동화하기
____unique_ptr로 원시 포인터 대체하기
____shared_ptr로 객체 공유하기
____weak_ptr로 객체 추적하기
__튜플을 사용해 다양한 데이터 타입 저장하기
____튜플에서 값 읽기
____튜플 값 타입 반환
__요약

2장. 함수형 프로그래밍에서 함수 다루기
__일급 함수
____다른 함수의 매개변수로 함수 전달
____변수에 함수 대입
____컨테이너에 함수 저장
____런타임에 새로운 함수 생성
__고차 함수의 세 가지 기능
____고차 함수의 특성, 맵 알아보기
____고차 함수의 특성, 필터로 데이터 추출하기
____고차 함수의 특성, 폴드 알아보기
__순수 함수로 부작용 피하기
__커링으로 함수 분리하기
__요약

3장. 함수에 불변 객체 사용하기
__불변 객체의 주요 특징
____지역 변수 수정
____함수에 전달된 인수 수정하기
__값 수정 금지하기
__불변 객체에 일급 함수와 순수 함수 적용하기
__불변 객체 구현하기
____가변 객체 만들기
____가변 객체를 불변 객체로 변환하기
__불변성의 장점
__요약

4장. 재귀 함수 호출
__함수를 재귀적으로 호출하기
____반복으로 함수 호출
____재귀로 함수 호출
__불변 함수 반복 호출
__꼬리 재귀 이해하기
__함수형, 절차형, 백트랙킹 재귀
____함수형 재귀
____절차형 재귀
____백트랙킹 재귀
__요약

5장. 지연 평가로 실행 늦추기
__표현식 평가
____즉시 평가
____지연 평가
__지연 평가에 필요한 기술
____처리 흐름 늦추기
____메모이제이션으로 값 캐싱
____메모이제이션으로 코드 최적화
__지연 평가 코드 만들기
____Chunk, Row 클래스 디자인
____여러 행 연결하기
____각 행의 요소 순회하기
____무한 정수 행 만들기
____무한 소수 행 만들기
____즉시 평가를 지연 평가로 변환하기
__요약

6장. 메타프로그래밍으로 코드 최적화
__메타프로그래밍 소개
____매크로를 사용한 코드 전처리
____표준 라이브러리의 템플릿 메타프로그래밍 자세히 보기
__템플릿 메타프로그래밍
____템플릿 메타프로그래밍에서 타입 다루기
____템플릿 메타프로그래밍에서 값 처리
____템플릿 메타프로그래밍에서 조건 처리
____템플릿 메타프로그래밍에서 재귀 처리
__컴파일 타임에 타입 선택하기
__템플릿 메타프로그래밍으로 흐름 제어
____조건에 따라 다음 작업 결정
____구문 선택
____루프에 적용하기
__컴파일 타임에 코드 실행
____컴파일 타임 상수 얻기
____컴파일 타임에 클래스 생성
__메타프로그래밍의 장점과 단점
__요약

7장. 동시성을 이용한 병렬 실행
__C++의 동시성
____싱글 스레드로 작업하기
____멀티 스레드로 작업하기
__뮤텍스를 이용한 스레드 동기화
____동기화 문제 해결하기
____자동으로 잠금 해제하기
____recursive_mutex로 데드락 방지하기
__윈도우에서 스레드 처리 이해하기
____핸들로 작업하기
____자동으로 핸들 해제하기
____이벤트 트리거
____스레드에서 이벤트 사용하기
__요약

8장. 함수형 방식으로 코드 작성하기
__명령형 클래스 준비(Step01)
__명령형 클래스를 함수형 클래스로 변환(Steop02 ~ 06)
____매개변수에 함수 전달(Step02)
____기본 클래스 만들기(Step03)
____순수 함수를 가지도록 개선(Step04)
____람다 표현식으로 조건 필터링(Step05)
____Customer 클래스에 재귀와 메모이제이션 적용(Step06)
__코드 디버깅
____디버깅 도구 시작
____디버깅 모드에서 사용 가능한 명령
____중단점 설정과 제거
____객체의 현재 상태 출력
__요약

출판사 서평

★ 이 책에서 다루는 내용 ★

■ 명령형 접근법과 함수형 접근법의 차이
■ 함수형 코드에서 일급 함수와 순수 함수 사용 예시
■ 부작용 방지를 위한 불변 객체 제작법
■ 효과적으로 재귀 알고리즘 설계하기
■ 지연 평가로 더 빠른 코드 만들기
■ 프로그램 응답성 향상을 위한 동시성 사용
■ 코드 최적화를 위한 C++ 표준 라이브러리와 메타프로그래밍 사용법 익히기


★ 이 책의 대상 독자 ★

이 책은 함수형 패러다임을 적용해서 견고하고 테스트 가능한 프로그램을 개발하고 싶은 OOP에 친숙한 C++ 개발자를 ... 더보기

북로그 리뷰 (0) 쓰러가기

도서 구매 후 리뷰를 작성하시면 통합포인트를 드립니다.
결제 90일 이내 작성 시 300원 / 발송 후 5일 이내 작성시 400원 / 이 상품의 첫 리뷰 작성 시 500원
(포인트 적립은 작성 후 다음 날 혹은 해당 도서 출고 후 익일에 적립됩니다.
외서/eBook/음반/DVD/GIFT 및 잡지 상품 제외)
안내
  • 해당도서의 리뷰가 없습니다.

Klover 평점/리뷰 (0)

교환/반품/품절안내

※ 상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

교환/반품/품절안내
반품/교환방법 마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환신청 ,
[1:1상담>반품/교환/환불] 또는 고객센터 (1544-1900)

※ 오픈마켓, 해외배송주문, 기프트 주문시 [1:1상담>반품/교환/환불]
    또는 고객센터 (1544-1900)
반품/교환가능 기간 변심반품의 경우 수령 후 7일 이내,
상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
반품/교환비용 변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
반품/교환 불가 사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등
  • 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에
    해당되는 경우
(1) 해외주문도서 : 이용자의 요청에 의한 개인주문상품으로 단순변심 및 착오로 인한 취소/교환/반품 시 ‘해외주문 반품/취소 수수료’ 고객 부담 (해외주문 반품/취소 수수료 : ①양서-판매정가의 12%, ②일서-판매정가의 7%를 적용)
상품 품절 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는
이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은
    소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의
    소비자 보호에 관한 법률에 따라 처리함

이 책의 원서번역서

안내

이 분야의 베스트

더보기+

이 분야의 신간

  • 세스 스티븐스 다비도위츠
    16,200원
  • 오렐리앙 제롱
    29,700원
  • 김문권
    22,500원
  • 김용환
    25,200원
  • 알렉산더 A. 스테파노프
    23,400원
더보기+

바로가기

  • 우측 확장형 배너 2
  • 우측 확장형 배너 2

최근 본 상품