최신 C++를 마스터하기 위해 알아야 할 C++와 C++14의 모든 것
C++ 전문가가 되기 위해 필요한 내용을 조목조목 옮겼다. C++의 기본 기능에서 널리 알려지지 않았던 기능까지 설명한다. 오랜 역사를 지닌 C++ 언어에 대한 오해와 올바른 프로그래밍 방법을 소개한다. C++ 언어의 핵심 기능, 템플릿, 표준 라이브러리(STL), 문자열, 입출력과 같은 기본부터 제네릭 코드 작성, 타입 추론, 템플릿 재귀, 메타프로그래밍, 메모리 관리, 멀티스레드 같은 고급 기능까지 다룬다. 소프트웨어 엔지니어링 측면에서 알아야 할 버전 관리, 소프트웨어 개발 방법론, 코드 최적화, 테스팅, 디버깅, 프레임워크, 디자인 패턴까지 소개해 C++ 전문가가 되고 싶은 독자는 물론 현업 C++ 전문가도 전체 지식을 복습할 수 있게 했다.
대상독자
수년 동안 C++를 사용해왔다고 할지라도 익숙하지 않거나 알지 못했던 기능 때문에 C++의 능력을 100% 활용하지 못했을 수 있다. C++를 활용하는 데 어느 정도 자신감이 있더라도 C++에서의 디자인 방법론을 더 연마하거나 좋은 디자인 스타일을 배우고 싶을 수 있다.
그리고 어떤 경우에는 C++를 처음으로 접하면서 올바른 방식으로 첫 단추를 꿰고 싶을 수 있다. 이 책은 C++ 초·중급 수준의 지식을 가진 사람이 C++ 전문가로 성장할 수 있도록 돕는 데 초점이 맞추어져 있기 때문에 C++를 조금이라도 접해본 사람을 대상으로 한다.
이 책의 내용
- 실용적인 문제를 기반으로 한 예제를 통한 학습
- 윈도우와 리눅스에서 테스트된 광범위하고 상세한 예제 코드
- 좋은 프로그래밍 스타일로 이끄는 요령과 테크닉 그리고 디버깅 방법론
- 제네릭 람다, 람다 캡쳐 표현식, 함수 리턴 타입 연역, 이진 리터럴 등 최신 기능
- make_unique, 투명 함수 객체, 타입을 통한 튜플 항목 접근, 공유 뮤텍스와 락 등 최신 표준 라이브러리 기능
이 책의 상세 구성
< 1부 전문가를 위한 C++ 개요>
C++의 기초적인 부분을 둘러보고 C++를 배우기 위한 기초를 닦는다. 기초적인 부분을 둘
러본 다음에는 문자열의 활용 방법에 대해 깊이 있게 살펴본다. 대부분의 예제에서 문자열
을 많이 이용하기 때문에 문자열에 대한 이해가 먼저 필요하다. 1부의 마지막에서는 가독성
높은 C++ 코드를 어떻게 작성할 수 있는지 알아본다.
<2부 전문가다운 C++ 소프트웨어 디자인>
C++ 디자인 방법론을 다룬다. 디자인이 왜 중요한지, 객체지향 방법론이 무엇인지, 코드의
재사용이 왜 중요한지 알게 될 것이다.
<3부 전문가다운 코딩 방법>
C++의 기술적인 부분을 전문적인 관점에서 살펴본다. 재사용 가능한 클래스를 만드는 방법,
상속과 같은 C++의 중요한 기능을 활용하는 방법을 이야기한다. 그리고 C++만
이 가진 특이 사항, 입출력 테크닉, 에러 처리, 문자열 로컬라이제이션, 정규 표현식의 사용
법도 알아본다. C++ 표준 라이브러리의 컨테이너, 반복자, 알고리즘에 대해서도 설명한다.
시간과 날짜 처리나 랜덤 숫자를 활용하기 위한 부가적인 라이브러리 기능도 알아본다.
<4부 C++ 고급 기능 마스터하기>
C++의 기능을 최대로 활용하는 예제를 소개한다. C++의 다소 난해한 기능과 그러한 기능
을 이용하는 고급 테크닉을 설명한다. C++ 표준 라이브러리를 필요에 따라 커스터마이즈
하고 확장하는 방법, 가장 효과적인 메모리 관리 방법, 고급 템플릿 프로그래밍과 템플릿 메
타프로그래밍, 멀티프로세서와 멀티코어를 활용하기 위한 멀티스레딩의 활용 방법 등을 포
함한다.
<5부 C++ 소프트웨어 엔지니어링>
상용 수준의 소프트웨어 품질을 어떻게 달성할 수 있는지에 초점을 맞추어 오늘날 여러 소
프트웨어 회사에서 채용하고 있는 소프트웨어 엔지니어링 사례와 C++ 프로그램 디버깅 테
크닉과 효과적인 C++ 코드 작성법을 알아본다.
<부록>
부록에서는 C++ 개발자 인터뷰에서 유용하게 활용할 수 있는 각 장별 가이드와 참고 문헌
그리고 C++ 표준 라이브러리의 헤더 파일에 대한 요약이 제공된다.