장바구니 담기 close

장바구니에 상품을 담았습니다.

전문가를 위한 C++

전문가를 위한 C++

  • 마크그레고리
  • |
  • 한빛미디어
  • |
  • 2019-08-20 출간
  • |
  • 1496페이지
  • |
  • 183 X 235 mm
  • |
  • ISBN 9791162242087
판매가

68,000원

즉시할인가

61,200

카드할인

0원(즉시할인 0%)

적립금

3,400원 적립(5%적립)

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

추가혜택

네이버페이 무조건 1%적립+ 추가 1%적립

수량
+ -
총주문금액
61,200

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평




★ 최신 C++를 마스터하려면 알아야 할 C++와 C++17의 모든 것
C++ 전문가가 되기 위해 필요한 내용을 조목조목 옮겼다. C++의 기본 기능에서 널리 알려지지 않았던 기능까지 설명한다. 오랜 역사를 지닌 C++ 언어에 대한 오해와 올바른 프로그래밍 방법을 소개한다. C++17까지 추가된 최신 기능을 기반으로 C++ 언어의 핵심 기능, 람다, 파일시스템, 템플릿, 표준 라이브러리(STL), 문자열, 입출력과 같은 기본부터 제네릭 코드 작성, 타입 추론, 템플릿 재귀, 메타프로그래밍, 메모리 관리, 멀티스레드 같은 고급 기능까지 다룬다. 소프트웨어 엔지니어링 측면에서 알아야 할 버전 관리, 소프트웨어 개발 방법론, 코드 최적화, 테스팅, 디버깅, 프레임워크, 디자인 패턴까지 소개해 C++ 전문가가 되고 싶은 독자는 물론 현업 C++ 전문가도 전체 지식을 복습할 수 있게 했다.

★ 대상 독자
C++를 수년 동안 사용하더라도 C++ 고급 기능에 익숙하지 않거나 고급 기능을 사용한 적이
거의 없는 사람이 있다. C++ 코딩에는 자신 있지만 C++로 디자인하는 방법이나 바람직한 프로그래밍 스타일을 자세히 알고 싶은 사람도 있다. 또한 C++ 경험은 부족하지만 실전에 제대로 활용하는 방법을 배우고 싶은 사람도 있다. 이 책은 C++ 실력을 전문가 수준으로 끌어올리려는 분 모두를 대상으로 한다.

★ 이 책의 내용
- C++의 방대한 기능을 최대한 활용하여 효과적인 솔루션을 개발할 수 있도록 C ++ 사고방식을 제시한다.
- 어설프게 알고 있거나 실수하기 쉬운 부분을 바로 잡고 효율과 성능을 높이는 다양한 팁과 기법, 우회전략을 소개한다.
- 당장 프로젝트에서 마주치고 적용할 수 있는 현실적인 문제와 프로그램 예제를 소개한다.
- 구조적 바인딩, 중첩 네임스페이스, constexpr if를 비롯한 C++17부터 새로 추가된 기능을 소개한다.
- string_view, optional, 병렬 알고리즘, 파일시스템 API 등 C++17부터 새로워진 표준 라이브러리의 주요 기능을 심도 있게 살펴본다.

★ 이 책의 상세 구성
[1부 전문가를 향한 C++의 첫걸음]
C++ 기초를 다지기 위한 초단기 속성 코스부터 시작한다. 이어지는 장에서 스트링과 스트링 뷰를 다루는 방법을 깊이 있게 살펴본다. 스트링은 이 책의 거의 모든 예제에서 사용하기 때문이다. 1부의 마지막 장은 C++ 코드를 읽기 쉽게 작성하는 방법을 소개한다.

[2부 전문가답게 C++ 소프트웨어 디자인하기]
C++ 디자인 방법론을 소개한다. 디자인의 중요성, 객체지향 방법론, 코드 재사용의 중요성 등을 설명한다.

