메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

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

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

한빛미디어

번역서

판매중

  • 저자 : 마크 그레고리
  • 번역 : 남기혁
  • 출간 : 2023-03-30
  • 페이지 : 1692 쪽
  • ISBN : 9791169210898
  • 물류코드 :11089
  • 구판정보 :이 도서는 <전문가를 위한 C++(개정4판)>의 개정판입니다. 구판 정보 보기
  • 초급 초중급 중급 중고급 고급
4.9점 (34명)
좋아요 : 5

더 쉽게, 더 빠르게, 더 깔끔하게!

프로그래머가 알아야 할 C++와 C++20의 모든 것

 

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

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

 

상세이미지_전문가를 위한 C++(개정5판)_700px.jpg

 

마크 그레고리 저자

마크 그레고리

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

전문 분야는 C/C++이며 마이크로소프트 VC++와 MFC 프레임워크 경험이 풍부하다. 이와 관련하여 윈도우와 리눅스 플랫폼에서 하루 24시간, 7일 동안 구동하는 KNX/EIB 홈오토메이션 소프트웨어를 C++로 개발한 경험이 있다. C/C++ 외에도 C#과 PHP를 이용하여 웹 페이지를 제작하는 것을 즐긴다. VC++에 대한 전문성을 인정받아 2007년 4월부터 현재까지 매년 마이크로소프트 MVP로 선정됐다. 벨기에 C++ 사용자 그룹(www.becpp.org) 창립자, 『C++ Standard Library Quick Reference』(Apress) 공저자, 여러 출판사의 기술 편집자, 코드구루(CodeGuru) 포럼의 멤버(아이디 Marc G)이기도 하다. 개인 블로그(www.nuonsoft.com/blog)도 운영하고 있으며, 여행과 맛집 탐방을 즐긴다.

 

 

남기혁 역자

남기혁

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

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

 

7. 관련 서적(제목 + ISBN)

C++ 최적화 / 9791162241981

이것이 C++이다 / 9788968482465

뇌를 자극하는 C++ STL / 9788979149135

 

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

※ 한빛미디어 <나는 리뷰어다>활동을 위해서 책을 제공받아 작성된 서평입니다.

장점

1.   C++ 언어에 대한 이해도를 높일 수 있으며, 코드 품질, 프로그래밍 효율,C++20의 새로운 기능 등을 다룰 수 있음

2.   C++ 프로젝트 경험이 있는 개발자를 대상으로하여 보다 현업에 쓰이는 고급 기능을 다룸

3.   코딩 실력 뿐만 아닌 하드웨어에 대한 이해도를 높일 수 있으며 C++ 면접 예상 질문을 다룸

단점

1.   자세하고 방대한 양을 다루어 간결한 걸 좋아하는 분들에게는 단점일 수 있음

후기

1. 최근 코딩 테스트로 인해 C++을다시 보는 중이다. 책을 읽으면서 책의 내용과 난이도에 대해 자세하게 설명되어 있어서 훓어보는걸 좋아하는사람에게는 책의 난이도가 높아 어렵다고 느낄 수 있을거 같다. 책의 후반에는 면접 예상 질문도 있어저자의 개발하면서 느낀 경험을 공유해주는 책이라고 느꼈다.

 

화면 캡처 2023-08-31 190842.png

 

 

 

서평 : 4줄 요약

1. C++의 문법에서 부터 명명 규칙, 클래스 설계 방법, 메모리 관리, 표준 라이브러리 등 넓은 범위를 다루고 있다.

2. C++을 사용하는 프로그래머라면 한 번쯤 꼭 읽어보면 좋을 듯 한 책!

3. 정독하기에는 책의 두께 때문에 힘들지도 모르겠다! but 필요한 부분만 읽어봐도 내용이 상당히 좋다!!

4. 내용은 C++ 기본 서적에서는 볼 수 없는 알찬 내용! 진짜 C++을 사용하는 방법을 알 수 있다!!!

  "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

