HOME > 상세정보

상세정보

(전문가를 위한) C++ : C++20, 병렬 알고리즘, 파일시스템, 제네릭 람다, 디자인 패턴, 객체지향의 원리를 익히는 확실한 방법

자료유형
단행본
개인저자
Grégoire, Marc 남기혁, 역
서명 / 저자사항
(전문가를 위한) C++ : C++20, 병렬 알고리즘, 파일시스템, 제네릭 람다, 디자인 패턴, 객체지향의 원리를 익히는 확실한 방법 / Marc Gregoire 지음 ; 남기혁 옮김
발행사항
서울 :   한빛미디어,   2023  
형태사항
1691 p. : 삽화, 도표 ; 24 cm
원표제
Professional C++ (5th ed.)
ISBN
9791169210898
일반주기
부록: C++ 면접 예상 질문, 표준 라이브러리 헤더 파일, UML 기초  
서지주기
참고문헌(p. 1622-1633)과 색인수록
일반주제명
C++ (Computer program language)
000 00000cam c2200205 c 4500
001 000046155962
005 20230809150553
007 ta
008 230809s2023 ulkad b 001c kor
020 ▼a 9791169210898 ▼g 93000
035 ▼a (KERIS)BIB000016701408
040 ▼a 011001 ▼c 011001 ▼d 211009
041 1 ▼a kor ▼h eng
082 0 1 ▼a 005.133 ▼2 23
085 ▼a 005.133 ▼2 DDCK
090 ▼a 005.133 ▼b C110 2023z3
100 1 ▼a Grégoire, Marc ▼0 AUTH(211009)154459
245 2 0 ▼a (전문가를 위한) C++ : ▼b C++20, 병렬 알고리즘, 파일시스템, 제네릭 람다, 디자인 패턴, 객체지향의 원리를 익히는 확실한 방법 / ▼d Marc Gregoire 지음 ; ▼e 남기혁 옮김
246 1 9 ▼a Professional C++ ▼g (5th ed.)
260 ▼a 서울 : ▼b 한빛미디어, ▼c 2023
300 ▼a 1691 p. : ▼b 삽화, 도표 ; ▼c 24 cm
500 ▼a 부록: C++ 면접 예상 질문, 표준 라이브러리 헤더 파일, UML 기초
504 ▼a 참고문헌(p. 1622-1633)과 색인수록
650 0 ▼a C++ (Computer program language)
700 1 ▼a 남기혁, ▼e▼0 AUTH(211009)85647
900 1 0 ▼a 그레고리, 마크, ▼e
945 ▼a ITMT

소장정보

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.133 C110 2023z3 등록번호 121263797 도서상태 대출가능 반납예정일 예약 서비스 B M

컨텐츠정보

책소개

더 쉽게, 더 빠르게, 더 깔끔하게! 프로그래머가 알아야 할 C++와 C++20의 모든 것. C++는 마스터하기 어렵기로 악명 높지만, 풍부한 기능 덕분에 게임이나 상용 소프트웨어 애플리케이션을 개발하는 대표 언어로 자리매김했다. 숙련된 C++ 프로그래머조차 잘 모르는 고급 기능도 많은데, 최신 C++20이 나온 지금이야말로 C++의 모든 기능을 살펴볼 절호의 기회다.

『전문가를 위한 C++(개정5판)』은 C++20에 새로 추가된 기능과 관련 도구를 비롯해 C++에 대한 모든 내용을 코드와 솔루션 위주로 소개한다. 실전 프로그래밍에 적용할 수 있는 현실적인 기법을 다양하게 소개하므로 C++를 더 깊이 이해하려는 프로그래머에게 적합하다.

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

관련 서적(제목 + ISBN)
C++ 최적화 / 9791162241981
이것이 C++이다 / 9788968482465
뇌를 자극하는 C++ STL / 9788979149135


정보제공 : Aladin

저자소개

마크 그레고리(지은이)

벨기에 출신 소프트웨어 아키텍트. 루벤 대학교에서 컴퓨터 과학과 인공지능 분야의 석사 과정을 우수한 성적으로 졸업했다. 소프트웨어 컨설팅 회사인 오디나 벨지움(Ordina Belgium)에서 컨설턴트로 근무하면서 지멘스와 노키아 지멘스 네트웍스에서 통신 시스템 운영자를 위한 솔라리스 기반 2G 및 3G 관련 소프트웨어 업무를 담당했다. 이 과정에서 남미, 미국, 유럽, 중동, 아프리카, 아시아를 비롯한 전 세계 출신의 개발자와 협업하는 경험을 했다. 현재 3D 형상 검사용 정밀 광학 장비와 메트롤로지 솔루션을 공급하는 니콘 메트롤로지Nikon Metrology(www.nikonmetrology.com)에서 소프트웨어 아키텍트로 근무한다. 전문 분야는 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) 등을 번역했다.

정보제공 : Aladin

목차

[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 기초

관련분야 신착자료

Muthu, Subramanian Senthilkannan (2022)
Musib, Somnath (2023)