[3부 전문가답게 C++ 코딩하기]
전문가처럼 C++를 다루는 기법을 소개한다. C++에서 메모리를 관리하기 위한 바람직한 방법, 재사용 가능한 클래스 작성법, 상속과 같이 언어의 주요 기능을 최대한 활용하는 방법 등을 소개한다. 또한 C++의 까다롭고 미묘한 기능, 입력과 출력을 다루는 방법, 에러 처리 방법, 스트링 현지화 방법, 정규 표현식 사용법 등도 소개한다. 연산자 오버로딩, 템플릿 작성법도 설명한다. 컨테이너, 반복자, 제네릭 알고리즘 등을 제공하는 C++ 표준 라이브러리도 소개한다. 표준 라이브러리에서 제공하는 시간, 무작위수, 파일시스템 등과 관련된 기능도 살펴본다.

[4부 C++ 고급 기능 마스터하기]
C++를 최대한 활용하는 방법을 제시한다. C++에서 잘 알려지지 않은 기능을 소개하고, 고급 수준에 해당하는 기능을 사용하는 방법을 설명한다. 필요에 따라 C++ 표준 라이브러리를 커스터마이즈하고 확장하는 방법, 템플릿 메타프로그래밍 같은 템플릿 프로그래밍의 고급 기법, 멀티프로세서 및 멀티코어 시스템을 최대한 활용하기 위한 멀티스레드 프로그래밍 방법도 다룬다.

[5부 C++ 소프트웨어 공학]
엔터프라이즈 수준의 소프트웨어를 작성하는 방법을 소개한다. 최근 소프트웨어 회사에서 흔히 사용하는 소프트웨어 공학 기법을 소개하고, 효율적인 C++ 코드를 작성하는 방법, 단위 테스트나 회귀 테스트를 비롯한 다양한 테스트 방법론, C++ 프로그램 디버깅 기법을 설명한다. 또한 디자인 기법, 프레임워크, 객체지향 패턴을 한데 엮는 방법을 설명하며, 크로스 언어 및 크로스 플랫폼을 위한 코드 작성 방법을 소개한다.

[부록]
기술 면접에서 나올 수 있는 C++ 예상 질문을 각 장별로 소개하고, 다양한 참고 문헌을 부연 설명과 함께 제시하고, 표준에서 정의한 C++ 헤더 파일을 간략히 정리하고, UML을 가볍게 소개하는 것으로 이 책을 마무리한다.

[추천평]
“감명 깊게 읽었습니다. 프로그래머와 전문가 모두를 위한 책입니다.”
- Petar (아마존 독자)

“이 책을 읽어야 한다는 생각이 들었습니다. 과거에 소소한 C++ 프로그램을 구현했고 더 나은 C++ 프로그래머가 되고 싶었거든요.”
- Mainiac (아마존 독자)

“C++ 17 기능을 익혀야 했습니다. C++ 표준 라이브러리 사용을 강조한 점이 특히 마음에 들었습니다. 회사 책상에 두고 틈틈히 읽고 있습니다.”
- Thomas B. Gross (아마존 독자)


목차


[Part 1 전문가를 향한 C++의 첫걸음]

CHAPTER 1 C++와 표준 라이브러리 초단기 속성 코스
_1.1 C++의 기초
_1.2 C++의 고급 기능
_1.3 C++의 객체지향 언어 특성
_1.4 유니폼 초기화
_1.5 표준 라이브러리
_1.6 첫 C++ 프로그램
_1.7 정리

CHAPTER 2 스트링과 스트링 뷰 다루기
_2.1 동적 스트링
_2.2 정리

CHAPTER 3 코딩 스타일
_3.1 코딩 스타일의 중요성
_3.2 코드 문서화
_3.3 코드 분할
_3.4 명명 규칙
_3.5 언어의 기능에 스타일 적용하기
_3.6 포매팅
_3.7 스타일과 관련하여 해결할 문제
_3.8 정리

[Part 2 전문가답게 C++ 소프트웨어 디자인하기]

CHAPTER 4 전문가다운 C++ 프로그램 디자인
_4.1 프로그램 디자인의 정의
_4.2 프로그램 디자인의 중요성
_4.3 C++에 적합한 디자인 방법
_4.4 C++ 디자인에 관련된 두 가지 원칙
_4.5 코드 재사용
_4.6 체스 프로그램 디자인
_4.7 요약

