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

한빛출판네트워크

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

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

C++17, 제네릭 람다, STL, 템플릿, 디자인 패턴, 객체지향의 원리를 익히는 확실한 방법

한빛미디어

번역서

절판

  • 저자 : 마크 그레고리
  • 번역 : 남기혁
  • 출간 : 2019-08-20
  • 페이지 : 1496 쪽
  • ISBN : 9791162242087
  • 물류코드 :10208
  • 구판정보 :이 도서는 <전문가를 위한 C++(개정3판)>의 개정판입니다. 구판 정보 보기
  • 개정판정보 :개정판이 새로 출간되었습니다. 개정판 보기
  • 초급 초중급 중급 중고급 고급
4.9점 (20명)
좋아요 : 1920

전문가 수준 C++ 프로그래머와 그저 문법을 아는 C++ 프로그래머 

그 차이를 만드는 C++17 최고의 실전 가이드! 

원서 4번째 개정과 완전히 새로운 번역!

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

 

[이 책의 내용]

  • C++의 방대한 기능을 최대한 활용하여 효과적인 솔루션을 개발할 수 있도록 C ++ 사고방식을 제시한다.
  • 어설프게 알고 있거나 실수하기 쉬운 부분을 바로 잡고 효율과 성능을 높이는 다양한 팁과 기법, 우회전략을 소개한다.
  • 당장 프로젝트에서 마주치고 적용할 수 있는 현실적인 문제와 프로그램 예제를 소개한다.
  • 구조적 바인딩, 중첩 네임스페이스, constexpr if를 비롯한 C++17부터 새로 추가된 기능을 소개한다.
  • string_view, optional, 병렬 알고리즘, 파일시스템 API 등 C++17부터 새로워진 표준 라이브러리의 주요 기능을 심도 있게 살펴본다.

 

상세이미지_700.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 1 전문가를 향한 C++의 첫걸음]


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

_1.1 C++의 기초

_1.2 C++의 고급 기능

_1.3 C++의 객체지향 언어 특성

_1.4 유니폼 초기화

_1.5 표준 라이브러리

_1.6 첫 C++ 프로그램

_1.7 정리

 

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

_2.1 동적 스트링

_2.2 정리

 

CHAPTER 3 코딩 스타일

_3.1 코딩 스타일의 중요성

_3.2 코드 문서화

_3.3 코드 분할

_3.4 명명 규칙

_3.5 언어의 기능에 스타일 적용하기

_3.6 포매팅

_3.7 스타일과 관련하여 해결할 문제

_3.8 정리

 

[Part 2 전문가답게 C++ 소프트웨어 디자인하기]


CHAPTER 4 전문가다운 C++ 프로그램 디자인

_4.1 프로그램 디자인의 정의

_4.2 프로그램 디자인의 중요성

_4.3 C++에 적합한 디자인 방법

_4.4 C++ 디자인에 관련된 두 가지 원칙

_4.5 코드 재사용

_4.6 체스 프로그램 디자인

_4.7 요약

 

CHAPTER 5 객체지향 디자인

_5.1 절차형 사고방식

_5.2 객체지향 철학

_5.3 객체의 관점에서 바라보기

_5.4 객체 관계

_5.5 추상화

_5.6 요약

 

CHAPTER 6 재사용을 고려한 디자인

_6.1 재사용 철학

_6.2 코드를 재사용할 수 있도록 디자인하는 방법

_6.3 요약

 

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


CHAPTER 7 메모리 관리

_7.1 동적 메모리 다루기

_7.2 배열과 포인터의 두 얼굴

_7.3 로우레벨 메모리 연산

_7.4 스마트 포인터

_7.5 흔히 발생하는 메모리 문제

_7.6 요약

 

CHAPTER 8 클래스와 객체 숙달하기

_8.1 스프레드시트 예제

_8.2 클래스 작성 방법

_8.3 객체의 라이프 사이클

_8.4 요약

 

CHAPTER 9 클래스와 객체 마스터하기

_9.1 friend

_9.2 객체에 동적 메모리 할당하기

_9.3 메서드의 종류

_9.4 데이터 멤버의 종류

_9.5 중첩 클래스

_9.6 클래스에 열거 타입 정의하기

_9.7 연산자 오버로딩

_9.8 안정된 인터페이스 만들기

_9.9 요약

 

CHAPTER 10 상속 활용하기

_10.1 상속을 이용한 클래스 구현

_10.2 코드 재사용을 위한 상속

_10.3 부모를 존중하라

_10.4 다형성을 위한 상속

_10.5 다중 상속

_10.6 상속에 관련된 미묘하면서 흥미로운 문제들

_10.7 요약

 

CHAPTER 11 C++의 까다롭고 유별난 부분

_11.1 레퍼런스

_11.2 키워드 혼동

_11.3 타입과 캐스팅

_11.4 스코프

_11.5 어트리뷰트

_11.6 사용자 정의 리터럴

_11.7 헤더 파일

_11.8 C 유틸리티

_11.9 요약

 

CHAPTER 12 템플릿으로 제네릭 코드 만들기

_12.1 템플릿 소개

_12.2 클래스 템플릿

_12.3 함수 템플릿

_12.4 변수 템플릿

_12.5 요약

 

CHAPTER 13 C++ I/O 완전 분석

_13.1 스트림 사용법

_13.2 스트링 스트림

_13.3 파일 스트림

_13.4 양방향 I/O

_13.5 요약

 

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 요약

 

CHAPTER 16 C++ 표준 라이브러리 둘러보기

_16.1 코드 작성법

_16.2 C++ 표준 라이브러리 둘러보기

_16.3 요약

 

CHAPTER 17 컨테이너와 반복자 살펴보기

_17.1 컨테이너 개요

_17.2 순차 컨테이너

_17.3 컨테이너 어댑터

_17.4 정렬 연관 컨테이너

_17.5 비정렬 연관 컨테이너(해시 테이블)

_17.6 기타 컨테이너

_17.7 요약

 

CHAPTER 18 표준 라이브러리 알고리즘 마스터하기

_18.1 알고리즘 개요

_18.2 std::function

_18.3 람다 표현식

_18.4 함수 객체

_18.5 표준 라이브러리 알고리즘 심층 분석

_18.6 알고리즘 예제: 선거인 명부 검사

_18.7 요약

 

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

_19.1 현지화

_19.2 정규 표현식

_19.3 요약

 

CHAPTER 20 여러 가지 유틸리티 라이브러리

_20.1 ratio 라이브러리

_20.2 chrono 라이브러리

_20.3 무작위수 생성

_20.4 optional

_20.5 variant

_20.6 any

_20.7 tuple

_20.8 파일시스템 지원 라이브러리

_20.9 요약

 

[Part 4 C++ 고급 기능 마스터하기]


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

_21.1 할당자

_21.2 스트림 반복자

_21.3 반복자 어댑터

_21.4 표준 라이브러리 확장하기

_21.5 요약

 

CHAPTER 22 고급 템플릿

_22.1 템플릿 매개변수에 대한 심화 학습

_22.2 클래스 템플릿 부분 특수화

_22.3 오버로딩으로 함수 템플릿 부분 특수화 흉내내기

_22.4 템플릿 재귀

_22.5 가변 인수 템플릿

_22.6 메타프로그래밍

_22.7 요약

 

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

_23.1 들어가며

_23.2 스레드

_23.3 아토믹 연산 라이브러리

_23.4 상호 배제

_23.5 조건 변수

_23.6 promise와 future

_23.7 멀티스레드 Logger 클래스 예제

_23.8 스레드 풀

_23.9 바람직한 스레드 디자인과 구현을 위한 가이드라인

_23.10 요약

 

[Part 5 C++ 소프트웨어 공학]


CHAPTER 24 소프트웨어 공학 기법

_24.1 프로세스의 필요성

_24.2 소프트웨어 라이프 사이클 모델

_24.3 소프트웨어 공학 방법론

_24.4 나만의 프로세스와 방법론 만들기

_24.5 소스 코드 관리

_24.6 요약

 

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

_25.1 성능과 효율성에 대하여

_25.2 언어 차원의 효율성

_25.3 디자인 차원의 효율성

_25.4 프로파일링

_25.5 요약

 

CHAPTER 26 테스트 숙달하기

_26.1 품질 관리

_26.2 단위 테스트

_26.3 하이레벨 테스트

_26.4 성공적인 테스트를 위한 팁

_26.5 요약

 

CHAPTER 27 디버깅 완전 정복

_27.1 디버깅 기본 원칙

_27.2 버그 분류

_27.3 버그 방지

_27.4 버그 대비

_27.5 정적 어서션

_27.6 디버깅 테크닉

_27.7 요약

 

CHAPTER 28 디자인 기법과 프레임워크

_28.1 흔히 사용하지만 까먹기 쉬운 문법

_28.2 고급 기법

_28.3 객체지향 프레임워크

_28.4 요약

 

CHAPTER 29 디자인 패턴

_29.1 반복자 패턴

_29.2 싱글턴 패턴

_29.3 추상 팩토리 패턴