전문가를 위한 도서 C++ 입니다. 보통 우리는 프로그램을 배울 때 다양한 언어를 배우고 용도에 맞쳐 언어를 선택하게 됩니다. 그러면서 C, C# , C++ , JAVA 등 다양한 언어를 알게 됩니다. 이번에 살펴볼 언어를 C++ 입니다. C++은 C언어가 가지고 있는 문제점 단점을 보안하여 객체지향으로 다양함을 지원하는 언어 입니다. 보통 자바나 C#으로 구현할수도 있지만 대용량 데이터 처리와 빠른 속도를 위해서는 C++을 할 수 밖에 없습니다. 그만큼 C++ 전문가적인 언어라고 할 수 가 있습니다. 

 

 

그렇기 때문에 다른언어를 잘 하는것보다 C++을 잘 한다면 다른언어를 물론 프로그래밍을 확실히 더 많은 지식을 쌓을 수가 있습니다. 이 책은 한빛미디어에서 나온 책으로서 Marc Gregoire  저자로서 C++에 바이블이라고 불리우는 책입니다.

 

 

약 1500페이지가 넘는 C++언어와 최신 트렌드인 C++20, 병렬 알고리즘, 파일시스템, 제네릭 람다, 디자인패턴, 객체지향의 원리를 익히는 확실한 방법을 가지고 있습니다. 초기에 구성은 C++ 기초를 배울 수 있도록 성되어 있습니다. 거기서 기초를 배우면 이제는 우리가 프로그램의 유연성과 유지보수를 위해 많이 사용하는 객체지향을 배울 수가 있습니다. 

 

 

 

이책에서 나온 소스코드를 볼 수가 있습니다. 이 소스코드를 한빛미디어와 wiley 사이트에서 제공이 됩니다. 그렇기 때문에 어렵지 않게 소스를 구해서 구현해볼수가 있습니다. 전문가를 위한 C++ 도서는 처음 접하는 초보자부터 C++ 오랫동안 사용하는 개발자에게도 많은 도움이 되는 책입니다. 흔히 우리는 개발자책을 보는데 있어서 1년 , 2년 매년 마다 보는거와 알아든는게 틀리기 때문에 이책 하나로 오랫동안 내공을 쌓을수가 있습니다.

 

 

전문가를 위한 C++에서는 각 파트마다 다양한 주제를 가지고 공부를 할 수가 있습니다. 전문가답게 C++을 실행하는 방법부터 설계 방법 그리고 디자인패턴과 알고리즘 정복 그리고 실습까지 완벽하게 구현을 할 수가 있으며, C++20의 신규기능을 가지고 있어 모듈,컨셉트, 3방향 비교등 다양하게 구성을 할 수가 있습니다. 

 

 

CHAPTER 1 C++와 표준 라이브러리 초단기 속성 코스

 

 

CHAPTER 2 스트링과 스트링 뷰 다루기

 

 

CHAPTER 3 코딩 스타일

 

 

CHAPTER 4 전문가답게 C++ 프로그램 설계하기

 

 

CHAPTER 5 객체지향 설계

 

 

CHAPTER 6 재사용을 고려한 설계

 

 

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 표준 라이브러리 알고리즘 완전 정복

 

 

CHAPTER 21 스트링 현지화와 정규 표현식

 

 

CHAPTER 22 날짜와 시간 유틸리티

 

 

CHAPTER 23 무작위수 기능

 

 

CHAPTER 24 기타 라이브러리 유틸리티

 

 

CHAPTER 25 표준 라이브러리 커스터마이즈 및 확장 방법

 

 

CHAPTER 26 고급 템플릿

 

 

CHAPTER 27 C++ 멀티스레드 프로그래밍

 

 

CHAPTER 28 소프트웨어 공학 기법

 

 

CHAPTER 29 효율적인 C++ 코드 작성법

 

 

CHAPTER 30 테스트 숙달하기

 

 

CHAPTER 31 디버깅 완전 정복 

 

 

CHAPTER 32 설계 기법과 프레임워크

 

 

CHAPTER 33 디자인 패턴

 

 

CHAPTER 34 크로스 플랫폼과 크로스 언어 애플리케이션 개발 방법

 

 