CHAPTER 5 객체지향 디자인
_5.1 절차형 사고방식
_5.2 객체지향 철학
_5.3 객체의 관점에서 바라보기
_5.4 객체 관계
_5.5 추상화
_5.6 요약

CHAPTER 6 재사용을 고려한 디자인
_6.1 재사용 철학
_6.2 코드를 재사용할 수 있도록 디자인하는 방법
_6.3 요약

[Part 3 전문가답게 C++ 코딩하기]

CHAPTER 7 메모리 관리
_7.1 동적 메모리 다루기
_7.2 배열과 포인터의 두 얼굴
_7.3 로우레벨 메모리 연산
_7.4 스마트 포인터
_7.5 흔히 발생하는 메모리 문제
_7.6 요약

CHAPTER 8 클래스와 객체 숙달하기
_8.1 스프레드시트 예제
_8.2 클래스 작성 방법
_8.3 객체의 라이프 사이클
_8.4 요약

CHAPTER 9 클래스와 객체 마스터하기
_9.1 friend
_9.2 객체에 동적 메모리 할당하기
_9.3 메서드의 종류
_9.4 데이터 멤버의 종류
_9.5 중첩 클래스
_9.6 클래스에 열거 타입 정의하기
_9.7 연산자 오버로딩
_9.8 안정된 인터페이스 만들기
_9.9 요약

CHAPTER 10 상속 활용하기
_10.1 상속을 이용한 클래스 구현
_10.2 코드 재사용을 위한 상속
_10.3 부모를 존중하라
_10.4 다형성을 위한 상속
_10.5 다중 상속
_10.6 상속에 관련된 미묘하면서 흥미로운 문제들
_10.7 요약

CHAPTER 11 C++의 까다롭고 유별난 부분
_11.1 레퍼런스
_11.2 키워드 혼동
_11.3 타입과 캐스팅
_11.4 스코프
_11.5 어트리뷰트
_11.6 사용자 정의 리터럴
_11.7 헤더 파일
_11.8 C 유틸리티
_11.9 요약

CHAPTER 12 템플릿으로 제네릭 코드 만들기
_12.1 템플릿 소개
_12.2 클래스 템플릿
_12.3 함수 템플릿
_12.4 변수 템플릿
_12.5 요약

CHAPTER 13 C++ I/O 완전 분석
_13.1 스트림 사용법
_13.2 스트링 스트림
_13.3 파일 스트림
_13.4 양방향 I/O
_13.5 요약

CHAPTER 14 에러 처리하기
_14.1 에러와 예외
_14.2 익셉션 처리 과정
_14.3 익셉션과 다형성
_14.4 익셉션 다시 던지기
_14.5 스택 풀기와 청소
_14.6 익셉션 처리 과정에서 흔히 발생하는 문제
_14.7 모두 합치기
_14.8 요약

CHAPTER 15 C++ 연산자 오버로딩하기
_15.1 연산자 오버로딩 개요
_15.2 산술 연산자 오버로딩하기
_15.3 비트 연산자와 논리 연산자 오버로딩하기
_15.4 스트림 입출력 연산자 오버로딩하기
_15.5 인덱스 연산자 오버로딩하기
_15.6 함수 호출 연산자 오버로딩하기
_15.7 역참조 연산자 오버로딩하기
_15.8 변환 연산자 구현하기
_15.9 메모리 할당과 해제 연산자 오버로딩하기
_15.10 요약

CHAPTER 16 C++ 표준 라이브러리 둘러보기
_16.1 코드 작성법
_16.2 C++ 표준 라이브러리 둘러보기
_16.3 요약

CHAPTER 17 컨테이너와 반복자 살펴보기
_17.1 컨테이너 개요
_17.2 순차 컨테이너
_17.3 컨테이너 어댑터
_17.4 정렬 연관 컨테이너
_17.5 비정렬 연관 컨테이너(해시 테이블)
_17.6 기타 컨테이너
_17.7 요약