_29.4 프록시 패턴

_29.5 어댑터 패턴

_29.6 데코레이터 패턴

_29.7 책임 사슬 패턴

_29.8 옵저버 패턴

_29.9 요약

 

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

_30.1 크로스 플랫폼 개발

_30.2 크로스 언어 개발

_30.3 요약

 

[부록 A] C++ 면접 예상 질문 

[부록 B] 참고 문헌 

[부록 C] 표준 라이브러리 헤더 파일 

[부록 D] UML 기초 

 

이 책은 1500여 페이지의 .. .엄청난 분량의 책입니다.

하지만 거의 한 문장으로 이 책을 정의 할 수 있을 것 같습니다.

​"C++개발자가 알아야 할 모든 것을 다 쓴 책.."

솔직히 읽기도 힘들었지만, 이런걸 쓰는 사람은 아마도 괴물이 아닐까 싶을 정도로 상당히 방대한 내용이었습니다.

읽기도 힘든... 책을 쓰는 사람은 도데체 뭘까요?



는, 10년 쯤 C/C++을 사용해서 업무를 했습니다. 사실, 코딩을 C로 배웠고, C++로 학교를 다녔기 때문에, 뭐 그걸 포함하면 더 오랜 시간 C 문법에 익숙해져 있었겠죠.

그 후 거의 10년 정도 자바스크립트랑 살았습니다.

근래에는 "함수형 프로그래밍"에 대해서 관심을 가지기 시작하고 이런저런 언어들에 대한 책을 읽었습니다.



그러던중, C++에도 함수형 프로그래밍 문법이 도입되었다는 소문을 들었고, 책을 읽어야지 읽어야지 했는데, 이 책을 읽을 기회가 생긴것입니다.



저자는 이것이 함수형 프로그래밍 문법이다... 라고 따로 분류 해주지는 않았지만, C++11, C++17 버전의 스펙에서 도입된 것이라는 태그를 달아 주었습니다. 그래서 C++의 변화를 이해하면서 책을 읽을 수 있었던 것 같습니다.



그리고 펑터, Optional, 람다 표현식 이런것들을 꽤 자세하게 설명하고 사용함으로서 "함수형 프로그래밍" 문법에 대한 저의 궁금증을 충분히 해소해 주었습니다.



지만 약간의 한계성도 볼 수 있었습니다.

객체지향에 대한 저자의 접근 자세는 극히 C++입장에서의 객체지향이었습니다. C++은 class문법을 통해서 객체지향을 구현했는데요. 그러다보니 객체지향 보나는 클래스지향으로 흘러가는 문제점이 있었습니다.



"객체지향의 사실과 오해"라는 책에서 저자는 "클래스의 구조와 메서드가 아니라 객체의 역할, 책임, 협력에 집중하라. 객체지향은 객체를 지향하는 것이지 클래스를 지향하는 것이 아니다. "라고 이야기 합니다.



C++을 설명하다보면 클래스의 상속관계, 연산자 오버라이드 등에 집중하게 되는데요. 사실 이런것들은 객체의 역할, 책임, 협력을 고민하지 않고 사용할 경우 이것들을 해칠 우려마저 만들어내게 됩니다.

특히 클래스는 사실상 type과 비슷한 개념으로 인식되면서, 클래스 지향으로 고착 시키게 됩니다.



그러나, C++ 초심자라면, 옆에 두고 2번쯤 읽어서 C++을 체화하는데 도움을 받을 수 있지 않을까 싶습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

책 제목 : 전문가를 위한 C++ (개정4판)

저자 : 마크 그레고리

옮김 : 남기혁

출판년도 : 2019.08.20

 

 

 

 

컴퓨터 공대생으로서 가장 먼저 접한 언어가 C, C++ 이었다.

그것이 계기가 되어 중간에 수많은 언어를 거치면서도 C++이 가장 편한 언어가 되었다.

C++이라는 언어는 재미있고 유쾌하며 동적이고 때로는 너무 복잡해서 머리를

욱씬거리게 만드는 언어였다.

실제로 C++는 프로그래밍 점유율을 볼때 늘 순위권에 있다.

C++은 C라는 절차적 언어에 객체지향이라는 개념을 얹고 일반화 프로그래밍이라는 개념을

더한 실용적인 언어라고 생각한다.

 

책의 내용...

책은 총 30개의 챕터로 이루어져 있고 다방면에 걸쳐 이야기하고 있다.

대략 5개의 파트로 이루어져 있는데 아래와 같다.

1. 전문가를 향한 C++ 첫걸음

2. 전문가답게 C++ 소프트웨어 디자인하기

3. 전문가답게 C++ 코딩하기

4. C++ 고급 기능 마스터하기

5. C++ 소프트웨어 공학

 

Part 1은 역시 기본적인 내용을 담고있다.

 

C++ 기초내용부터 시작해서 C++의 특징, 객체지향, 스트링, 코딩스타일등.

코딩스타일과 코드 문서화를 보면 실무나 협업에 있어 필요한 부분이라고 생각한다.

 

 

Part 2는 C++ 철학에 대한 내용이 주를 이룬다.

절차형 사고방식과 C++의 특징인 객체지향 철학과 객체지향 관점, 객체와 추상화등.

이러한 개념을 가지고 프로그램을 어떻게 디자인 해야 하는가에 대한 이론이다.

 

Part 3은 C++사용에 중점을 두고 설명한다.

 

메모리관리를 위해 배열, 포인터, 메모리 연산, 스마트 포인터 등에 대해 언급하고

C++의 특징인 클래스와 객체를 사용하는 법에 대해 설명한다.

이 객체를 활용하기 위해 추상화 상속 등을 설명하고C++을 프로그래밍 할때

필요한 팁들을 설명한다.

C++의 특징중 하나인 템플릿 사용법과 스트림 사용법, 에러 및 예외처리,

연산자 오버로딩등 C++ 실제 코딩을 할 때 많이 사용되는 부분에 대해 언급한다.

그리고 책 표지에도 적혀있듯이 표준라이브러리에 대해서도 간단히 설명하고

컨테이너, 람다, 알고리즘, 정규표현식, 라이브러리 등을 활용하는 부분에 대해서도 간단히 설명한다.

 

Part 4는 C++을 좀 더 활용하는 단계에 대해 설명한다.

 

표준 라이브러리를 원하는 만큼 커스터마이징 하고 템플릿을 좀 더 적극적으로 활용하는법,

그리고 C++을 사용한 멀티스레드 프로그래밍에 대해 설명한다.

 

Part 5에서는 소프트 웨어 공학의 관점에서 접근한다.

 

프로세스, 방법론, 성능, 효율, 프로파일링, 테스팅, 디버깅 등 실제적으로

하나의 프로그램을 완성하기 위해 필요한 기술들에 대해 다룬다.

그리고 한때 유행했던 디자인 패턴에 대해서도 유효한 것들만 간단히 다루고 

크로스 플랫폼 개발에 대해서도 언급한다.

 

 

 

책을 읽고나서...

책을 읽을 때는 목적이 있다.

이 책을 통해서 이 학문에 입문하고자 한다던지, 내가 가진 소양을 더욱 깊게 새긴다던지,

좀 더 유효한 노하우를 배우고 싶다던지, 가볍게 읽을만한 내용이라던지 등...

이 책은 입문자가 뜻을 두고 보기에는 내용이 쉽거나 친절하지 않고 범위또한 너무 넓다.

중급자가 읽기에는 너무 많은 범위를 다루다 보니 내용이 원하는 만큼 깊지가 않다.

개인적으로 C++ 입문자가 아닌 이가 C++에 대한 개요를 간략하게 돌아보기 위한 목적으로는

괜찮은 책인 것 같다.

 

링크

책 소개

 

전문가를위한C++.jpg

 

 

대부분의 텐서플로 내부 연산은 C++로 구현되어 있고, 겉으로는 Python 으로 된 것 처럼 보이지만 내부적으로는 핵심 연산을 C++ 로 처리하는 경우가 대다수이다. C++ 자체가 Python 보다는 기능이 풍부하고 효율성이 높기 때문에 Python 을 쓰다가 빠른 처리를 요하는 문제에서는 C++ 로 구현하여 Python에 내장하기도 한다. 

 

 

 

C++은 엔터프라이즈급 객체지향 프로그램을 위한 빠르고 강력한 업계 표준 언어라고 한다. 하지만 C++ 기능이 무진장 많은 것에 비해 대부분의 C++ 프로그래머들은 고급 기능들을 다 알지 못한다는 한계가 있다. 책 두께부터 압권인 이 "전문가를 위한 C++" 책은 내가 본 C++ 책들중에서 가장 두껍고, 가장 무겁지만 이러한 한계를 극복할 수 있게 해주는 책이다. C++17 규격을 기반으로 소개해놓았으며, C++의 처음부터 끝까지 독학으로 모든걸 마스터하고자 하는 분들에게 추천해주고싶은 책이다.

 