전문가를 위한 C++에서는 이만큼 다양한 목차를 가지고 있고 배울 수 있도록 되어있습니다. 저는 자바개발자인데 보통 이렇게 할려면 약 4~5권을 책의 봐야합니다. 하지만 이렇게 하나의 책으로 묶여 있는것을 정말 대단하다고 생각합니다. 이책이 왜 바이블로 불리워지면 5판까지 나오는 만큼 좋은 책이라는것을 알 수가 있습니다. 

 

 

 

전문가를 위한 C++를 봐야하는 이유는 단순합니다. 그이유는 아는것과 모르는것의 차이라고 볼 수가 있습니다. 내가 이책을 한번 봤다면 다양한 기능을 알게 됩니다. 그러면 개발과 코딩에 있어서 기술을 접할 수 있고, 아 이러한 기술이 있어지 라고 생각하는 것이라고 할 수가 있습니다. 그렇기 때문에 저는 무조건 프로그램 책을 한번 다 돌리는것을 중요하도고 늘 만합니다. 그만큼 공부할것이 많고 많아지기 때문입니다. C++ 전문가를 위한 책을 원한다면 적극 추천합니다.

 

#C++ #한빛미디어 #전문가를위한 C++ #알고리즘 #객체지향 #제네릭 #람다 #디자인패턴 # 파일시스템전문가를 위한 도서 C++ 입니다. 보통 우리는 프로그램을 배울 때 다양한 언어를 배우고 용도에 맞쳐 언어를 선택하게 됩니다. 그러면서 C, C# , C++ , JAVA 등 다양한 언어를 알게 됩니다. 이번에 살펴볼 언어를 C++ 입니다. C++은 C언어가 가지고 있는 문제점 단점을 보안하여 객체지향으로 다양함을 지원하는 언어 입니다. 보통 자바나 C#으로 구현할수도 있지만 대용량 데이터 처리와 빠른 속도를 위해서는 C++을 할 수 밖에 없습니다. 그만큼 C++ 전문가적인 언어라고 할 수 가 있습니다. 

 

 

그렇기 때문에 다른언어를 잘 하는것보다 C++을 잘 한다면 다른언어를 물론 프로그래밍을 확실히 더 많은 지식을 쌓을 수가 있습니다. 이 책은 한빛미디어에서 나온 책으로서 Marc Gregoire  저자로서 C++에 바이블이라고 불리우는 책입니다.

 

 

약 1500페이지가 넘는 C++언어와 최신 트렌드인 C++20, 병렬 알고리즘, 파일시스템, 제네릭 람다, 디자인패턴, 객체지향의 원리를 익히는 확실한 방법을 가지고 있습니다. 초기에 구성은 C++ 기초를 배울 수 있도록 성되어 있습니다. 거기서 기초를 배우면 이제는 우리가 프로그램의 유연성과 유지보수를 위해 많이 사용하는 객체지향을 배울 수가 있습니다. 

 

 

 

이책에서 나온 소스코드를 볼 수가 있습니다. 이 소스코드를 한빛미디어와 wiley 사이트에서 제공이 됩니다. 그렇기 때문에 어렵지 않게 소스를 구해서 구현해볼수가 있습니다. 전문가를 위한 C++ 도서는 처음 접하는 초보자부터 C++ 오랫동안 사용하는 개발자에게도 많은 도움이 되는 책입니다. 흔히 우리는 개발자책을 보는데 있어서 1년 , 2년 매년 마다 보는거와 알아든는게 틀리기 때문에 이책 하나로 오랫동안 내공을 쌓을수가 있습니다.

 

 

전문가를 위한 C++에서는 각 파트마다 다양한 주제를 가지고 공부를 할 수가 있습니다. 전문가답게 C++을 실행하는 방법부터 설계 방법 그리고 디자인패턴과 알고리즘 정복 그리고 실습까지 완벽하게 구현을 할 수가 있으며, C++20의 신규기능을 가지고 있어 모듈,컨셉트, 3방향 비교등 다양하게 구성을 할 수가 있습니다. 

 

 

CHAPTER 1 C++와 표준 라이브러리 초단기 속성 코스

 

 

CHAPTER 2 스트링과 스트링 뷰 다루기

 

 

CHAPTER 3 코딩 스타일

 

 

