장바구니 담기 close

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

전문가를 위한 C++

전문가를 위한 C++

  • 마크 그레고리
  • |
  • 한빛미디어
  • |
  • 2023-03-30 출간
  • |
  • 1692페이지
  • |
  • 183 X 235mm
  • |
  • ISBN 9791169210898
판매가

73,000원

즉시할인가

65,700

카드할인

0원(즉시할인 0%)

적립금

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

배송비

무료배송

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

추가혜택

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

수량
+ -
총주문금액
65,700

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

출판사서평

C++ 전문가를 꿈꾸는 프로그래머에게 전하는 희소식!
최신 C++를 마스터하려면 알아야 할 C++와 C++20의 모든 것

C++ 전문가가 되는 데 필요한 내용을 조목조목 옮긴 책이다. 코드 품질과 프로그래밍 효율을 동시에 높이는 C++ 프로그래밍 기법을 소개한다. 특히 C++20부터 새로 추가된 기능을 이 책 전반에 걸쳐 소개한다. 이러한 기능은 별도 장이나 절로 따로 빼서 한꺼번에 설명하는 대신, 각 장에 관련된 부분이 있을 때마다 하나씩 소개하며 각 장의 예제도 새로운 기능을 활용하도록 업데이트했다.

이 책은 단순히 언어의 문법과 기능만 소개하는 데 머물지 않는다. 프로그래밍 방법론, 재사용 가능한 디자인 패턴, 바람직한 프로그래밍 스타일도 함께 다룬다. 특히 코드를 설계하고 작성하는 단계부터 디버깅하고 협업하는 단계에 이르는 전반적인 소프트웨어 개발 프로세스에 따라 설명한다. 그 과정에서 C++ 언어 자체의 기능과 특이한 점을 마스터할 수 있고, 대규모 소프트웨어 개발을 위한 강력한 기법을 익힐 수 있다.

이 책을 제대로 읽는다면 제대로 알려지지 않았거나 잘못 이해하기 쉬운 기능을 제대로 파악함으로써 C++에 대한 지식의 폭을 넓힐 수 있다. 또한 객체지향 설계 방식을 이해하고 최신 디버깅 기술도 익힐 수 있다. 나아가 일상 개발 업무에 당장 적용할 수 있는 재사용성 관련 기법을 풍부하게 갖출 수 있다. C++20 기반의 더 나은 C++ 프로그래머가 될 수 있는 절호의 기회를 놓치지 않길 바란다.
대상 독자
● C++를 수년 동안 사용한 경험이 있는 개발자
● C++의 고급 기능에 익숙하지 않거나 사용한 적이 없는 개발자
● C++ 실력을 전문가 수준으로 끌어올리고 싶은 중급 개발자
● C++로 설계하는 방법이나 바람직한 프로그래밍 스타일이 궁금한 사람
● C++ 경험은 부족하지만 처음부터 올바르게 배우고 싶은 사람
주요 내용
● C++의 방대한 기능을 최대한 활용하여 효과적인 솔루션을 개발할 수 있도록 C ++ 사고방식을 제시한다.
● 어설프게 알고 있거나 실수하기 쉬운 부분을 바로잡고 효율과 성능을 높이는 다양한 팁과 기법, 우회 전략을 소개한다.
● 당장 프로젝트에서 마주치고 적용할 수 있는 현실적인 문제와 프로그램 예제를 소개한다.
● 모듈, 콘셉트, 3방향 비교, 즉시 실행 함수를 비롯한 C++20부터 새로 추가된 기능을 소개한다.
● 텍스트 포매팅, 범위, 아토믹 스마트 포인터, 동기화 요소, 날짜, 시간대 등 C++20부터 새로워진 표준 라이브러리의 주요 기능을 심도 있게 살펴본다.

목차

[PART I 전문가를 위한 C++ 첫걸음]

