<나는 리뷰어다> 9월 이벤트 당첨으로 작성한 리뷰 입니다.
[한줄평]
최신 C++를 마스터하려면 알아야 할 C++와 C++17의 모든 것 아낌 없이 알려준다
[목차구성]
[Part 1 전문가를 향한 C++의 첫걸음]
CHAPTER 1 C++와 표준 라이브러리 초단기 속성 코스
CHAPTER 2 스트링과 스트링 뷰 다루기
CHAPTER 3 코딩 스타일
[Part 2 전문가답게 C++ 소프트웨어 디자인하기]
CHAPTER 4 전문가다운 C++ 프로그램 디자인
CHAPTER 5 객체지향 디자인
CHAPTER 6 재사용을 고려한 디자인
[Part 3 전문가답게 C++ 코딩하기]
CHAPTER 7 메모리 관리
CHAPTER 8 클래스와 객체 숙달하기
CHAPTER 9 클래스와 객체 마스터하기
CHAPTER 10 상속 활용하기
CHAPTER 11 C++의 까다롭고 유별난 부분
CHAPTER 12 템플릿으로 제네릭 코드 만들기
CHAPTER 13 C++ I/O 완전 분석
CHAPTER 14 에러 처리하기
CHAPTER 15 C++ 연산자 오버로딩하기
CHAPTER 16 C++ 표준 라이브러리 둘러보기
CHAPTER 17 컨테이너와 반복자 살펴보기
CHAPTER 18 표준 라이브러리 알고리즘 마스터하기
CHAPTER 19 스트링 현지화와 정규 표현식
CHAPTER 20 여러 가지 유틸리티 라이브러리
[Part 4 C++ 고급 기능 마스터하기]
CHAPTER 21 표준 라이브러리 커스터마이즈 및 확장
CHAPTER 22 고급 템플릿
CHAPTER 23 C++ 멀티스레드 프로그래밍
[Part 5 C++ 소프트웨어 공학]
CHAPTER 24 소프트웨어 공학 기법
CHAPTER 25 효율적인 C++ 코드 작성법
CHAPTER 26 테스트 숙달하기
CHAPTER 27 디버깅 완전 정복
CHAPTER 28 디자인 기법과 프레임워크
CHAPTER 29 디자인 패턴
CHAPTER 30 크로스 플랫폼과 크로스 언어 애플리케이션 개발 방법
[부록 A] C++ 면접 예상 질문
[부록 B] 참고 문헌
[부록 C] 표준 라이브러리 헤더 파일
[부록 D] UML 기초
[대상 독자]
C++를 수년 동안 사용하더라도 C++ 고급 기능에 익숙하지 않거나 고급 기능을 사용한 적이 거의 없는 사람이 있다. C++ 코딩에는 자신 있지만 C++로 디자인하는 방법이나 바람직한 프로그래밍 스타일을 자세히 알고 싶은 사람도 있다. 또한 C++ 경험은 부족하지만 실전에 제대로 활용하는 방법을 배우고 싶은 사람도 있다. 이 책은 C++ 실력을 전문가 수준으로 끌어올리려는 분 모두를 대상으로 한다.
[이 책의 주요 특징]
- C++의 방대한 기능을 최대한 활용하여 효과적인 솔루션을 개발할 수 있도록 C ++ 사고방식을 제시한다.
- 어설프게 알고 있거나 실수하기 쉬운 부분을 바로 잡고 효율과 성능을 높이는 다양한 팁과 기법, 우회전략을 소개한다.
- 당장 프로젝트에서 마주치고 적용할 수 있는 현실적인 문제와 프로그램 예제를 소개한다.
- 구조적 바인딩, 중첩 네임스페이스, constexpr if를 비롯한 C++17부터 새로 추가된 기능을 소개한다.
- string_view, optional, 병렬 알고리즘, 파일시스템 API 등 C++17부터 새로워진 표준 라이브러리의 주요 기능을 심도 있게 살펴본다.
[서평]
이책은 C++ 문법만 알려 주는 책이 아니다. 정말 C++ 전문가 아니 프로 프로그래머로 가기 위해서 한번 읽어 봐야할 내용들이 많이 있다. C++ 17에 추가된 핵심기능인 람다, 파일시스템, 템플릿, 표준 라이브러리(STL), 문자열, 입출력과 같은 기본부터 제네릭 코드 작성, 타입 추론 템플릿 재귀, 메타 프로그래밍, 메모리관리, 멀티스레드 같은 고급 기능까지 다루고 있다. 소프트웨어 엔지니어링 측면에서도 알아야할 버전관리, 소프트웨어 개발 방법론, 코드 최적화, 테스팅, 디버깅, 프레임워크, 디자인 패턴까지 소개해 C++ 전문가가 되고 싶은 독자는 물론 다른 언어 개발자도 한번 눈여겨 볼만한 개발 기법들을 알려주고 있어 같이 봐도 좋을 것 입니다.
이 책의 전체 적인 구성은 총 5파트로 되어 있습니다. 1부에서는 전문가를 향한 C++의 첫걸음으로 C++ 기초 코스로 이루어져 있습니다. 스트링과 스트링 뷰 다루는 방법과 C++코드를 읽기 쉽게 작성하는 방법을 배울수 있습니다. 2부에서는 전문가답게 C++ 소프트웨어 디자인하기로 디자인 방법론, 객체지향 방법론, 코드 재사용의 중요성 등을 설명하고 있습니다. 3부에서는 전문가답게 C++ 코딩하기로 C++를 다루는 기법을 소개 합니다. C++에서 메모리를 관리하기 위한 바람직한 방법, 재사용 가능한 클래스 작성법, 상속과 같이 언어의 주요 기능을 최대한 활용하는 방법 등을 소개한다. 또한 C++의 까다롭고 미묘한 기능, 입력과 출력을 다루는 방법, 에러 처리 방법, 스트링 현지화 방법, 정규 표현식 사용법 등도 소개한다. 연산자 오버로딩, 템플릿 작성법도 설명한다. 컨테이너, 반복자, 제네릭 알고리즘 등을 제공하는 C++ 표준 라이브러리도 소개한다. 표준 라이브러리에서 제공하는 시간, 무작위수, 파일시스템 등과 관련된 기능도 살펴본다. 4부에서는 고급 기능 마스터하기로 C++에서 잘 알려지지 않은 기능을 소개하고 고급 수준에 해당하는 기능을 사용하는 방법을 배웁니다. C++ 표준 라이브러리를 커스터마이즈하고 확장하는 방법, 템플릿 메타 프로그래밍 같은 템플릿 프로그래밍의 고급 기법, 멀티프로세서 및 멀티코어 시스템을 최대한 활용하기 위한 멀티스레드 프로그래밍 방법도 다룹니다. 마지막 5부에서는 C++ 소프트웨어 공학파트로 엔터프라이즈 수준의 소프트웨어를 작성하는 방법을 소개합니다. 현업에서 사용하는 최신 소프트웨어 공학기법과 효율적인 C++ 코드 작성 방법, 단위 테스트나 회귀 테스트를 비롯한 다양한 테스트 방법론, C++ 프로그램 디버깅 기법을 설명합니다. 또한 디자인 기법, 프레임워크, 객체지향 패턴을 한데 엮은 방법을 설명하고 크로스 언어 및 크로스 플랫폼을 위한 코드 작성 방법을 소개합니다.
『전문가를 위한 C++』(개정4판)은 C++에 대한 모든 내용을 코드와 솔루션 위주로 소개한다. 그리고 실전 프로그래밍에 적용할 수 있는 현실적인 기법을 다양하게 소개하였으며, 본 교재는 C++를 더 깊이 이해하려는 프로그래머에게 적합한 책이다.