간편결제, 신용카드 청구할인
카카오페이 3,000원
(카카오페이 결제시 최대할인 3천원 / 5만원 이상 결제, 기간 중 1회)
삼성카드 6% (33,840원)
(삼성카드 6% 청구할인)
인터파크 롯데카드 5% (34,200원)
(최대할인 10만원 / 전월실적 40만원)
북피니언 롯데카드 30% (25,200원)
(최대할인 3만원 / 3만원 이상 결제)
NH쇼핑&인터파크카드 20% (28,800원)
(최대할인 4만원 / 2만원 이상 결제)
Close

모던 C++ 프로그래밍 쿡북 : 100가지 레시피로 배우는 C++ 동작의 이해와 문제 해결

원제 : Modern C++ Programming Cookbook
소득공제

2013년 9월 9일 이후 누적수치입니다.

판매지수 214
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
정가

40,000원

  • 36,000 (10%할인)

    2,000P (5%적립)

할인혜택
적립혜택
  • I-Point 적립은 출고완료 후 14일 이내 마이페이지에서 적립받기한 경우만 적립됩니다.
  • 추가혜택
    배송정보
    주문수량
    감소 증가
    • 이벤트/기획전

    • 연관도서(27)

    • 사은품(8)

    책소개

    100가지 레시피로 배우는 C++ 동작의 이해와 문제 해결

    C++는 가장 오래되고 널리 사용되는 프로그래밍 언어 중 하나로, 빠르고 효율적이며 유연해서 다양한 문제를 해결할 때 사용된다. 이 책은 모든 C++ 개발자를 대상으로 하며, C++를 마스터하고 숙련된 C++ 개발자가 되길 원하는 초/중급 C++ 개발자에게 이상적이다. 숙련된 C++ 개발자에게는 C++11, C++14, C++17 언어와 라이브러리 기능에 대한 좋은 참고서가 될 것이다.

    출판사 서평

    [이 책에서 다루는 내용]

    - 스레딩과 동시성의 표준 지원을 이해하고 기본 태스크를 수행하는 방법 학습하기
    - C++17 파일시스템 라이브러리 깊이 파헤치기
    - 다양한 타입의 문자열로 작업하고 편집의 다양한 측면 살펴보기
    - 현대 기능에 중점을 둔 함수, 람다 표현식, 호출 가능한 객체 탐색하기
    - 표준 라이브러리를 활용하고 컨테이너, 알고리즘, 반복자 I/O, 시간, 유틸리티로 작업하기
    - 정규 표현식을 사용해 텍스트를 검색하고 대체 문제 해결하기
    - 개발자가 접하는 공통적인 문제를 해결하기 위해 string_view, any, optional, variant 타입을 포함한 표준 라이브러리에 새롭게 추가된 유틸리티 사용하기
    - 널리 사용되는 C++용 테스트 프레임워크를 알아보고 여러 가지 유용한 패턴과 관용어 구현하기

    [이 책의 대상 독자]

    이 책은 경험과 지식 수준에 상관없이 볼 수 있는 책으로, 모든 C++ 개발자를 대상으로 한다. 언어를 마스터하고 왕성한 현대 C++ 개발자가 되길 원하는 초급 또는 중급 수준의 C++ 개발자에게 이상적이다. 숙련된 C++ 개발자에게는 C++11, C++14, C++17 언어 및 라이브러리 기능에 관해서 수시로 편리하게 사용할 수 있는 좋은 참고 자료가 될 것이다. 이 책은 초급, 중급, 고급 수준의 100가지 이상의 레시피로 구성돼 있다. 모든 레시피는 C++에 대한 사전 지식이 필요하며, 여기에는 함수, 클래스, 템플릿, 네임스페이스, 매크로 등이 포함된다.
    그러므로 언어에 익숙하지 않은 독자라면 먼저 핵심 기능에 익숙해지도록 C++ 입문서부터 읽고 나서 이 책과 함께하는 것이 좋다.

    [이 책의 구성]

    1장. '현대 핵심 언어 특징 배우기'에서는 타입 유추, 균일한 초기화, 범위가 지정된 enum, 범위 기반 루프, 구조화 바인딩을 포함한 최신 핵심 언어 기능을 설명한다.
    2장. '숫자와 문자열로 작업하기'에서는 숫자와 문자열을 변환하는 방법, 의사 난수를 생성하는 방법, 정규 표현식을 사용하는 방법, 다양한 문자열 타입에 대해 설명한다.
    3장. '함수'에서는 디폴트 함수와 삭제된 함수, 가변 템플릿, 람다 표현식과 고차 함수에 대해 자세히 알아본다.
    4장. '전처리기와 컴파일'에서는 조건부 컴파일을 수행하는 방법을 시작으로 컴파일 타임 어서션, 코드 생성, 또는 컴파일러에 속성 암시 등과 같은 컴파일의 다양한 측면을 살펴본다.
    5장. '표준 라이브러리 컨테이너와 알고리즘, 반복자'에서는 몇 가지 표준 컨테이너와 다양한 알고리즘을 소개하고, 자신만의 임의 접근 반복자를 작성하는 방법을 배운다.
    6장. '범용 유틸리티'에서는 chrono 라이브러리의 any, optional, variant 타입에 대해 자세히 알아보고 타입 특성을 배운다.
    7장. '파일과 스트림 작업'에서는 스트림을 읽고 쓰는 방법, I/O 조작자를 사용해 스트림을 제어하고 파일시스템 라이브러리를 탐색하는 방법을 설명한다.
    8장. '스레딩과 동시성 활용'에서는 스레드, 뮤텍스, 잠금, 조건 변수, 프라미스, 퓨처, 아토믹 타입과 작업하는 방법을 알려준다.
    9장. '견고성과 성능'에서는 예외와 상수 정확성, 타입 변환, 스마트 포인터, 이동 시맨틱에 중점을 두고 알아본다.
    10장. '패턴과 관용어 구현'에서는 핌플(PIMPL) 관용어, 비가상 인터페이스 관용어, 또는 CRTP 등과 같은 여러 가지 유용한 패턴과 관용어를 다룬다.
    11장. '테스트 프레임워크 탐색'에서는 가장 널리 사용되는 세 가지 테스트 프레임워크인 Boost.Test, 구글 테스트, 캐치를 시작하는 데 도움이 될 만한 내용들을 소개한다.

    목차

    1장. 현대 핵심 언어 특징 배우기
    -소개
    -가능한 한 auto 사용하기
    -타입 별칭 및 별칭 템플릿 생성
    -균일한 초기화 이해하기
    -비정적 멤버 초기화의 다양한 형식 이해하기
    -객체 정렬 제어 및 쿼리
    -범위가 지정된 열거형 사용하기
    -가상 메소드에 override와 final 사용하기
    -범위 기반 for 루프를 사용해 범위 반복하기
    -사용자 정의 타입에 대한 범위 기반 for 루프 활성화
    -암시적 변환을 피하기 위해 명시적 생성자 및 변환 연산자 사용하기
    -정적 전역 대신 명명되지 않은 네임스페이스 사용하기
    -심볼 버전 관리에 인라인 네임스페이스 사용하기
    -구조적 바인딩을 사용해 다중 반환값 처리하기

    2장. 숫자와 문자열로 작업하기
    -소개
    -숫자와 문자열 타입 간의 변환
    -숫자 타입의 제한과 기타 속성
    -의사 난수 생성
    -의사 난수 생성기의 내부 상태의 모든 비트 초기화
    -가공된 사용자 정의 리터럴 작성
    -원시 사용자 정의 리터럴 작성
    -원시 문자열 리터럴을 사용한 이스케이프 문자 방지
    -문자열 헬퍼 라이브러리 생성
    -정규 표현식을 사용해 문자열 포맷 확인하기
    -정규 표현식을 사용해 문자열의 내용 파싱하기
    -정규 표현식을 사용해 문자열의 내용 바꾸기
    -상수 문자열 참조 대신 string_view 사용하기

    3장. 함수
    -소개
    -디폴트 함수와 삭제된 함수들
    -표준 알고리즘에서 람다 사용하기
    -제네릭 람다 사용하기
    -재귀 람다 작성하기
    -가변의 인수를 가진 함수 템플릿 작성하기
    -접힌 표현식을 사용해 가변 함수 템플릿 단순화하기
    -고차 함수 맵과 폴드 구현하기
    -함수를 고차 함수로 구성하기
    -호출 가능한 모든 것을 통합해 호출하기

    4장. 전처리기와 컴파일
    -소개
    -조건부로 소스 코드 컴파일하기
    -전처리기 문자열화와 연결에 간접 패턴 사용
    -static_assert로 컴파일 타임 어서션 검사 수행
    -enable_if로 조건부로 클래스와 함수 컴파일하기
    -constexpr if로 컴파일 시 분기 선택
    -속성으로 컴파일러에 메타데이터 제공하기

    5장. 표준 라이브러리 컨테이너와 알고리즘, 반복자
    -소개
    -벡터를 디폴트 컨테이너로 사용
    -비트의 고정 크기 시퀀스에 비트셋 사용
    -가변 크기의 비트 시퀀스에 벡터 [bool] 사용
    -범위 내의 요소 찾기
    -범위 정렬
    -범위 초기화
    -범위에서 세트 연산 사용하기
    -반복자를 사용해 컨테이너에 새 요소 삽입하기
    -자신만의 임의 접근 반복자 작성하기
    -비멤버 함수를 사용한 컨테이너 접근

    6장. 범용 유틸리티
    -소개
    -chrono::duration으로 시간 간격 표현하기
    -표준 시계로 함수 실행 시간 측정
    -사용자 정의 타입에 대한 해시 값 생성
    -std::any를 사용해 값을 저장
    -std::optional을 사용해 옵션 값 저장
    -타입 안전한 공용체로 std::variant 사용
    -std::variant 방문
    -프로그램이 정상적으로 종료될 때 호출할 함수 등록하기
    -타입 특성을 사용한 타입의 속성 조회
    -자신만의 타입 특성 작성하기
    -std::conditional을 사용해 타입 선택하기

    7장. 파일과 스트림 작업
    -소개
    -바이너리 파일에서 원시 데이터 읽기/쓰기
    -바이너리 파일에서 객체 읽기/쓰기
    -스트림에 로컬 설정 사용
    -I/O 조작자를 사용해 스트림 출력 제어
    -통화 I/O 조작자 사용
    -시간 I/O 조작자 사용
    -파일시스템 경로로 작업하기
    -파일과 디렉터리의 생성, 복사, 삭제
    -파일에서 내용 삭제
    -기존 파일 또는 디렉터리의 속성 확인
    -디렉터리의 내용 열거
    -파일 찾기

    8장. 스레딩과 동시성 활용
    -소개
    -스레드로 작업하기
    -스레드 함수에서 예외 처리
    -뮤텍스와 잠금을 사용해 공유 데이터에 대한 접근 동기화
    -재귀 뮤텍스 사용 방지
    -스레드 간 통보 전송
    -프라미스와 퓨처를 사용해 스레드에서 값 반환
    -함수를 비동기적으로 실행하기
    -아토믹 타입 사용
    -스레드로 병렬 맵과 폴드 구현하기
    -태스크로 병렬 맵과 폴드 구현하기

    9장. 견고성과 성능
    -소개
    -오류 처리에 예외 사용
    -오류를 던지지 않는 함수에 noexcept 사용
    -프로그램의 상수 정확성 보장
    -컴파일 타임 상수 표현식 생성
    -올바른 타입 캐스트 수행
    -unique_ptr을 사용해 메모리 자원을 고유하게 소유
    -shared_ptr을 사용한 메모리 자원 공유
    -이동 시맨틱 구현

    10장. 패턴과 관용어 구현
    -소개
    -팩토리 패턴에서 반복되는 if.else문 방지
    -핌플 관용어 구현
    -명명된 매개변수 관용어 구현
    -비가상 인터페이스 관용어를 사용해 구현과 인터페이스 분리
    -변호사-의뢰인 관용어 프렌드십 처리
    -회귀 템플릿 패턴을 사용한 정적 다형성
    -스레드 안전한 싱글톤 구현

    11장. 테스트 프레임워크 탐색
    -소개
    -Boost.Test 시작하기
    -Boost.Test로 테스트 작성하고 호출하기
    -Boost.Test로 어서트하기
    -Boost.Test에서 테스트 픽스처 사용하기
    -Boost.Test로 출력 제어하기
    -구글 테스트 시작하기
    -구글 테스트로 테스트 작성하고 호출하기
    -구글 테스트로 어서트하기
    -구글 테스트에서 테스트 픽스처 사용하기
    -구글 테스트로 출력 제어하기
    -캐치 시작하기
    -캐치로 테스트 작성하고 호출하기
    -캐치로 어서트하기
    -캐치로 출력 제어하기

    본문중에서

    C++는 가장 널리 사용되는 인기 있는 프로그래밍 언어로 지난 30년 동안 사랑을 받아 왔다. 성능과 효율성, 유연성에 중점을 두고 설계된 C++는 객체지향 프로그래밍, 명령형 프로그래밍, 제네릭 프로그래밍뿐 아니라 최근에는 함수형 프로그래밍 같은 패러다임을 결합해왔다. C++는 ISO(International Organization for Standardization)에서 표준화됐으며 지난 10년간 엄청난 변화를 겪었다. 현대 C++로 널리 알려진 C++11의 표준화를 통해 이 언어는 새로운 시대로 접어들었다. 타입 유추, 이동 시맨틱, 람다 표현식, 스마트 포인터, 균일한 초기화, 가변 템플릿과 최근의 다양한 기능으로 인해 C++에서 코드를 작성하는 방식이 거의 새로운 프로그래밍 언어처럼 보인다.
    이 책은 C++11, C++14, C++17에 포함된 많은 새로운 기능을 설명한다. 그리고 하나의 특정 언어나 라이브러리 기능, 또는 개발자가 직면하는 공통적인 문제와 C++를 사용한 전형적인 솔루션을 다루는 각각의 레시피로 구성돼 있다. 100가지가 넘는 레시피를 통해 문자열과 컨테이너, 알고리즘, 반복자, 입출력, 정규 표현식, 스레드, 파일시스템, 아토믹 연산(atomic operation), 유틸리티를 포함한 핵심 언어 기능과 표준 라이브러리를 배울 수 있다.
    이 책을 쓰는 데 약 6개월의 시간이 걸렸으며, 저술 동안에 C++17 표준 작업이 진행됐다. 이 '들어가며'를 작성하는 시점에 표준이 완성됐지만, 그 승인과 출시는 2017년 말에나 이뤄질 예정이다. 이 책의 여러 레시피에서는 접힌 표현식(fold expression), constexpr if, 구조화된 바인딩, 새로운 표준 속성과 optional, any, variant, string_view 타입, 파일시스템 라이브러리를 포함한 C++17의 기능을 다룬다.
    이 책의 모든 레시피에는 기능을 사용하거나 문제를 해결하는 방법을 보여주는 예제 코드가 들어있다. 예제 코드는 비주얼 스튜디오 2017을 사용해 작성됐지만, Clang과 GCC를 사용해 컴파일됐다. 다양한 언어와 라이브러리 기능에 대한 지원이 모든 컴파일러에서 점차적으로 추가되고 있으므로 가능한 한 모든 기능을 지원하는 최신 버전을 사용하는 것을 권장한다. (이 책을 저술하는 시점에서 최신 버전은 GCC 7.0과 Clang 5.0, VC++ 2017(버전 19.1)이었다 GCC와 Clang은 이 책에서 언급한 모든 기능을 지원하지만, VC++는 아직 접힌 표현식과 constexpr if, std::search() 검색자를 지원하지 않는다).
    ('지은이의 말' 중에서)

    프로그래머라면 누구나 한 번쯤 C++ 프로그래밍에 도전해봤을 것이다. 그만큼 C++는 오랜 기간 동안 사랑 받아온 프로그래밍 언어임에 틀림없다. 하지만 이해하기 어려운 문법과 복잡한 구조로 인해 많은 프로그래머를 절망에 빠뜨리고 결국 포기하도록 만들었던 것도 사실이다. 그러다가 흔히 모던 C++(Modern C++)로 불리는 C++11 표준이 등장하면서 이 언어는 다시금 사람들의 관심을 받으며 새로운 전성기를 누리고 있다.
    이 책은 100가지가 넘는 레시피를 통해 C++를 사용하면서 개발자들이 직면하게 되는 공통적인 문제와 그에 대한 솔루션을 제시하고 있다. 따분한 교과서 스타일이 아니라 필요한 부분을 골라 볼 수 있게 구성돼 있어 그동안 C++의 높은 벽에 좌절했던 개발자들이 쉽고 재미있게 C++ 프로그래밍의 세계에 다시 발을 담글 수 있게 해주는 책이라고 생각된다. C++11과 C++14뿐만 아니라 가장 최신 버전인 C++17에 포함된 기능까지 다루고 있어 초/중급 개발자뿐만 아니라 숙련된 개발자에게도 좋은 참고서가 될 것이라 믿는다.
    상투적인 문구이기는 하지만, 작업을 마치고 나면 항상 미흡한 부분에 대해 아쉬움이 남기 마련이다. 꽤 많은 시간과 노력을 들여 작업했지만, 저자의 의도를 충분히 전달하지 못하거나 잘못 번역된 부분이 있을 수 있다. 잘못된 점을 비롯해 책의 내용과 관련된 어떤 의견이라도 보내주시면 소중히 다룰 것이다.
    ('옮긴이의 말' 중에서)

    저자소개

    마리우스 반실라(Marius Bancila) [저] 신작알림 SMS신청 작가DB보기
    생년월일 -
    출생지 -
    출간도서 0종
    판매수 0권

    산업과 금융 분야에서 14년간의 풍부한 솔루션 개발 경험을 가진 소프트웨어 엔지니어다. 마이크로소프트 기술에 중점을 두고 C++와 C#으로 데스크톱 애플리케이션을 개발한다. 또한 지난 수년 동안 자바와 HTML/CSS, PHP, 자바스크립트를 아우르는 다양한 언어와 기술을 사용해왔다.
    자신의 전문 기술 및 지식을 다른 사람들과 공유하는 데 열정적이며, 그로 인해 10년 이상 마이크로소프트 MVP로 인정받아왔다. 여러 논문을 발표한 포럼과 개발자 커뮤니티에 적극적으로 기여한 공로로 여러 가지 상을 수상했으며, 다양한 오픈소스 라이브러리를 만들고 기여해왔다.
    C++

    펼쳐보기
    생년월일 -
    출생지 -
    출간도서 0종
    판매수 0권

    소프트웨어 엔지니어로서 오랫동안 웹 브라우저와 웹 서버를 개발했다. 그 경험을 바탕으로 현재는 W3C 및 다양한 국제 표준화 단체에서 웹 관련 표준화 업무를 담당하고 있다. 최근에는 웹 기술을 PC에서 벗어나 모바일이나 DTV, 디지털 사이니지(Digital Signage), 웨어러블(Wearable), 오토모티브(Automotive) 등 다양한 IoT 디바이스에 접목하는 오픈 웹 플랫폼(Open Web Platform)에 관심을 가지고 관련 기술을 계속 연구 중이다. 아울러 워크숍이나 세미나에서의 강연과 학술 기고 등을 통해 오픈 웹 플랫폼과 웹 기술을 전파하는 데 힘쓰고 있다.
    에이콘출판사에서

    펼쳐보기

    이 상품의 시리즈

    프로그래밍 언어 시리즈(총 28권 / 현재구매 가능도서 28권)

    펼쳐보기

    이 책과 내용이 비슷한 책 ? 내용 유사도란? 이 도서가 가진 내용을 분석하여 기준 도서와 얼마나 많이 유사한 콘텐츠를 많이 가지고 있는가에 대한 비율입니다.

      리뷰

      0.0 (총 0건)

      구매 후 리뷰 작성 시, 북피니언 지수 최대 600점

      리뷰쓰기

      기대평

      작성시 유의사항

      평점
      0/200자
      등록하기

      기대평

      0.0

      교환/환불

      교환/환불 방법

      ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청함, 1:1 문의 게시판 또는 고객센터(1577-2555) 이용 가능

      교환/환불 가능 기간

      고객변심은 출고완료 다음날부터 14일 까지만 교환/환불이 가능함

      교환/환불 비용

      고객변심 또는 구매착오의 경우에만 2,500원 택배비를 고객님이 부담함

      교환/환불 불가사유

      반품접수 없이 반송하거나, 우편으로 보낼 경우 상품 확인이 어려워 환불이 불가할 수 있음
      배송된 상품의 분실, 상품포장이 훼손된 경우, 비닐랩핑된 상품의 비닐 개봉시 교환/반품이 불가능함

      소비자 피해보상

      소비자 피해보상의 분쟁처리 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 따라 비해 보상 받을 수 있음
      교환/반품/보증조건 및 품질보증 기준은 소비자기본법에 따른 소비자 분쟁 해결 기준에 따라 피해를 보상 받을 수 있음

      기타

      도매상 및 제작사 사정에 따라 품절/절판 등의 사유로 주문이 취소될 수 있음(이 경우 인터파크도서에서 고객님께 별도로 연락하여 고지함)

      배송안내

      • 인터파크 도서 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다

      • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

      • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능하여, 인터파크 외 타업체 배송상품인 경우 발송되지 않을 수 있습니다.

      • 배송비

      도서(중고도서 포함) 구매

      2,000원 (1만원이상 구매 시 무료배송)

      음반/DVD/잡지/만화 구매

      2,000원 (2만원이상 구매 시 무료배송)

      도서와 음반/DVD/잡지/만화/
      중고직배송상품을 함께 구매

      2,000원 (1만원이상 구매 시 무료배송)

      업체직접배송상품 구매

      업체별 상이한 배송비 적용