책을 먼저 펴보면 정말 기초인 "gcc" 부터 시작해서 "main()" 함수 작성법, "주석 처리" 등 기초적인 것 부터 정말 자세히 수록해놓은 책이다. 당연하겠지만 책이 두꺼운만큼 알찬 내용이 정말 많고, 프로그래밍 기본이 있는 사람들 중 C++을 처음 독학하고자 하는 사람들도 쉽게 알 수 있도록 설명해놓았다. 기존 C++ 언어를 이용하여 프로그래밍을 하는 사람들도 도움이 될 수 있게 다양하고, 고급진 기능들을 자세하게 설명해주고 있어서 백과사전 같은 느낌이 든다. 

 

책의 목차는 다음과 같다.

 

  • 전문가를 향한 C++ 첫걸음
  • 전문가답게 C++ 소프트웨어 디자인하기
  • 전문가답게 C++ 코딩하기
  • C++ 고급 기능 마스터하기
  • C++ 소프트웨어 공학

 

책이 디자인패턴 뿐만 아니라 소프트웨어 공학 기법 까지 담고 있어서 더욱 더 알찬 책이다. 소프트웨어공학 수업에서 들었던 폭포수모델, 애자일 방법론 이러한 개념까지 설명하고 크로스 플랫폼과 크로스 언어 어플리케이션 개발 방법까지 알려주고 있어서 책을 1쪽부터 1496쪽까지 다 읽으면 정말 C++ 독파할 수 있을 것 같다.

 

필자도 요즘 C++ 전선에 다시 뛰어들었기 때문에 기초부터 다시 볼 예정인데, 이만한 책이 없는 것 같다. 두꺼워서 들고다닐 수는 없겠지만 집에 가져다 놓고 짬날때마다 보기 시작해서 내년 2월 까지는 다 볼 수 있지 않을까...싶다. 클래스 템플릿을 정의하고 사용하는 것에 익숙하지 않아서 그 부분을 중점적으로 공부할거고, 컨테이너에서 vector 와 같은 순차컨테이너를 사용하는 방법, 그리고 멀티스레드 프로그래밍까지 집중적으로 볼 것이다. 잠깐 내용을 훑어봤는데 너무 자세히 설명이 잘 나와있어서 무리없이 배울 수 있을 것 같다. 

 

 

 

 

 

전문가를 위한 C++는 초급용 도서 뿐만 아니라, 중급용 도서로도 아주 괜찮은 책이라고 생긱이 된다. 기존 C++14 버전을 읽으면서 예상 밖의 모르는 것들을 아주 세심하게 짚어주어, 상당히 꼼꼼하고, 모던 C++에 대한 모든 내용을  잘 담았다고 생각이 된다.

책을 받으면 엄청난 두께에 놀란다.

책을 받게되면 1496페이지라는 압도되는 양에 깜작 놀라게 될 것이다. C++14 버전보다 더 두꺼워 졌다. 개인적으로 3분권을 추천한다.


입문자, 초보자들을 위해 C++에 대한 개략적인 부분을 한 단원에 몰아서 설명하게 된다. 사실 입문자용으로는 살짝 버거울 수 있으나, 코딩 경험이 있는 초급자이면 내용을 상세히 보고, 내용을 한번 리뷰하는 입장인 중급자라면 한번쯤은 술술 넘기면서 볼 수 있을 것이다.


C++17에서 새롭게 추가된 string_view클래스를 한 챕터로 설명하게 된다. 새롭게 추가되는 내용이라, 인터넷에서 조금더 정보를 찾아봐야 되는 정보이다.

optional은 리턴타입에서 전달이 될 수도, 안 될수도 있는 리턴타입을 의미한다. 기존에는 nullptr, -1같은 신호로써만 보냈지만, c++17부터 optional이라는 새로운 타입을 제공한다.

c++17에서 부터는 variant나 any같은 새로운 타입도 제공을 해준다. any는 모든 타입의 값을 컴파일 타임에 저장할 수 있는 개념으로, 개인적으로 any라는 타입은 굉장히 흥미로운 타입이라고 생각된다.

기존 C++14버전에서는 없던 챕터이다. 소프트웨어 공학에 대한 내용이 추가로 첨부되어있다. 생각보다 많이 쓰이는 패턴이라 한번쯤 보면 좋을 챕터이다.

책 두께답게 굉장히 높은 가격대를 가지고 있다. 하지만 이렇게 C++17에 대한 거의 대부분의 레퍼런스 형식의 코드와 설명 그리고 소프트웨어 개발론적인 얘기도 빼지 않을 것을 생각해보면 이러한 가격대가 충분히 납득이 간다.

여담으로 이 책의 유일한 단점이 제본이다. 개인적으로 제본집에가서 위 사진처럼 스프링 3분권을 적극 추천한다. 기존 C++14버전을 보다가 책이 '뚝' 부숴지는 (놀랍게도 책이 부숴진다.) 현상이 매우 자주 발생하고, 또, 책 한 면, 한 면이 너무 잘 뜯어져 위 사진처럼 제본을 하게 되었다. 개인적으로 이 책이 분권되서 나오면 좋겠지만... 제본을 제외하고는 모두 만족하는 책이다.

 

 

 

 

전문가를 위한 C++. 


제목부터 간결하게 C++에 대한 이야기만 할 것 같은 인상을 주는 책입니다.


실제로도 1500페이지 내내 C++에 대한 문법과 사용사례를 설명해 주고 있습니다.


방대한 내용을 서술하고 있어서 , 처음부터 쭉 읽는것은 매우 힘들고


필요한 부분을 발췌해서 읽거나, 코딩하면서 모르는 부분 혹은 헷갈리는 부분을


참조해서 보면 매우 좋을것 같습니다.


저는 우선 코딩스타일 부분과 디자인 부분을 흥미롭게 읽었습니다.


저는 컴퓨터학부를 전공하긴 했지만, C++를 지금 사용하고 있지는 않아서


C++에 대한 지식은 학부때 배운 것이 전부입니다.


이번 기회에 C++에 대한 기초지식부터 탄탄히 쌓을 수 있었고, 


공식레퍼런스보다 더 자세한 설명으로 추후 c++ 바이블로써도 사용가능할 듯 합니다.


C++의 기초부터 코딩스타일, 디자인패턴, 디버깅 까지 아우르는 책을 원하시는 분들껜 강추!!


하지만, 코딩을 처음하시는 분들에겐 버거울 수 있으니, 어느정도 개념을 잡으신 분들께 추천드립니다.

전문가를 위한 C++

 

 마크 르레고리 지음, 남기혁 옮김, 한빛미디어, 2019.

 
 

 

 

C++는 엔터프라이즈급 객체지향 프로그램을 위한 빠르고 강력한 업계표준 언어다. 하지만 C++가 대중화됨에 따라 C++ 학습 난도도 높아졌다. 전문C++ 프로그래머가 사용하는 간결하고 강력한 고급 테크닉이 다양하게 나왔지만 이런 내용은 책에 나와 있지 않으며, C++의 유용한 기능 중에는 전문 C++ 프로그래머조차 모르는 것도많다.

 

이 책은 실전에서 C++를 사용하는 관점에서 소개하는 것이 장점이다.

 

널리 알려져 있지 않지만 업무 효율을 크게 높이는 기능도 소개하고, 초보프로그래머와 전문 프로그래머를 구분하는 고급프로그래밍 기법도 소개한다.

 

이 책의 독자

C++를 수년 동안 사용하더라도C++ 고급 기능에 익숙하지 않거나 고급 기능을 사용한 적이 없는 사람들에게는 옆에 두고 필요한 부분을 찾아 봄으로 C++ 프로그램 실력을 한 단계 업그레이드할 것으로 본다.

C++ 코딩에는 자신 있지만C++로 디자인하는 방법이나 바람직한 프로그래밍 스타일을 자세히 알고 싶은 사람, C++ 경험은부족하지만 실전에서 제대로 활용하는 방법을 배우고 싶은 사람도 있다. 이처럼 다양한 요구를 반영하여독자의 C++ 실력을 전문가 수준으로 끌어올리고자 이 책을 집필했다고 한다.

 

이 책의 목적은 C++의 초급부터 중급 수준의 실력을 전문 C++ 프로그래머 수준으로 끌어올리는 데 있다.

독자의 수준에 관계없이 프로그래밍 기초는 갖추고 있어야 이 책을 읽을 수 있다.

반복문, 함수, 변수와같은 개념은 당연히 알아야 하고, 프로그램 구성 방법과 재귀 호출 같은 기법도 쓸줄 알아야 한다. 또한 큐와 같은 데이터 구조나 정렬과 탐색 같은 알고리즘 기본 개념도 알고 있어야 한다. 객체지향 프로그래밍에 대한 이해는 없어도 괜찮다. 5장에서 자세히설명하기 때문이다.

컴파일러를 사용할 줄 알아야 한다. 이 책에서는 마이크로소프트 비주얼 C++ GCC를 주로 사용하며 기본 사용법은 13~15쪽에서 간단히 소개한다. 다른 컴파일러는 해당 문서를 참고하기를바란다.