CHAPTER 4 전문가답게 C++ 프로그램 설계하기

 

 

CHAPTER 5 객체지향 설계

 

 

CHAPTER 6 재사용을 고려한 설계

 

 

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 표준 라이브러리 알고리즘 완전 정복

 

 

CHAPTER 21 스트링 현지화와 정규 표현식

 

 

CHAPTER 22 날짜와 시간 유틸리티

 

 

CHAPTER 23 무작위수 기능

 

 

CHAPTER 24 기타 라이브러리 유틸리티

 

 

CHAPTER 25 표준 라이브러리 커스터마이즈 및 확장 방법

 

 

CHAPTER 26 고급 템플릿

 

 

CHAPTER 27 C++ 멀티스레드 프로그래밍

 

 

CHAPTER 28 소프트웨어 공학 기법

 

 

CHAPTER 29 효율적인 C++ 코드 작성법

 

 

CHAPTER 30 테스트 숙달하기

 

 

CHAPTER 31 디버깅 완전 정복 

 

 

CHAPTER 32 설계 기법과 프레임워크

 

 

CHAPTER 33 디자인 패턴

 

 

CHAPTER 34 크로스 플랫폼과 크로스 언어 애플리케이션 개발 방법

 

 

전문가를 위한 C++에서는 이만큼 다양한 목차를 가지고 있고 배울 수 있도록 되어있습니다. 저는 자바개발자인데 보통 이렇게 할려면 약 4~5권을 책의 봐야합니다. 하지만 이렇게 하나의 책으로 묶여 있는것을 정말 대단하다고 생각합니다. 이책이 왜 바이블로 불리워지면 5판까지 나오는 만큼 좋은 책이라는것을 알 수가 있습니다. 

 

 

 

전문가를 위한 C++를 봐야하는 이유는 단순합니다. 그이유는 아는것과 모르는것의 차이라고 볼 수가 있습니다. 내가 이책을 한번 봤다면 다양한 기능을 알게 됩니다. 그러면 개발과 코딩에 있어서 기술을 접할 수 있고, 아 이러한 기술이 있어지 라고 생각하는 것이라고 할 수가 있습니다. 그렇기 때문에 저는 무조건 프로그램 책을 한번 다 돌리는것을 중요하도고 늘 만합니다. 그만큼 공부할것이 많고 많아지기 때문입니다. C++ 전문가를 위한 책을 원한다면 적극 추천합니다.

 

#C++ #한빛미디어 #전문가를위한 C++ #알고리즘 #객체지향 #제네릭 #람다 #디자인패턴 # 파일시스템

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

이번에 소개할 도서는 전문가를 위한 C++ 이다. 

 

 

 

 

 

1600페이지가 넘는 방대한 책이며, 전문가의 냄새가 풀풀 풍기는 도서이다.  

 

총 다섯가지의 파트로 나눠져 있다. 

 

  1. 전문가를 향한 C++ 첫걸음
  2. 전문가다운 C++ 소프트웨어 설계 방법
  3. 전문가답게 C++ 코딩하기
  4. C++ 고급 기능 마스터하기
  5. C++ 소프트웨어 공학

 

그리고 부록으로 면접 예상 질문과 표준라이브러리 헤더 파일 그리고 UML 기초가 포함되어 있다. 

 

파트 1에서는 C++의 기본적인 문법을 설명해준다. C++의 코딩 스타일을 파악할 수 있는 파트이다. 

 

파트 2에서는 객체지향적이며 재사용에 최적화된 코드를 설계할 수 있는 방법에 대해 설명해준다. 

 

파트 3은 본격적으로 C++의 핵심을 다루기 시작한다. 메모리 관리, 클래스, 상속, static, 템플릿, I/O, 에러처리, 연산자 오버로딩, 표준 라이브러리 컨테이너, 람다 그리고 알고리즘과 정규식까지. 전문가로 향할 수 있는 파트이다. 

 

파트 4에서는 C++의 고오급 기능을 설명해주면서 OS 적인 측면, C++에서 멀티스레드 프로그래밍을 다루는 장이다. 

 

파트 5는 소프트웨어 공학, 테스트, 디버깅, 프레임워크, 디자인 패턴에 대해 다룬다. 

 

 

