전문가를 위한 C++
마크 그레고리 (Marc Gregoire) 지음
남기혁 옮김
책표지 포함 1688 페이지에 달하는 두꺼운 공간에 정말 많은 부분을 다루고 있는 책 입니다.
이 책은 C++ 초급, 중급 프로그래머를 주요 대상으로 하고 있지만 C++ 고급 프로그래머 분들도 읽어 본다면
컴파일러 최신 스펙에서의 변화된 모습 및 이미 알고 있던 내용이라도 다시 상기 시킬 수 있기에 좋을 것 같습니다.
대상 독자
C++ 초급/중급 프로그래머를 주요 대상으로 하고 있으며,
C++ 경험은 없더라도 그 외의 언어 경험이 있다면 "1장"을 통해서 충분히 기초를 다질 수 있다고 소개하고 있습니다.
[학습 준비]
이 책은 Visual Studio c++ 2019 및 gcc 를 주요 컴파일러로 채택하고 있습니다.
2023년 현재는 Visual Studio c++ 2022 , gcc 12.2 (Ubuntu 22.04 사용시 gcc 11.3 설치됨) 가 최신 버전 입니다.
책에서 명시된 컴파일러 버전이 아닌 최신버전을 사용하여도 학습하는데 특별히 문제는 없었습니다.
[ 컴파일러 준비 ]
* Visual Studio Community 버전 다운
https://visualstudio.microsoft.com/ko/vs/community/
* Gcc 컴파일러
- Windows
window 의 경우, Mingw, cygwin, msys 등이 있습니다.
과거에는 cygwin 을 많이 사용하긴 하였지만, 최근에는 mingw 를 많이 사용하는 것 같습니다.
아래 경로에서 다운받아서 설치 후 환경 설정을 하면 gcc 컴파일러를 window에서 사용할 수 있습니다.
mingw 설치 및 사용에 대해서는 추후 정리 해보겠습니다.
https://www.mingw-w64.org/downloads/
- Ubuntu
리눅스의 경우 여러 OS 가 있지만, 주로 많이 사용하는 Ubuntu 기준으로 gcc 컴파일러는 아래의 명령으로
설치 할 수 있습니다.
또한 디버깅 환경 설치를 위하 gdb 도 포함하여 설치 합니다.
apt -y install build-essential gdb
[책 구성]
이 책은 처음에 얘기한 것 처럼 C++ 프로그래밍에 대한 많은 양의 주제를 다루고 있습니다.
다른 C++ 책에서와는 다르게 초급 프로그래머 부터 중-고급 프로그래머 까지 학습 할 수 있는 주제를 다루고 있다는 것이 특징 입니다.
이 책은 총 6개의 부에 부록 2개 포함하여 36개의 장으로 구성되어 있습니다.
1부에서는 C++를 처음 접하는 프로그래머를 위해 필요한 기초 문법들을 약 170 페이지에 달하는 페이지를 할애하여 C++문법 기초 부터 코드 작성 방법까지 다루고 있습니다.
C++ 문법에 대해 언어나 표준 라이브러리를 깊이 있게 학습하고자 한다면 C++ 관련 다른 문법책을 우선 학습하는 것이 좋습니다.
2부에서는 C++ 을 위한 소프트웨어 설계에 대해서 다루고 있습니다.
반듯이 책에서 설명하는 방식을 따라야 하는 것은 아니지만, 처음 C++을 이용하여 소프트웨어 개발을 시작 한다면 충분히 도움이 될 내용들 입니다.
C++에 적합한 설계 방식, 설계 재사용, 코드 재사용 관련은 읽어볼만 합니다.
그리고, "4.6 체스 프로그램 설계"르는 예제를 통해 설계에 대한 이해를 돕고 있습니다.
3부에서는 C++ 코딩에 대해 약 820 페이지의 양을 할애하여 심도있게 다루고 있습니다.
흔히 프로그래밍 중에 어려움을 느낄수 있고 필히 고려해야할 부분들을 다루고 있습니다.
메모리 사용 및 관리, 에러처리, 포인터 관련 등은 필히 잘 학습하고 있어야 할 부분인 것 같습니다.
4부에서는 "C++ 고급기능 마스터하기" 라는 주제로 "표준 라이브러리 커스터마이즈, 고급 템플릿, 멀티스레드 프로그래밍"에 대해 다루고 있습니다.
5부에서는 "C++ 소프트웨어 공학" 이라는 주제를 다루고 있습니다.
개론적인 소프트웨어 공학과 실무를 위한 "효율적인 C++ 코드 작성법", "테스트", "디버깅", "설계 기법과 프레임워크", "디자인 패턴", "크로스 플랫폼과 크로스 언어 애플리케이션 개발 방법론" 에 대해서 다루고 있습니다.
규모가 큰 프로젝트에서 C++을 이용하여 개발한다면 꼭 필요한 내용들로 구성되어 있습니다.
6부는 부록으로, "면접 예상 질문", "참고 문헌", "표준 라이브러리와 헤더파일", "UML 기초" 에 대해서 다루고 있습니다.
면접 예상 질문 장은 면접 예상 질문 이라기 보다 학습 했던 내용에 대해서 다시 한번 생각 해보는데 이용하면 좋을 것 같습니다.
UML 기초는 UML 다이어그램 소개 정도로 보는 것이 맞을 것 같습니다.
[결론]
책 전반 적으로 많은 내용들을 담고 있습니다.
그러다 보니 부분 적으로는 부족한 부분들이 있긴 있습니다.
각 부분들을 학습 하면서 이론 관련은 다른 C++ 책 및 알고리즘, 객체지향 관련 책이나 자료들을 함께 학습 하면 좋을 것 같습니다.
바이블은 아니지만, 차례대로 학습하지 않아도 관심 있는 부분들 위주로 학습할 수 있도록 구성이 잘 나뉘어져 있는 책입니다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다." |
https://www.hanbit.co.kr/store/books/look.php?p_code=B5989104254
'리뷰 > IT_책소개' 카테고리의 다른 글
그림으로 배우는 리눅스 구조 : 한빛미디어 (0) | 2023.09.24 |
---|---|
육각형 개발자 : 한빛미디어 (0) | 2023.08.28 |
O'REILLY MLOps 실전 가이드 : 한빛미디어 (0) | 2023.07.23 |
O'REILLY 개발자를 넘어 기술 리더로 가는 길 : 한빛미디어 (0) | 2023.06.25 |
O'REILLY 머신러닝 시스템 설계 : 한빛미디어 (0) | 2023.05.29 |
전문가를 위한 C : 한빛미디어 (0) | 2023.03.27 |
마이크로서비스 아키텍처 구축 가이드 : 한빛미디어 (0) | 2023.02.26 |
O'REILLY 트랜스포머를 활용한 자연어 처리 : 한빛미디어 (0) | 2022.12.31 |
O'REILLY 온디바이스AI : 한빛미디어 (0) | 2022.11.27 |
O'REILLY 파이썬 기반 금융 인공지능 (Artificial Intelligence in Finance) : 한빛미디어 (0) | 2022.10.28 |