이 책은 C++ 전문프로그래머로서 꼭 알아야 할 내용, 프로그래밍 방법론, 재사용 가능한 디자인패턴, 바람직한 프로그래밍 스타일도 함께 소개하는 등 체계적으로 소개하고 있다.

전문C++ 프로그래머라면 단순히C++ 문법을 아는데 그치지 않고 C++의 올바른 사용법도 알아야 한다. 바람직한 디자인의 중요성과 객체지향프로그래밍 이론, 기존에 나온라이브러리를 최대한 활용하는 방법을 제대로 이해해야 한다. 유용한 코드와 재사용 가능한 기능을 개발한경험도 풍부해야 한다.

이 책을 제대로 읽었다면 C++ 실력을 전문 프로그래머 수준으로 높일수 있다. 잘 알려지지 않았거나 오해하기 쉬운 기능을 제대로 파악함으로써 C++에 대한 지식의 폭을 넓힐 수 있다.

또한 객체지향 디자인 방식을 이해하고 최신 디버깅 기술도 익힐 수 있다. 무엇보다도일상 개발 업무에 당장 적용할 수 있는 재사용성에 관련된 기법을 풍부하게 갖출 수 있기 바란다.

이 책은 매우 많은 양으로 다양한 부분을 다루고 있다. 책의 두께에놀랄 것이다.

업무에서 잘 풀리지 않는 문제를 해결할 수 있도록 필요한 부분을 찾아 차근차근 살펴보며

문제 해결에 도움을 받도록 하는 것이 바람직하지 않을까 한다.

특히 5장의 C++ 소프트웨어공학은 프로그래머들이 잊기 쉬운 부분을 잘 기술해 놓았다.

독자들이 정독을 통해 SW 공학적 스킬 및 테스트 능력을 향상시킬수 있었으면 한다.

저자 마크 그레고리의 C++ 전문가적인 스킬과 SW 공학의 폭 넓은 지식을 잘 정리해 놓았다.

역자인 남기혁님의 내공이 묻어나는 전문 용어의 적절한 선택으로 읽기가 편하다.

저자와 역자의 노고에 감사를 드린다.

독자들 모두가 대한민국 SW의 위상을 높이는 글로벌 C++ 전문 프로그래머로 성장하기를 기원한다.

2018년 4월에 출간된 Professional C++ 4E의 번역서를 한빛미디어에서 <전문가를 위한 C++>로 발표했습니다.  저자는 마크 그레고리(Marc Gregoire)이며, 번역은 남기혁 님께서 맡아주셨습니다. 이 책을 번역해 주신 남기혁 님께 깊은 감사의 말씀을 전하고 싶습니다.

<전문가를 위한 C++ 4E>은 기존 C++14 기준으로 작성된 <전문가를 위한 C++ 3E>에 현재 최신 버전인 C++17을 자연스럽게 녹여낸 작품입니다. C++17은 약 100여 가지의 새로운 기능이 도입되었습니다. 주요 변경 사항은 다음 링크에서 확인하세요.

참고로 C++17의 다음 개정판은 C++20으로 2017년 7월에 시작했습니다. 다음에 추가될 내용도 흥미로운 요소가 많습니다.

이 책에서 다루는 내용은?

이 책에서는 C++ 고유의 특징과 소프트웨어 개발을 위한 다양한 기법을 습득할 수 있습니다. C++ 17에 새로 추가된 기능 소개를 비롯하여 다양한 프로그래밍 방법론과 추천하는 프로그래밍 스타일을 소개하고 있습니다. 뿐만 아니라, 객체지향 디자인 방식을 이해할 수 있으며, 최신 디버깅 기술도 학습할 수 있습니다.

<전문가를 위한 C++>는 모두 5개의 장으로 구성되어 있습니다.

1장의 제목은 '전문가를 향한 C++ 첫걸음'으로 C++의 기본 소양을 다룹니다. 지면 관계로 말미암아 이 책에서 C++의 개론서에서 다루는 기본적인 내용을 모두 다루지는 못하므로 C++의 이해가 부족한 독자는 개론서를 본 후, 정리하는 차원에서 보는 것을 추천합니다. 이 장에서 다루는 코딩 스타일 가이드는 꼭 한 번 읽고 정리했으면 하는 바람이 있습니다.

2장은 '전문가답게 C++ 소프트웨어 디자인하기'입니다. 제목에서 볼 수 있듯이 프로그램 디자인에 대해 소개합니다. 코드를 재사용하도록 디자인해야 하는 이유와 방법을 소개하며, 코드의 구조화에 대한 팁과 인터페이스 디자인에 대한 원칙 등을 소개합니다.

3장은 '전문가답게 C++ 코딩하기'입니다. 동적 메모리와 관련된 주제부터 클래스와 객체에 대한 내용, 코드 재사용성과 다형성을 포함한 활용 사례 등을 다룹니다. 그리고 템플릿을 이용한 제네릭 프로그래밍의 개념을 소개합니다.

부지런히 봤는데, 리뷰를 마쳐야 할 시점에 여기까지 밖에 보지 못했습니다.  3장에서는 이외에도 I/O, 에러 처리, 표준 라이브러리, 정규 표현식 등을 소개하고 있습니다. 4장과 5장은 C++ 고급 기능와 소프트웨어 공학에 대해 다양한 관점에서 이야기를 진행합니다. 세부 목차를 보면 재미있는 주제가 많은데, 리뷰를 마치고 더 읽어보려 합니다.

마치면서

<전문가를 위한 C++>은 30 챕터와 4 부록으로 약 1,500페이지 분량으로 구성되어 있습니다. 예측할 수 있듯이, 이 책에서 다루는 내용은 방대합니다. C++에 입문하는 독자가 이 책을 보진 않겠지요? 입문서를 본 후, 이 책을 보시는 것을  추천합니다. <전문가를 위한 C++>은 C++에 대해 경험있는 개발자가 최신 스펙을 경험하고 학습하는데 도움을 줄 수 있을 것입니다. 

Java와 유사하게 어느 시점에 C++의 발전 속도가 느리다고 느꼈었는데, 최근 Java와 같이 C++의 개선속도가 놀랍도록 빨라지고 있음을 체험할 수 있었습니다. 한동안 C++에 대해 경험하지 못했는데, 이 책을 통해 C++의 개선 사항에 대해 이해할 수 있었습니다.

안타까운 점은 리뷰 기간이 짧아 이 책을 모두 보고 리뷰를 남기지 못해 아쉽습니다. 아직 <전문가를 위한 C+>의 전체 내용을 모두 읽어보진 못했지만, 천천히 시간을 두고 꾸준히 읽어볼 것입니다. 

1. 읽게된 계기

   - 웹개발자이자 안드로이드를 조금 다룰줄 아는 개발자로써 늘 managed 언어만 다루었었는데, unmanaged 언어 하나쯤은 공부해보고 싶은 욕심이 있었습니다. 비전공 개발자로써 방통대를 다니며 C++언어를 조금 접해본게 전부이지만, 완전 기초부터 책을 보면 지루할것 같고, 조금은 난이도 높은 책으로 공부함으로써 조금은 도전적으로 공부를 해보고 싶은 욕구가 있었습니다.

- 보통 IT 서적들 중에 '전문가를 위한 ㅇㅇㅇ' 시리즈들은 사실 보면 출판사도 각기 다다르지만, 기본적으로 기초 이상의 내용을 다루고 실무적이고 중급 이상의 내용을 포함하고 있습니다.

 

2. 읽으면서

- 책이 무척 두껍습니다.  개발자로 전향하면서 읽어본 'Professional ASP.NET'라는 2000여페이지가 넘는 책을 읽어본 이후로 가장 두꺼운 책이었습니다. 1500여페이지에 달합니다.

- 총 5개 파트로 구성이 되어 있는데,  첫번째 파트는 '전문가를 향한 C++첫걸음' 단계로 기초 내용을 훓고 있습니다. 기초 문법과 코딩스타일을 다루고 있습니다. 기초적인 내용이고 C++이 아니더라도 프로그래밍에 경험이 있는 사람들은 충분히 읽을 수 있고, 도움이 될만한 내용들을 포함하고 있습니다. 

- 두번째 파트는 코드 재사용, 객체지향 디자인에 관련한 내용이 포함되어 있으며, Java와 C#, Python을 주로 다루어본 저로써도 충분히 읽기에 어려움이 없었습니다. 

- 세번째 파트는 본격적인 unmanged언어에 관련한 메모리 관리 기법을 다룹니다. 클래스와 객체를 본격적으로 여러가지 기법을통해 메모리를 효율적으로 사용하는 방법을 배우게 됩니다. 여기서 부터는 managed 언어에 익숙해져 있는 저로써는 조금씩 어려움에 봉착했습니다. 여러번 반복해서 공부해야 저의 것으로 만들 수 있을 것 같습니다. 

- 네번째 파트와 다섯번째 파트는 아직 읽지 못했습니다. 네번째 파트는 'C++ 고급기능 마스터하기' 로 여러 고급기법고 멀티스레딩 프로그래밍에서 다루고 있습니다.  여기도 조금은 쉽지 않은 파트가 될 것 같습니다. 