C++ 전문가가 되기 위한 커리큘럼이 담겨있는 도서이다. 

 

전문가를 위한 C++

 

 

오랜만에 묵직하고 든든한 책을 하나 만났습니다. C++은 오래된 언어이고 사용되는 곳도 많고 아직도 계속 진화하고 있다 보니 이를 총체적으로 다루는 책들은 압도적인 책의 두께를 보여주곤 합니다. C++의 바이블이라고 볼 수 있는 C++의 창시자인 Bjarne Stroustrup의 저서인 "Programming : Principles and Practice Using C++"라는 책이 대표적인데, 이 책과 버금가는 분량의 책이 또 있습니다. 바로 이 책, Marc Gregoire 씨가 글을 쓰신 "전문가를 위한 C++"이라는 책입니다.

이 책은 C++ 중급자를 위해 쓰였으며, C++의 기초적인 내용부터 고급 주제까지 다양한 내용을 다루고 있습니다. C++의 기본적인 문법, C++의 고급 기능, C++의 소프트웨어 설계 방법, C++을 통한 소프트웨어 공학 등의 내용을 폭넓게 다루고 있습니다.

무엇보다 C++의 기초적인 내용부터 고급 주제까지 다양한 내용을 다루고 있어서 C++ 언어에 대한 전반적인 이해를 높일 수 있습니다. C++20의 새로운 기능들을 별도 표시하여 제공하고 있어 최신 C++ 언어의 지원 내용도 파악할 수 있습니다. 부록으로 C++ 면접 예상 질문과 본문 요약정리를 제공하고 있어 C++ 면접을 준비하는 데도 도움이 될 수 있습니다.

전반적으로 만족스럽지만, 한 가지 아쉬운 점이라면, 책 자체가 들기도 쉽지 않을 만큼 두꺼워 초보자가 접근하기에는 부담스러울 수 있습니다. 또한 다루는 내용이 너무 많아 필요한 내용을 빠르게 찾기 어려울 수 있습니다. 목차와 색인 등을 활용해서 필요한 내용을 찾아서 읽는 것도 좋은 방법이 될 것 같습니다.

이 책은 C++ 언어를 전반적으로 이해하고자 하는 중급자, C++로 개발할 때 사용하는 도구들과 디자인 패턴, 다양한 개발 기법들에 대해 알고자 하는 개발자, C++ 면접을 준비하고자 하는 개발자들에게 도움을 줄 수 있는 책입니다.

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

C++ 파도 파도 끝이 없는 언어입니다.

그 중 C++의 명서는 어떤 것이 있을까요?
저는 “effective C++”과 “전문가를 위한 c++”이 생각납니다.
두 책 모두 C++로 프로그램을 설계하고 코딩하는데 매우 도움됩니다.

1. 책의 내용

  • 내용
    • C++20의 모듈화 : 가끔 c++20에 나오는 내용도 나옵니다.
    • 예외 처리
    • stl
    • 디자인 패턴
    • 메모리 쓰는 법 이 중 가장 흥미로웠던 부분은 29.4 프로파일링 부분이었습니다. 프로그램의 성능은 어떻게 테스트 하는지 궁금했는데, 이에 관한 서술도 간략히 나옵니다.

2. 책의 장점

  1. c++ 개발의 전반적인 도움을 줍니다.
    • 필요할 때마다 찾아보면 좋을 것 같습니다.
  2. 예제 코드가 많습니다.
    • 뇌를 자극하는 stl급으로 돌아가는 예제가 풍부합니다.
  3. 번역도 깔끔합니다. 

3. 책의 단점

  1. 두껍습니다.
    • 스터디를 만들어서 한 챕터씩 발표하거나, 필요한 부분만 발췌해서 읽어야겠습니다.

해당 책을 리뷰할 수 있어서 정말 행복했습니다. 한빛미디어에 감사를 표합니다.
“한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.”

 