CHAPTER 18 표준 라이브러리 알고리즘 마스터하기
_18.1 알고리즘 개요
_18.2 std::function
_18.3 람다 표현식
_18.4 함수 객체
_18.5 표준 라이브러리 알고리즘 심층 분석
_18.6 알고리즘 예제: 선거인 명부 검사
_18.7 요약

CHAPTER 19 스트링 현지화와 정규 표현식
_19.1 현지화
_19.2 정규 표현식
_19.3 요약

CHAPTER 20 여러 가지 유틸리티 라이브러리
_20.1 ratio 라이브러리
_20.2 chrono 라이브러리
_20.3 무작위수 생성
_20.4 optional
_20.5 variant
_20.6 any
_20.7 tuple
_20.8 파일시스템 지원 라이브러리
_20.9 요약

[Part 4 C++ 고급 기능 마스터하기]

CHAPTER 21 표준 라이브러리 커스터마이즈 및 확장
_21.1 할당자
_21.2 스트림 반복자
_21.3 반복자 어댑터
_21.4 표준 라이브러리 확장하기
_21.5 요약

CHAPTER 22 고급 템플릿
_22.1 템플릿 매개변수에 대한 심화 학습
_22.2 클래스 템플릿 부분 특수화
_22.3 오버로딩으로 함수 템플릿 부분 특수화 흉내내기
_22.4 템플릿 재귀
_22.5 가변 인수 템플릿
_22.6 메타프로그래밍
_22.7 요약

CHAPTER 23 C++ 멀티스레드 프로그래밍
_23.1 들어가며
_23.2 스레드
_23.3 아토믹 연산 라이브러리
_23.4 상호 배제
_23.5 조건 변수
_23.6 promise와 future
_23.7 멀티스레드 Logger 클래스 예제
_23.8 스레드 풀
_23.9 바람직한 스레드 디자인과 구현을 위한 가이드라인
_23.10 요약

[Part 5 C++ 소프트웨어 공학]

CHAPTER 24 소프트웨어 공학 기법
_24.1 프로세스의 필요성
_24.2 소프트웨어 라이프 사이클 모델
_24.3 소프트웨어 공학 방법론
_24.4 나만의 프로세스와 방법론 만들기
_24.5 소스 코드 관리
_24.6 요약

CHAPTER 25 효율적인 C++ 코드 작성법
_25.1 성능과 효율성에 대하여
_25.2 언어 차원의 효율성
_25.3 디자인 차원의 효율성
_25.4 프로파일링
_25.5 요약

CHAPTER 26 테스트 숙달하기
_26.1 품질 관리
_26.2 단위 테스트
_26.3 하이레벨 테스트
_26.4 성공적인 테스트를 위한 팁
_26.5 요약

CHAPTER 27 디버깅 완전 정복
_27.1 디버깅 기본 원칙
_27.2 버그 분류
_27.3 버그 방지
_27.4 버그 대비
_27.5 정적 어서션
_27.6 디버깅 테크닉
_27.7 요약

CHAPTER 28 디자인 기법과 프레임워크
_28.1 흔히 사용하지만 까먹기 쉬운 문법
_28.2 고급 기법
_28.3 객체지향 프레임워크
_28.4 요약

CHAPTER 29 디자인 패턴
_29.1 반복자 패턴
_29.2 싱글턴 패턴
_29.3 추상 팩토리 패턴
_29.4 프록시 패턴
_29.5 어댑터 패턴
_29.6 데코레이터 패턴
_29.7 책임 사슬 패턴
_29.8 옵저버 패턴
_29.9 요약

CHAPTER 30 크로스 플랫폼과 크로스 언어 애플리케이션 개발 방법
_30.1 크로스 플랫폼 개발
_30.2 크로스 언어 개발
_30.3 요약

[부록 A] C++ 면접 예상 질문
[부록 B] 참고 문헌
[부록 C] 표준 라이브러리 헤더 파일
[부록 D] UML 기초

도서소개


 

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.