- 다섯번째 파트는 'C++소프트웨어 공학' 입니다. 여러 '소프트웨어 공학', '효율적인 C++코드 작성법' , 테스트, 디버깅, 디자인 기법등을 다루고 있습니다. 아직 읽어보지 못한 파트이지만 이부분은 충분히 읽는데 무리가 없을것 같습니다.

- 세번째와 네번째 파트가 가장 고비네요, 한 번 공부하는 것은 아직 unmanaged언어에 경험이 적은 저로써는 부족한 듯합니다. 여러번 다시 공부가 필요할 것 같습니다.

 

3. 소감

- 난이도가 조금 있는 책이며, 한 번 읽어보는 것으로는 자신의 것으로 만들기 힘들며, 예제와 연습 프로젝트를 기획하여 응용프로그램을 만들며 적용해가면서 공부하면 무척 좋은 책이 되지 않을까 합니다.




일단 책을 처음 접하고 크게 두번 놀랐는데, 

책 가격에 한번 놀라고, 책 두께에 두번 놀란다.

그만큼 책 내용은 이런저런 군더더기 내용없이 깔끔한 내용으로 채워졌음에도 두껍다.

물론 방대한 책내용을 모두 습득할 수 있는지는 별개이다.

 

만약 C++의 기본적인 내용을 다시금 상기코자 한다면 Chapter 1, Chapter 2를 먼저 읽어보길 권한다.

목차를 훝어보고 흥미로운 주제부터 읽어보는게 쉽게 질리지 않아 Part 3. - Chapter 7. 메모리 관리부터 읽었다.

'Part 3. 전문가 답게 C++ 코딩하기' 라는 파트명 답게 구성하는 챕터 하나하나 모두 시간을 들여서 읽게 한다.

 

개인적으로는 'Chapter 14. 에러 처리하기' 챕터로 에러 처리에 대한 내용을 별도로 빼 설명하고

'Part 5. C++ 소프트웨어 공학'-'Chapter 26. 테스트 숙달하기', 'Chapter 27. 디버깅 완전 정복' 과 같이 프로젝트 개발 프로세스와 디자인에 대한 내용을 함께 설명하고 있어 좋다.

 

마지막으로 이 책을 읽어보고자 하는 분들이 두께에 지레 겁먹지 않았으면 좋겠다.

두께만큼 읽을거리가 많은 책이다.

 

 

IMG_4559.JPEG

 

 

힘들게 공부한 만큼 얻는 것도 많은 언어가 C++이 아닐까 싶네요. 컴퓨터 내부에서 프로그램이 어떻게 돌아가는지 특히 메모리 관리 측면에서 많은 것은 스스로 하고 싶다면 C++이 괜찮은 선택입니다. C++ 기초플러스라는 책으로 C++을 처음 공부했는데 정말 힘들었습니다. 그 당시 나름 괜찮은 책이였지만 모든 것을 나열하는 식의 설명은 저를 지치게 만들기 충분했습니다. 책의 분량도 너무 많아 뒤쪽으로 갈수록 앞에 내용을 까먹게 되더군요.  이번에 본 '전문가를 위한 C++'도 물론 두꺼운 책이지만 구성은 정말 다릅니다. 제목처럼 정말 C++ 전문가를 만들기 위한 내용으로 가득합니다. C++ 기초부터 모든 것을 다루는 책이 아니라 C++17 최신 경향에 맞추어 실전 프로그래밍을 할 때 꼭 필요한 내용을 자세히 설명합니다. 이 책은 총 5개의 파트로 이루어져 있습니다. 

 

C++ 기초를 모두 설명하진 않지만 파트1에서 어느 정도 입문과정을 다룹니다. 프로그래밍 경험이 있는 사람이라면 C++이 뭔지 파악할 수 있습니다.  

 

파트2에서는 조금 이론적인 부분을 설명합니다. 어떻게 C++ 코딩을 해야하는지 코드 재사용 측면을 염두에 두면서 책을 읽으면 좋습니다. 

 

이 책의 하이라이트는 '파트3 전문가답게 C++ 코딩하기'인데 C++에서 중요한 부분을 정말 자세히 설명합니다. 메모리관리, 클래스, 템플릿, I/O, 예외처리, 연산자 오버로딩, 컨테이너, 알고리즘, 정규표현식 등을 이 파트에서 정말 제대로 배울 수 있습니다. 파트3만 700페이지가 넘으니 각오를 하고 읽으시기 바랍니다. 

 

파트4에서는 C++의 고급기능을 설명합니다. 말 그대로 고급기능이기 때문에 필요할 때 찾아보면 좋을 것 같습니다.  

 

마지막 파트5에서는 C++ 프로그래밍을 위한 많은 팁이 있습니다. 소프트웨어 공학, 효율적인 코드 작성법, 테스트, 디버깅, 디자인 패턴 등 정말 필요한 내용들로 가득합니다. C++을 좀 더 잘하기 위한 필수코스라고 생각합니다. 

 

부록에는 C++ 면접 예상 질문, 참고문헌, 표준 라이브러리 헤더 파일, UML 기초가 있습니다. 

 

전문가를 위한 C++ 책이 두꺼운 이유는 C++의 모든 내용을 다루고 있어서가 아닙니다. 정말로 C++ 전문가를 위한 커리큘럼이기 때문입니다. C++을 오래전부터 사용했지만 최신경향 C++을 몰랐는데 이 책을 통해서 하나하나 배우고 있습니다. 마음먹고 이 책을 자기 것으로 만든다면 프로그래밍 내공이 어머어마하게 상승하지 않을까 싶습니다. C++과 친해지고 싶은 현 개발자나, 컴퓨터 공학을 전공하는 투지 넘치는 분에게 추천하고 싶은 책입니다.

 오랜만에 필자의 주력 언어인 C++ 책을 리뷰할 기회가 생겼다바로 "전문가를 위한 C++" 책이 그것이다위 책의 개정 3판을 상당히 재미나게본 필자에게 있어서 이번 도서 리뷰 기회는 절대로 놓칠수 없없었다여하튼 필자의 여담은 여기까지하고위 책은 기존 제 3판에서 새로이 추가되었었던 C++14의 내용에 C++17에서 새로이 추가된 내용들이 정리된 책이다솔직히 이 책을 처음부터 끝까지 정독하기에는 큰 무리가 있다일단 책의 두깨를 보는순간 필자가 왜 이런 조언을 독자에게 하는지 이해가 될 것이다그리고 위 책은 친절한 만큼 그 내용 분량이 광대하여 C++을 처음 접하는 초심자들이 공부하기엔 썩 괜찮은 책이 아니다왜냐하면 하나 하나 너무 자세히 설명하고 다루고 있기 때문에 자칫하다간 금방 실증을 느끼고 C++의 참된 아름다움을 깨닫기 전에 영영 이 언어를 꺼리게 되는 현상이 발생할 수 있기 때문이다.


【어떤 독자를 위한 책인가】

 

 이 책은 앞서 필자가 언급한 것처럼초보자들이 보기에는 볼 내용이 너무 많다아니 너무 많다못해 그냥 법전 한권을 가져다가 통으로 외우세요라는 느낌이 책이다그렇기에 초심자들이 위 책을 가지고 처음 시작하기엔 좋지 않다다만 중급자고급자들이 개발을 하다 막히거나 혹은 특정 부분에 대한 이해, 3년 주기로 c++ stl이 업데이트 되는데 이 때 새로이 추가된 내용들이 무엇인지 궁금한 독자들이 위 책을 가지고 학습을 하면 곱절의 학습효과를 얻을 수 있는 책이다물론 위의 내용들은 c++ stl 커뮤니티에 들어가서 훨씬 디테일하게 찾아서 공부할 수 있는 내용이지만책에는 친절하게 잘 정리되어 기술 되어 있기 때문에 이번 C++ STL 버전에는 무엇이 새로이 추가되었는지 한눈에 파악하기 정말 좋다따라서 위 책을 사용하고 학습하길 필자는 권한다.


【책의 구성】 '전문가를 위한 C++책의 구성은 어떠한가.

 이 책은 C++에서 다루는 거의 모든 내용들을 다루고 있다코딩 컨벤션디자인 패턴객체지향 디자인 방법론메모리 사용방법함수 재사용템플릿 디자인컨테이너제너릭 타입 등등.. 이번 C++17에서 새로이 추가된 병렬처리 쓰레드와 크로스 플랫폼 개발 방법까지 (덤으로 면접에서 나올 법한 질문들에 대해서도 매우 친절히 정리되어 있으므로 취준생 여러분들이라면 이 쳅터를 필독하시길 권한다.) 말그대로 필자가 아는 선에서의 모든 것들을 다루고 있다그만큼 독자가 원하는 챕터를 선택하여 체계적으로 공부할 수 있는 기회가 넓은 책이라는 것이다또한 각 쳅터는 이론적 배경예제 코드이에 대한 설명과 하면 안되는 예와 권장하고 있는 예그리고 주의해야할 점 등등 논리적이며 체계적으로 정리되어 있다이는 공부를 함에 있어 부족함이 없는 충분한 지식을 전달하고 있음을 의미한다따라서 C++을 꼼꼼히 학습하고자 하는 분들에게 정말로 좋은 구성이라 할 수 있겠다.


