도서상세보기

도서명 아름다운 C++ : 클린하고 안전하며 빠른 코드 작성을 위한 핵심 가이드라인 30선
저자 가이 데이비드슨, 케이트 그레고리
출판사 제이펍
출판일 2024-08-02
정가 33,000원
ISBN 9791193926185
수량
옮긴이 머리말 xii
베타리더 후기 xiii
선정 가이드라인 목록 xvi
추천 서문(비야네 스트롭스트룹 xvii
시작하며 xix
감사의 글 xxiv

PART 1 사소한 것 때문에 중요한 문제를 놓치지 말자
CHAPTER 1.1 [P.2] ISO 표준 C++로 작성하라 3
__1.1.1 ISO 표준 C++란 무엇인가? 3
__1.1.2 차이를 캡슐화하기 5
__1.1.3 예전 방식 학습하기 9
__1.1.4 표준 개발 현황 파악하기 11
CHAPTER 1.2 [F.51] 선택의 여지가 있다면 오버로딩 대신 기본 인수를 사용하라 13
__1.2.1 소개 13
__1.2.2 추상화 다듬기: 추가 인수냐, 오버로딩이냐 14
__1.2.3 오버로드 확인의 미묘한 차이 16
__1.2.4 예제로 돌아가기 18
__1.2.5 모호하지 않다는 기본 인수의 특성 19
__1.2.6 오버로드의 대안 21
__1.2.7 반드시 오버로드해야 하는 경우 21
__1.2.8 요약 22
CHAPTER 1.3 [C.45] 데이터 멤버를 초기화하기만 하는 기본 생성자를 정의하지 말고 기본 멤버 초기화자로 초깃값을 설정하라 24
__1.3.1 어쨌거나 기본 생성자가 있는 이유는? 24
__1.3.2 데이터 멤버를 초기화하려면? 26
__1.3.3 두 사람이 클래스 하나를 유지보수하면 무슨 일이 발생하나요? 28
__1.3.4 요약 31
CHAPTER 1.4 [C.131] 자명한 getter와 setter는 피하라 32
__1.4.1 아주 오래된 이디엄 32
__1.4.2 추상화 33
__1.4.3 단순한 캡슐화 36
__1.4.4 클래스 불변 조건 39
__1.4.5 명사와 동사 41
__1.4.6 요약 42
CHAPTER 1.5 [ES.10] 선언당 단 하나의 이름만 선언하라 43
__1.5.1 소개합니다 43
__1.5.2 하위 호환성 47
__1.5.3 더 명확하게 선
클린하고 안전하며 빠른 코드 작성을 위한 핵심 가이드라인 30선

C++는 역사가 오래되었고, 긴 시간에 걸쳐 언어 자체는 물론 그 작성법도 진화했다. 비야네 스트롭스트룹(C++ 창시자과 허브 서터가 작성한, C++ 코딩 스타일 가이드의 바이블이라고 할 수 있는 오픈 소스 ‘C++ 핵심 가이드라인(C++ Core Guidelines’ 역시 지금 이 순간에도 끝없이 개정되고 있다.
백과사전처럼 구성된 핵심 가이드라인 전체를 차례대로 정독하는 것은 지루한 일이다. 이 책은 256개에 달하는 핵심 가이드라인 중에서도 정수 30개를 선별해 다섯 개 카테고리로 묶고, 맥락과 함께 가이드라인의 내용을 해설한다. 경험 많은 게임 프로그래머 가이 데이비슨과 C++ 강연으로 유명한 케이트 그레고리가 실제 사례와 실무 지식을 덧붙여 공식 C++ 핵심 가이드라인 웹사이트와 긴밀하게 연계되도록 집필했다.
전문적인 샘플 코드를 통해, 긴 역사만큼이나 오용되는 지식을 바로잡고 추상화, 템플릿, 타입 안전성 등 주요 프로그래밍 개념에 대한 통찰력을 얻을 수 있다. 레거시 코드나 지침을 무조건 배척하는 대신, 개념의 원래 의미와 역사적 맥락을 돌아보고 예시를 살펴본다. 새로운 언어 기능과 오래된 언어 기능 모두를 성공적으로 사용하는 검증된 방법을 조명함으로써, 기본적으로(by default 강력하고 성능이 뛰어난 프로그램을 작성하는 방법을 보여준다. ‘핵심 가이드라인의 핵심’을 유려하게 풀어내는 아름다운 책이다.

주요 내용
‘바이크셰딩’ 방지하기(사소한 것 때문에 중요한 문제를 놓치지 말자
나중에 문제를 일으킬 수 있는 코드를 작성하지 않기
피해야 할 레거시 기능과 대신 사용할 최신 기능을 파악하기
최신 기능을 올바르게 사용하여 새로운 문제를 일으키지 않고 이점을 누리기
정적으로 타입 안전하며, 누출이 없고, 발전시키기 쉬운 고품질 코드를 기본값으로 삼기
모든 C++ 버전(C++11, C++14, C++17, C++20에서 핵심 가이드라인 사용하기