CHAPTER 1 C++와 표준 라이브러리 초단기 속성 코스
_1.1 C++의 기초
_1.2 어느 정도 규모 있는 첫 C++ 프로그램
_1.3 정리
_1.4 연습 문제

CHAPTER 2 스트링과 스트링 뷰 다루기
_2.1 동적 스트링
_2.2 스트링 포맷 지정
_2.3 정리
_2.4 연습 문제

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

[PART II 전문가다운 C++ 소프트웨어 설계 방법]

CHAPTER 4 전문가답게 C++ 프로그램 설계하기
_4.1 프로그램 설계의 정의
_4.2 프로그램 설계의 중요성
_4.3 C++에 적합한 설계 방법
_4.4 C++ 설계에 관련된 두 가지 원칙
_4.5 코드 재사용
_4.6 체스 프로그램 설계
_4.7 정리
_4.8 연습 문제

CHAPTER 5 객체지향 설계
_5.1 절차형 사고방식
_5.2 객체지향 철학
_5.3 클래스 세상에 살기
_5.4 클래스 관계
_5.5 정리
_5.6 연습 문제

CHAPTER 6 재사용을 고려한 설계
_6.1 재사용 철학
_6.2 코드를 재사용할 수 있도록 설계하는 방법
_6.3 정리
_6.4 연습 문제

[PART III 전문가답게 C++ 코딩하기]

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

CHAPTER 8 클래스와 객체 이해
_8.1 스프레드시트 예제
_8.2 클래스 작성 방법
_8.3 객체의 라이프 사이클
_8.4 정리
_8.5 연습 문제

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

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

CHAPTER 11 C++의 까다롭고 유별난 부분
_11.1 모듈
_11.2 헤더 파일
_11.3 언어 핵심 기능에 대한 테스트 매크로
_11.4 static 키워드
_11.5 C 유틸리티
_11.6 정리
_11.7 연습 문제

CHAPTER 12 템플릿으로 제네릭 코드 만들기
_12.1 템플릿 소개
_12.2 클래스 템플릿
_12.3 함수 템플릿
_12.4 변수 템플릿
_12.5 콘셉트
_12.6 정리
_12.7 연습 문제

CHAPTER 13 C++ I/O 심층 분석
_13.1 스트림 사용법
_13.2 스트링 스트림
_13.3 파일 스트림
_13.4 양방향 I/O
_13.5 파일시스템 지원 라이브러리
_13.6 정리
_13.7 연습 문제

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 사용자 정의 리터럴 연산자 오버로딩
_15.11 정리
_15.12 연습 문제

CHAPTER 16 C++ 표준 라이브러리 둘러보기
_16.1 코드 작성 원칙
_16.2 C++ 표준 라이브러리 둘러보기
_16.3 정리
_16.4 연습 문제

CHAPTER 17 반복자와 범위 라이브러리
_17.1 반복자
_17.2 스트림 반복자
_17.3 반복자 어댑터
_17.4 범위
_17.5 정리
_17.6 연습 문제

CHAPTER 18 표준 라이브러리 컨테이너
_18.1 컨테이너 개요
_18.2 순차 컨테이너
_18.3 컨테이너 어댑터
_18.4 정렬 연관 컨테이너
_18.5 비정렬 연관 컨테이너 - 해시 테이블
_18.6 기타 컨테이너
_18.7 정리
_18.8 연습 문제

CHAPTER 19 함수 포인터, 함수 객체, 람다 표현식
_19.1 함수 포인터
_19.2 메서드 및 데이터 멤버를 가리키는 포인터
_19.3 std::function
_19.4 함수 객체
_19.5 람다 표현식
_19.6 std::invoke( )
_19.7 정리
_19.8 연습 문제

CHAPTER 20 표준 라이브러리 알고리즘 완전 정복
_20.1 알고리즘 개요
_20.2 표준 라이브러리 알고리즘 심층 분석
_20.3 정리
_20.4 연습 문제