【전문가를 위한 C++를 읽으며…….

 

 필자는 막 개발 세계에 입문하신 분들에게 항상 다음과 같이 권한다주력 언어 1개 그리고 서브 언어 2개 정도를 알고 있어야 한다고이때 주력 언어는 어떠한 경우에도 막힘이 없고 최신 트랜드에 대해 정말 잘 알고 있는 수준이어야 하며 서브 언어의 경우 간단한 레퍼런스만 있으면 어느정도 구현이 가능한 수준이어야 한다는 점을 강조한다왜냐하면 대부분의 언어는 비슷한 구조를 가지고 있다진짜 무슨 어셈블 그런 언어가 아니면 진짜로 비슷한 속성들을 가지고 있다. (단 언어의 성질이 완전히 바뀌는 언어들 간에는 그 특징이 완전히 다르므로 그것들에 대해서는 제외하도록 하자.) 그렇기에 한가지 언어에 대해서 전문성을 갖춘다면 다른 언어들을 학습하는 것에 대해서 상당한 시간과 비용을 절약할 수 있다.

 크게 전문성을 갖추기에 좋은 언어들을 추천한다면 C++, Java, Javascript, Ruby, python, go 등이 있고 그중에서 C++은 진입장벽이 좀 높은 편이다따라서 이 점을 잘 파악하여 주력 언어를 선정할 것을 권한다.

 

 

 

 


<나는 리뷰어다> 9월 이벤트 당첨으로 작성한 리뷰 입니다.


[한줄평]

최신 C++를 마스터하려면 알아야 할 C++와 C++17의 모든 것 아낌 없이 알려준다


[목차구성]

[Part 1 전문가를 향한 C++의 첫걸음]

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

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

CHAPTER 3 코딩 스타일


[Part 2 전문가답게 C++ 소프트웨어 디자인하기]

CHAPTER 4 전문가다운 C++ 프로그램 디자인

CHAPTER 5 객체지향 디자인

CHAPTER 6 재사용을 고려한 디자인


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

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 여러 가지 유틸리티 라이브러리


[Part 4 C++ 고급 기능 마스터하기]

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

CHAPTER 22 고급 템플릿

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


[Part 5 C++ 소프트웨어 공학]

CHAPTER 24 소프트웨어 공학 기법

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

CHAPTER 26 테스트 숙달하기

CHAPTER 27 디버깅 완전 정복

CHAPTER 28 디자인 기법과 프레임워크

CHAPTER 29 디자인 패턴

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

[부록 A] C++ 면접 예상 질문

[부록 B] 참고 문헌

[부록 C] 표준 라이브러리 헤더 파일

[부록 D] UML 기초


[대상 독자]

C++를 수년 동안 사용하더라도 C++ 고급 기능에 익숙하지 않거나 고급 기능을 사용한 적이 거의 없는 사람이 있다. C++ 코딩에는 자신 있지만 C++로 디자인하는 방법이나 바람직한 프로그래밍 스타일을 자세히 알고 싶은 사람도 있다. 또한 C++ 경험은 부족하지만 실전에 제대로 활용하는 방법을 배우고 싶은 사람도 있다. 이 책은 C++ 실력을 전문가 수준으로 끌어올리려는 분 모두를 대상으로 한다.


[이 책의 주요 특징]

- C++의 방대한 기능을 최대한 활용하여 효과적인 솔루션을 개발할 수 있도록 C ++ 사고방식을 제시한다.

- 어설프게 알고 있거나 실수하기 쉬운 부분을 바로 잡고 효율과 성능을 높이는 다양한 팁과 기법, 우회전략을 소개한다.

- 당장 프로젝트에서 마주치고 적용할 수 있는 현실적인 문제와 프로그램 예제를 소개한다.

- 구조적 바인딩, 중첩 네임스페이스, constexpr if를 비롯한 C++17부터 새로 추가된 기능을 소개한다.

- string_view, optional, 병렬 알고리즘, 파일시스템 API 등 C++17부터 새로워진 표준 라이브러리의 주요 기능을 심도 있게 살펴본다.


[서평]

이책은 C++ 문법만 알려 주는 책이 아니다. 정말 C++ 전문가 아니 프로 프로그래머로 가기 위해서 한번 읽어 봐야할 내용들이 많이 있다. C++ 17에 추가된 핵심기능인 람다, 파일시스템, 템플릿, 표준 라이브러리(STL), 문자열, 입출력과 같은 기본부터 제네릭 코드 작성, 타입 추론 템플릿 재귀, 메타 프로그래밍, 메모리관리, 멀티스레드 같은 고급 기능까지 다루고 있다. 소프트웨어 엔지니어링 측면에서도 알아야할 버전관리, 소프트웨어 개발 방법론, 코드 최적화, 테스팅, 디버깅, 프레임워크, 디자인 패턴까지 소개해 C++ 전문가가 되고 싶은 독자는 물론 다른 언어 개발자도 한번 눈여겨 볼만한 개발 기법들을 알려주고 있어 같이 봐도 좋을 것 입니다.


이 책의 전체 적인 구성은 총 5파트로 되어 있습니다. 1부에서는 전문가를 향한 C++의 첫걸음으로 C++ 기초 코스로 이루어져 있습니다. 스트링과 스트링 뷰 다루는 방법과 C++코드를 읽기 쉽게 작성하는 방법을 배울수 있습니다. 2부에서는 전문가답게 C++ 소프트웨어 디자인하기로 디자인 방법론, 객체지향 방법론, 코드 재사용의 중요성 등을 설명하고 있습니다. 3부에서는 전문가답게 C++ 코딩하기로 C++를 다루는 기법을 소개 합니다.  C++에서 메모리를 관리하기 위한 바람직한 방법, 재사용 가능한 클래스 작성법, 상속과 같이 언어의 주요 기능을 최대한 활용하는 방법 등을 소개한다. 또한 C++의 까다롭고 미묘한 기능, 입력과 출력을 다루는 방법, 에러 처리 방법, 스트링 현지화 방법, 정규 표현식 사용법 등도 소개한다. 연산자 오버로딩, 템플릿 작성법도 설명한다. 컨테이너, 반복자, 제네릭 알고리즘 등을 제공하는 C++ 표준 라이브러리도 소개한다. 표준 라이브러리에서 제공하는 시간, 무작위수, 파일시스템 등과 관련된 기능도 살펴본다. 4부에서는 고급 기능 마스터하기로 C++에서 잘 알려지지 않은 기능을 소개하고 고급 수준에 해당하는 기능을 사용하는 방법을 배웁니다. C++ 표준 라이브러리를 커스터마이즈하고 확장하는 방법, 템플릿 메타 프로그래밍 같은 템플릿 프로그래밍의 고급 기법, 멀티프로세서 및 멀티코어 시스템을 최대한 활용하기 위한 멀티스레드 프로그래밍 방법도 다룹니다. 마지막 5부에서는 C++ 소프트웨어 공학파트로 엔터프라이즈 수준의 소프트웨어를 작성하는 방법을 소개합니다. 현업에서 사용하는 최신 소프트웨어 공학기법과 효율적인 C++ 코드 작성 방법, 단위 테스트나 회귀 테스트를 비롯한 다양한 테스트 방법론, C++ 프로그램 디버깅 기법을 설명합니다. 또한 디자인 기법, 프레임워크, 객체지향 패턴을 한데 엮은 방법을 설명하고 크로스 언어 및 크로스 플랫폼을 위한 코드 작성 방법을 소개합니다.

 

『전문가를 위한 C++』(개정4판)은 C++에 대한 모든 내용을 코드와 솔루션 위주로 소개한다. 그리고 실전 프로그래밍에 적용할 수 있는 현실적인 기법을 다양하게 소개하였으며, 본 교재는 C++를 더 깊이 이해하려는 프로그래머에게 적합한 책이다.

KakaoTalk_20191013_000250309.jpg

 

한줄요약 : C++ 참고서계의 수학의 정석

 

일단 어렵다.

내용 설명은 엄청 자세하게 해주기 때문에 속시원면도 있는가 하면

굳이 이런 내용까지 알아야하나 싶은 점도 있다.

허나 C++ 전문가가 되기 위해서는 집에 하나쯤은 있었으면 하는 책이다.

 

초보자인 내 경우엔 아직까진 정독할 필요성을 느끼진 못한다.

 

책의 순서로는 C++ 프로그래밍 언어를 사용하기 위한 전반적인 내용을 알려준다.

그 후, 코딩 스타일에 대해 소개해주고 설계하는 방법으로 구성되어 있다.

 

신기한 점은 어깨너머로만 들었던 디자인 패턴에 대해 적혀있다.

디자인 패턴은 효율적으로 프로그래밍을 하기 위해 반드시 알아야 할 주제라고들 한다.