Professional C++은 C++ 언어의 최신 기능을 소개하면서 동시에 언어의 디테일한 부분까지 다루는 1600여 페이지의 두꺼운 바이블입니다. C++은 오랫동안 발전하고 기능이 지속 추가되면서 상당히 복잡하고 거대해졌습니다. 대부분의 개발 시에는 언어 전체의 일부만을 사용하는 것이 일반적입니다. 예를 들어 비즈니스 로직을 만들 때는 전통적인 문법을 사용하여 효율성을 높이고, 라이브러리와 같은 공통 로직을 만들 때는 심도 있는 템플릿 문법이나 최신 기법을 사용하여 효율성을 높이는 경향이 있습니다. 높은 성능과 탁월한 이식성을 가지면서 낮은 수준에서 높은 수준까지 다양한 분야에서 사용하다 보니 이렇게 오래된 문법과 최신 기법의 공존이 불가피하며, 개발자들은 구현 상황에 따라 기술 간극을 매우기 위해 레퍼런스 바이블을 찾아볼 수밖에 없습니다. 이 바이블 책의 첫번째 가치는 여기에 있습니다.

 

저자인 마크 그래고리는 MVP summit 행사 때 옆자리에 앉은 적도 있었고 몇 번이나 회의장에서 토론을 가진 적이 있습니다. 푸근한 인심좋은 옆집 아주머니 모습이지만, 토의가 시작되면 대단히 열정적이고 C++에 대한 깊은 생각과 의견을 뿜어내어 주위 사람들을 단번에 집중시키는, 요즘 말로 소위 C++계의 인싸이며, C++ 메일링 리스트에서도 가장 적극적으로 의견을 내는 분 중 하나입니다. Professional C++ 이라는 전통 있는 타이틀의 단독 저자로서, 저술한 책에서 디테일을 놓치지 않으려한 문장을 통해 그때의 열정적인 모습이 떠올랐습니다.

 

Professional C++의 포지션은 사실 조금 애매합니다. 입문자가 보기에는 적절치 않고, 숙련된 사용자들을 위해서는 The C++ Programming Language나 cpp reference가 있기 때문입니다. 혹은 Effective C++ 처럼 매혹적인 팁이나 무릎을 칠 만한 기법이 쏟아지지도 않습니다. 너무 고급지지도, 입문자를 이해시키지도, 응용/활용 도서도 아닙니다. 그리고 술술 읽어 지는 잘 저술된 책과 비교하면 뭔가 문장이 장황한 느낌도 있습니다. 또한 내용 구성이 복잡하여 중요한 내용과 그렇지 않은 내용을 딱 구분하여 읽기도 어렵습니다.

 

하지만 (원서 기준) 새롭게 추가된 C++20의 개정사항을 중심으로 효과적으로 C++ 코드를 디자인하는 변경된 방법이나 문제를 새롭게 해결하는 방법, 테스트/디버깅 사례를 실제 코드 위주로 설명하는 내용은 기존 개발자들이 변화된 기술에 적응하는데 필요한 부분입니다. 업무 중에 읽기는 부담도 되고 내용도 방대하므로, 휴일에 문법 전체를 다시 한번 훑는다고 생각하고 빠르게 읽는다면 최신 기법으로 디자인된 코드를 작성하는 방법이나 유용한 팁을 얻을 수 있고, 이를 포함한 "많은 것"을 배울 수 있습니다. 특히 그 "많은 것"은 저자가 오랜 기간 C++ 전문가들과 토론한 내용을 바탕으로 한 결과로, 폭넓고 올바른, 정답에 가장 가까운 방법입니다. 인터넷의 기술문서를 찾고 올바르지 않은 내용으로 헤매는 시간을 생각해 보면 이 책의 가치를 다시 가늠해 볼 수 있습니다.

 

이미 저자는 C++ 23을 반영한 Professional C++ 6판 원고를 작성하고 있으며 올해 안에 새로운 도서가 나올 예정이라고 합니다. 새 책의 번역본도 접하게 되어 우리나라 개발자들에게도 도움이 되기를 소망합니다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

한빛미디어의 전문가를 위한 C++ 개정 5판


 

 

2020년에 발표된 C++20의 새로 추가된 기능을 포함한다. 개정된 내용을 따로 빼서 설명하지 않고 전반적으로 내용과 예제를 업데이트 했다고 보면 된다.