전문가를 위한 C++ (개정5판)

전문가를 위한 C++ (개정5판)

$79.08
Description
더 쉽게, 더 빠르게, 더 깔끔하게!
프로그래머가 알아야 할 C++와 C++20의 모든 것
C++는 마스터하기 어렵기로 악명 높지만, 풍부한 기능 덕분에 게임이나 상용 소프트웨어 애플리케이션을 개발하는 대표 언어로 자리매김했다. 숙련된 C++ 프로그래머조차 잘 모르는 고급 기능도 많은데, 최신 C++20이 나온 지금이야말로 C++의 모든 기능을 살펴볼 절호의 기회다.
『전문가를 위한 C++(개정5판)』은 C++20에 새로 추가된 기능과 관련 도구를 비롯해 C++에 대한 모든 내용을 코드와 솔루션 위주로 소개한다. 실전 프로그래밍에 적용할 수 있는 현실적인 기법을 다양하게 소개하므로 C++를 더 깊이 이해하려는 프로그래머에게 적합하다.

저자

마크그레고리

저자:마크그레고리
벨기에출신소프트웨어아키텍트.루벤대학교에서컴퓨터과학과인공지능분야의석사과정을우수한성적으로졸업했다.소프트웨어컨설팅회사인오디나벨지움(OrdinaBelgium)에서컨설턴트로근무하면서지멘스와노키아지멘스네트웍스에서통신시스템운영자를위한솔라리스기반2G및3G관련소프트웨어업무를담당했다.이과정에서남미,미국,유럽,중동,아프리카,아시아를비롯한전세계출신의개발자와협업하는경험을했다.현재3D형상검사용정밀광학장비와메트롤로지솔루션을공급하는니콘메트롤로지NikonMetrology에서소프트웨어아키텍트로근무한다.전문분야는C/C++이며마이크로소프트VC++와MFC프레임워크경험이풍부하다.이와관련하여윈도우와리눅스플랫폼에서하루24시간,7일동안구동하는KNX/EIB홈오토메이션소프트웨어를C++로개발한경험이있다.C/C++외에도C#과PHP를이용한웹페이지제작을즐긴다.

역자:남기혁
고려대학교컴퓨터학과에서학부와석사과정을마친후한국전자통신연구원에서선임연구원으로재직하고있다.한빛미디어에서『Make:센서』(2015),『메이커매뉴얼』(2016),『이펙티브디버깅』(2017),『리팩터링2판』(2020),『전문가를위한C++(4판)』(2019)을,길벗에서『핵심C++표준라이브러리(2판)』(2021),『모던C』(2022)를,에이콘출판사에서『Go마스터하기』(2018),『자율주행자동차만들기』(2019,2022),『스콧애론슨의양자컴퓨팅강의』(2021)등을번역했다.

목차

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CHAPTER14에러처리
_14.1에러와예외
_14.2익셉션처리방법
_14.3익셉션과다형성
_14.4익셉션다시던지기
_14.5스택풀기와정리
_14.6익셉션처리과정에서흔히발생하는문제
_14.7정리
_14.8연습문제

CHAPTER15C++연산자오버로딩
_15.1연산자오버로딩개요
_15.2산술연산자오버로딩
_15.3비트연산자와논리연산자오버로딩
_15.4스트림입력과출력연산자오버로딩
_15.5인덱스연산자오버로드하기
_15.6함수호출연산자오버로드하기
_15.7역참조연산자오버로드하기
_15.8변환연산자구현하기
_15.9메모리할당및해제연산자오버로딩
_15.10사용자정의리터럴연산자오버로딩
_15.11정리
_15.12연습문제

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

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

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

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

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

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

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

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

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

[PARTIVC++고급기능마스터하기]

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

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

CHAPTER27C++멀티스레드프로그래밍
_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연습문제

[PARTVC++소프트웨어공학]

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

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

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

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

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

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

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

[PARTVI부록]

APPENDIXAC++면접예상질문
APPENDIXB참고문헌
APPENDIXC표준라이브러리헤더파일
APPENDIXDUML기초

출판사 서평

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부터새로워진표준라이브러리의주요기능을심도있게살펴본다.