대한민국에 존재하는 대부분의 C++에는 이런 내용은 별도의 책으로 존재한다.

 

내가 가장 헷갈려 하는 부분 중 하나가 크로스 플랫폼이다.

다양한 운영체제가 있지만 늘 윈도우만 사용해왔기에 리눅스 같은 운영체제는 다소 어렵게 느껴진다.

허나 개발자로 가기 위해서는 크로스 플랫폼 뿐만 아니라

크로스 언어 애플리케이션 개발 방법도 알아야 한다고 생각한다.

 

초보자가 읽기에는 어려운 책이지만

그럼에도 불구하고 C++ 책 하나만 선택하라고 한다면 이 책을 선택하겠다.

마치 수학의 정석처럼 이 책 하나만 정복한다면 충분할 것 같은 느낌이 들기 때문이다.

 

드디어 C++ 기타책을 손에 넣게 되었다. 마침 한빛미디어에서 개정 신간을 볼 수 있게 리뷰 이벤트를 해주어서 드디어 볼 수 있게 되었다! 이 책의 명성 만큼 두께가 어마무시하다;;

내 에어팟 2개를 곂쳐야 이 책의 두께를 따라갈 수 있다;; 무려 1496페이지이다.

무려 30챕터나 된다;; 양이 진짜 많다...

이 책은 진짜 C++의 전반적인 내용들이 전부 들어가있다. C++의 기본적인 문법들, C++의 주요 특징들과 헷갈리는 기능들과 C++로 객체지향 프로그래밍을 할때 유용한 점들, 소프트웨어 공학적인 측면에서 C++을 다룰때 주의해야 하는 점들도 다루고 있다. 진짜 내용이 방대함...

이 책은 마치 사전같다. 진짜 사전 두께긴 하다. 이 책을 두고두고 볼 것 같다. 나는 특히 이부분이 마음에 들었다. 유독 C++에만 골머리를 앓게 하는 부분들이 있다. 그런 특징들을 잘 설명해주기 위해 따로 파트를 할애하는 것이 멋있었다고 해야 하나 암튼 그럼. r-value나 r-value reference들이 진짜 헷갈리는 건데 나름 개념을 잡아주는 것 같아서 좋았다. C++ 17로 바뀌면서 추가된 내용들도 반영이 되어서 진짜 C++중급자로 넘어가는 교과서와 같은 책이 된 것 같다. 내용도 그렇게 어렵게 다루지 않아서 술술 읽히고 좋은 것 같다. C++을 좀더 알고 싶어 하는 분들에게 강추다. 무조건 읽어보는 것을 추천한다. 내용이 많긴 하지만 확실히 다 유용한 내용이라는 것을 실감했다. 68000원이라는 큰돈이긴 한데 값어치 하는 것 같다. 나는 평소에 저런 C++고급지식들을 어떻게 알지 라고 많이 생각했는데, 요즘은 이런 좋은 책들이 많이 나와서 나도 하나하나 알아가고 있는 것 같다.

전문가를 위한 C++ 

 

학창 시절에 C++을 잠깐 배웠습니다. 

 

기회가 되면 다시 공부해야지 하는 생각을 불현듯 했는데요. 

 

파이선과 C++의 딥러닝 연산속도를 비교하기 위해서  책을 알아봤습니다.

 

찾은 책은 바로 '전문가를 위한 C++'입니다. 

 

처음 이 책을 본 순간 벽돌이다....

 

많은 전공 서적을 봤지만 페이지수가 2배 이상인 1400입니다.

 

엄청나게 압도적이었습니다. 

 

하지만 내용을 본 순간 생각은 달라졌습니다.

 

고급 기능들이 담겨 있는 책들이 기존에 많지 않았기 때문이죠. 

 

그럼 이 책에 대해서 짧게 정리해보도록 하겠습니다. 

 

c++.jpg

 

1) 표준화의 변화 

함수형 언어들의 대거 등장으로 기존 개발 코드들이 크게 변화하고 있습니다. 

 

이에 발맞추어 C++ 또한 표준화 작업에 들어갔는데요. 

버전 별로 차이가 있지만 최근 버전의 소스 코드들이 기존의 방식보다 줄어든 것으로 알 수 있습니다. 

 

크게 변화된 것은 표준 라이브러리에 변화입니다. 

표준 라이브러리가 변화된 것은 내부의 코드들을 전반적으로 바뀐 것이라고 볼 수 있습니다.

 

내부적(std 라이브러리)으로 문자열에 대한 포인터와 길이만 가지므로, 복사가 쉽지만 메모리에 할당이 안 됩니다.

 

향후 C++ 20은 어떠한 변화가 있을지 궁금합니다. 

 

전문가.jpg

 

 

2) C++ 병렬처리

주로 사용하는 언어가 Python입니다. 

cpython을 이용해서 병행해서 사용했지만, 생각만큼 퍼포먼스가 나오지 않았습니다. 

 

그중 찾은 방법이 C++을 활용한 병렬처리 방법인데요.

병렬 알고리즘을 바탕으로 작업을 해본 결과 C++ 단에서 작업하는 것이 빠른 것으로 확인됐습니다.

 

좀 더 소스를 다듬고 병행해서 작업하면 괜찮은 것으로 보입니다. 

 

PS.

30년이 넘은 오래된 언어 C++.

 

처음 접했을 때는 이해가 안 가서 너무 어려웠는데요. 

현업에 들어오면서 언어에 대한 이해도가 높아지면서 진입장벽을 넘어 편한 언어로 다가왔습니다. 

 

최근 표준화 과정을 거치면서 C++ 17 이전과 이후가 크게 바뀌었습니다.

 

개인적으론 현재 버전이 이해하기 쉽게 코드를 짤 수 있어서 눈에 잘 갑니다. 

단, 기존에 코드들을 어느 정도 유지보수 해야 한다는 것을 고려해야 한다는 점도 있죠. 

 

C++에 대해 좀 더 깊게 공부하고 싶은 사람들과 개발하는 분들에게 이 책을 추천해 드립니다. 

 

다운로드.png

 

전문가를 위한 C++ 책을 처음 읽었을때 드는 느낌 부터 설명하자면 굉장히 알찬 내용이며 국내에서 가장 번역이 잘된 책이라고 생각하는 책이다. 이책이 개정판이 벌써 4판까지 나왔으며 역시나 이책은 기본 서적 과 C++ 17 으로 설명이 되어있어서 표준을 준수하는 책이다. 또한 다양한 디자인 패턴, 간단한 병렬 알고리즘을 제공하기에 좋다. 메모리 관리에 대한 내용도 상세히 기술 되어있고, 디버깅에 대해서도 자세히 설명이 되어있어 이책은 업무를 진행을 하면서 다시 한번 지식을 일깨워주는 책이다. 개인적으로 설명은 핵심 위주로 작성되어 있는데, 개인적으로 이러한 부분이 좋다. 장황한 설명이 길어져 핵심을 결국 흐트려진 책이 많은데, 이책은 원하는 핵심을 간결하게 핵심만 짚어주고 이해가 되지 않을땐 직접 찾으면서 익히는 공부 스타일이 좋기 때문이다. 이책은 많은 사람들이 추천할 정도로 좋은 책임에는 분명함에 틀림이 없다. 하지만 이책의 난이도를 얘기해 달라면 당연히 기본 C++ 의 지식은 가지고 있어야 할 것이며, 이책을 통하여 그 기본을 한번 더 다지는 책이 될 것이라 강력하게 추천한다.

 

 

한빛미디어에서 '상품 협찬'을 받아 후기를 작성하였습니다.  
 
1.책을 읽기전에
전문가를 위한 C++을 읽기전에 C언어 입문서를 먼저 읽었다.
이 한권의 책으로 한번에 성과를 낼거라고는 생각하지 않는다.반복적으로 보고
어떻게 활용할지 방향을 잡아보고자 한다.
C++로 어플리케이션을 개발하기 위한 목적보다는 어떤 언어일까 궁금했다.
그리고 객체지향과 디자인패턴의 원리가 궁금해서 선택한 책이다.

[책 표지] 전문가를 위한 C++ 개정4판(마크 그레고리 지음, 남기혁 옮김,한빛미디어)
20191010_232240_001.jpg
2.책을 보면서
나는 주로 C#과 VB.NET을 주로 사용해서 개발을 하고 있다. 
별도의 디자인패턴에 대한 책도 소장하고 있지만 이 책 CHAPTER 29에 있는 디자인 패턴을 반복적으로 읽었다.
다른 언어에서는 잘 소개되지 않고 별도의 책을 봐야 하지만 이 책에는 특별히 디자인 패턴이 소개되어 있다.
일단은 문법들이 전부 낯설다. C#과는 사뭇 다른 느낌이다.
책 분류는 초급이라고 되어있는데 내가 보기에는 솔직히 어렵게 느껴진다.