CHAPTER 21 스트링 현지화와 정규 표현식
_21.1 현지화
_21.2 정규 표현식
_21.3 정리
_21.4 연습 문제

CHAPTER 22 날짜와 시간 유틸리티
_22.1 컴파일 시간 유리수
_22.2 duration
_22.3 clock
_22.4 time_point
_22.5 날짜
_22.6 타임존
_22.7 정리
_22.8 연습 문제

CHAPTER 23 무작위수 기능
_23.1 C 스타일 무작위수 생성
_23.2 무작위수 엔진
_23.3 무작위수 엔진 어댑터
_23.4 기본 제공 엔진과 엔진 어댑터
_23.5 무작위수 생성하기
_23.6 무작위수 분포
_23.7 정리
_23.8 연습 문제

CHAPTER 24 기타 라이브러리 유틸리티
_24.1 어휘 타입
_24.2 tuple
_24.3 정리
_24.4 연습 문제

[PART IV C++ 고급 기능 마스터하기]

CHAPTER 25 표준 라이브러리 커스터마이즈 및 확장 방법
_25.1 할당자
_25.2 표준 라이브러리 확장하기
_25.3 정리
_25.4 연습 문제

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

CHAPTER 27 C++ 멀티스레드 프로그래밍
_27.1 들어가며
_27.2 스레드
_27.3 아토믹 연산 라이브러리
_27.4 뮤텍스
_27.5 상태 변수
_27.6 래치
_27.7 배리어
_27.8 세마포어
_27.9 퓨처
_27.10 멀티스레드 Logger 클래스 예제
_27.11 스레드 풀
_27.12 코루틴
_27.13 바람직한 스레드 디자인과 구현을 위한 가이드라인
_27.14 정리
_27.15 연습 문제

[PART V C++ 소프트웨어 공학]

CHAPTER 28 소프트웨어 공학 기법
_28.1 프로세스의 필요성
_28.2 소프트웨어 라이프 사이클 모델
_28.3 소프트웨어 공학 방법론
_28.4 나만의 프로세스와 방법론 만들기
_28.5 소스 코드 관리
_28.6 정리
_28.7 연습 문제

CHAPTER 29 효율적인 C++ 코드 작성법
_29.1 성능과 효율에 대하여
_29.2 언어 수준의 효율
_29.3 설계 수준 효율
_29.4 프로파일링
_29.5 정리
_29.6 연습 문제

CHAPTER 30 테스트 숙달하기
_30.1 품질 관리
_30.2 단위 테스트
_30.3 퍼징
_30.4 하이레벨 테스트
_30.5 성공적인 테스트를 위한 팁
_30.6 정리
_30.7 연습 문제

CHAPTER 31 디버깅 완전 정복
_31.1 디버깅 기본 원칙
_31.2 버그 분류
_31.3 버그 방지
_31.4 버그 대비
_31.5 디버깅 테크닉
_31.6 정리
_31.7 연습 문제

CHAPTER 32 설계 기법과 프레임워크
_32.1 흔히 사용하지만 까먹기 쉬운 문법
_32.2 고급 기법
_32.3 객체지향 프레임워크
_32.4 정리
_32.5 연습 문제

CHAPTER 33 디자인 패턴
_33.1 의존성 주입
_33.2 추상 팩토리 패턴
_33.3 팩토리 메서드 패턴
_33.4 어댑터 패턴
_33.5 프록시 패턴
_33.6 반복자 패턴
_33.7 옵저버 패턴
_33.8 데코레이터 패턴
_33.9 책임 사슬 패턴
_33.10 싱글턴 패턴
_33.11 정리
_33.12 연습 문제

CHAPTER 34 크로스 플랫폼과 크로스 언어 애플리케이션 개발 방법
_34.1 크로스 플랫폼 개발
_34.2 크로스 언어 개발
_34.3 정리
_34.4 연습 문제

[PART VI 부록]

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

교환 및 환불안내

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