3.책을 읽고 난후
JAVA,C#,VB와 같은 언어와는 많이 다른 느낌이다.
1장은 대개 가볍게 읽을수 있을거라 생각했지만 예상과는 달리 낯설다.
가볍게 읽고 넘어갈 수 있는 부분이 그리 많지 않았다.
앞으로 수차례 더 정독을 해야 어떻게 공부해야 할지 어느정도 감이 올것 같다.
C언어에 익숙하거나 C++에 어느정도 사용한 분이라면 좀 다르겠지만
나는 이 책에서 말하고자하는 큰 줄기조차 따라가기 힘들었다.
C언어에 대한 선수지식이 더 있어야 되겠다는 생각을 해보았다. C 입문서를 몇번 더 보고 다시 도전해 봐야겠다.
새로운 언어를 익힌다는 것, C++을 공부한다는 것, 마음을 다잡고 다시 시작해야겠다.
언제나 그래왔듯이 코드 입력하고 분석하는 작업을 반복에 또 반복을 해야 할 것 같다.
 

4100.jpg

 

4101.jpg

 

 

책을 받고 나서 책의 두께를 보고 오랜만에 C++ 프로그래밍 언어의 위대함을 느꼈다.

원서 제목은 Professional C++, 4th edition.

벌써 네번째 개정판으로, John Wiley & Sons와 Wrox 출판사의 원서를 번역한 책이다.

 

​이 책은 C++을 사용하지만 C++의 고급 기능에 익숙하지 않거나, 고급 기능을 사용한 적이 거의 없는 사람, C++ 코딩에는 자신있지만 C++로 다자인하는 방법이나 바람직한 프로그래밍 스타일을 자세히 알고 싶은 사람, C++ 경험은 부족하지만 실전에 제대로 활용하는 방법을 배우고 싶은 사람 등 다양한 요구를 반영하여 독자의 C++ 실력을 전문가 수준으로 끌어올리고자 이 책을 집필했다고 한다.

 

이 책의 목적은 C++의 초급부터 중급 수준의 실력을 전문 C++ 프로그래머 수준으로 끌어올리는데 있다고 한다. 독자의 수준에 관계없이 프로그래밍 기초는 갖추고 있어야 이 책을 읽을 수 있다. 그렇지 않으면 이 책을 읽는 의미가 하나도 없다. 이 책에서는 코드의 품질과 프로그래밍 효율을 동시에 향상시킬 수 있는 C++ 프로그래밍 기법도 소개하고 있다. 특히 C++ 17에 새로 추가된 기능을 이 책 전반에 걸쳐 소개하고 있다.

 

​이 책은 총 5부로 구성되어 있다.

1부 전문가를 향한 C++ 첫걸음

2부 전문가답게 C++ 소프트웨어 디자인하기

3부 전문가답게 C++ 코딩하기

4부 C++ 고급 기능 마스터하기

5부 C++ 소프트웨어 공학

 

​1부는 C++ 초단기 속성 코스이다. 이미 알고있는 사람은 넘어가도 좋고, 다시 한번 리뷰 차원에서 읽는 것도 괜찮을 것 같다.

C++의 가장 기초적인 문법부터 코딩스타일까지 한번쯤은 읽어보면 좋은 내용들이다. 특히 코딩스타일은 개인마다 선호하는 것이 다르겠지만, 코딩을 할 때 일반적으로 지켜야할 것들을 다시한번 생각하게 한다.

 

2부에서는 본격적으로 C++ 전문가가 되기 위한 디자인 관련 내용들이다.

전문가다운 C++ 프로그램 디자인, 객체지향 디자인, 재사용을 고려한 디자인 등 디자인 패턴에 대한 내용들을 담고 있다. C++ 디자인에서 가장 핵심적인 원칙은 추상화(abstraction)과 재사용(reuse)이다. 이 두가지는 꽤 중요한 내용으로 이 책에서도 여러번 다루고 있다.

 

​2부에서 디자인을 다뤘다면 3부에서는 전문가답게 C++를 다루는 기법을 소개한다.

C++에서 메모리 관리를 위한 바람직한 방법, 2부에서 다뤘던 재사용 가능한 클래스 작성법, 에러 핸들링, 연산자 오버로딩 등 C++ 코딩시 자주 마주하게 되는 내용들에 대해 전문가답게 어떻게 해야하는지 소개하고 있다. 이 책의 핵심부분이고 꽤 많은 내용이 담겨 있다. 하나하나 차근차근 학습하며 권장한다.

 

4102.jpg

 

 

4부에서는 C++의 잘 알려지지 않은 기능을 소개하고, 고급 수준에 해당하는 기능을 사용하는 방법을 소개한다.

반복자, 템플릿, 멀티스레딩 등을 사용하는 방법이 자세히 설명되어 있다.

 

4103.jpg

 

​5부에서는 소프트웨어 공학에 대한 내용이다. 

예전 내용부터 최신 내용까지 간단히 읽어볼 수 있고, 효율적인 코드 작성법, 테스트, 디버깅 등 하나의 프로그램을 만드는데 일련의 과정에 대한 내용을 담고 있다. 또 디자인 기법 및 디자인 패턴, 크로스 플랫폼 개발 방법 등 다양한 내용을 다루고 있다.

 

​부록에서는 기술면접에 나올 법한 C++ 예상 질문을 장별로 소개하고, 다양한 참고 문헌을 부연 설명과 함께 제시하고 있다.

기술면접 관련해서 기억해야할 사항, 질문 유형 등의 내용을 파악하면 좋을 것 같다. 실제 면접을 보지 않더라도 C++ 프로그래머로서 알아야 하는 내용들이 많아서 관련 내용들을 꼭 익히면 좋을 것 같다.

 

​C++에 대한 레퍼런스는 책에서 소개하는 다음 2개의 사이트에서 참고하면 좋다.

www.cppreference.com

www.cplusplus.com/reference/

 

그리고 이 책의 예제소스는 한빛미디어 홈페이지에서 확인할 수 있다.

http://www.hanbit.co.kr/media/books/book_view.html?p_code=B3215427289

​이 책의 학습을 위해서 예제소스를 활용해도 좋지만 직접 코딩하면서 학습하는 방법을 추천한다.

 

이 책은 내용이 상당히 방대해서 책 두께도 꽤 두껍지만, 내용 자체가 C++의 매력을 한껏 느낄 수 있는 책이다.

이정도 내용을 알아야 C++ 전문가가 될 수 있을까라고 물어본다면 그렇다라고 조심스럽게 말해본다.

C++ 전문가가 되기 위해서 내용이 상당히 방대하지만 하나씩 차근차근 내 것으로 만들어가야겠다.

 

한빛출판사의 나는 리뷰어다 활동을 통해 도서를 제공받아 작성한 리뷰입니다

 

​#전문가를위한C++ #C++ #한빛미디어 #나는리뷰어다

IMG_3712.JPG

 

처음 프로그래밍을 시작할 때 C++로 시작했었습니다.

 

 

도스에서 윈도우즈로 넘어가고 윈도우즈 버전이 바뀌면서도 계속 C++로 작업을 했었고.

앱을 개발할 때도 부분 부분 C++로 작업을 했습니다.

 

C++은 처음 배우기는 어렵지만, 한번 제대로 배우면 그 유연성과 속도, 확장성으로 인해 손을 뗄 수가 없습니다. 또한, 이 언어를 익히면 다른 언어는 정말 쉽게 익힐 수 있습니다.

 

이 책을 처음 접했을 때는 (이전 판) 제가 부스트 라이브러리를 사용하다가 이 라이브러리의 상당 부분이 C++11에 포함되었을 때, 기존에 알고 있던 내용을 다시 정리하기 위해 원서부터 읽었습니다.

 

이 책의 번역 개정판이 나온다는 얘기를 듣고 계속 기다리고 있었습니다. 

 

처음에는 단순히 프로그래밍 문법 책인 줄 알았는데 읽으면 읽을 수록 이 책의 진가는 더 빛을 바랬습니다. 

 

목차를 보면

 

overview -> 코딩스타일 -> 설계 -> 코딩  순으로 어떤 흐름에 따라 책이 전개되고 있습니다.

 

그리고 추가적으로 효율적으로 코딩 하는 방법, 디자인 패턴, 테스트 그리고 마지막으로 크로스 프랫폼에서 사용하는 방법을 설명하고 있습니다.

 

일반적인 C++ 책에서 다루지 않는, C++이 아니더라도 소프트웨어 개발시 반드시 알고 있어야 할 내용까지 이 한권의 책에서 다 다루고 있습니다.

IMG_3715.JPG

IMG_3717.JPG

특히, 디자인 패턴은 효율적으로 프로그래밍을 하기 위해 반드시 알아야 할 주제이며 

 

windows에서 뿐만 아니라 ios, android 그리고 osx 환경에서 개발을 하기 위해서는 마지막 단원인 크로스 플랫폼과 크로스 언어 애플리케이션 개발 방법에 대해서는 알고 있어야 합니다.

 

저는 C++ 책은 이 책 한권만 가지고 필요할때 계속 찾아보고 있습니다. 

 

 

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 상품명 :
전문가를 위한 C++(개정4판)
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
전문가를 위한 C++(개정4판)
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
전문가를 위한 C++(개정4판)
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실

최근 본 상품1