-
-
전문가를 위한 C++ 2 - 개정판, C++11, STL, 템플릿, 디자인 패턴, 객체지향의 원리를 만나는 유쾌한 방법
마크 그레고리 외 지음, 권오인 옮김 / 한빛미디어 / 2013년 10월
평점 :
구판절판

C++11 버전에서는 C++ 많은 패러다임의 변화를 읽을 수 있다. 특히 많은 라이브러리를 통합하려는 시도들이 진행되고 있으며, 다른
언어에서 추구하는 바를 빠르게 적용시키고자하는 노력을 엿볼 수 있다. 앞으로도 빠른 버전업이 예상된다. 각 컴파일러들도 빠르게 11의 내용들을
적용시키고 있고 우리들이 학습해야 될 내용이 조금 더 많아지기 때문에 지속적인 학습노력이 필요한 때이다. 
C++를 다룬지 10년정도 됐지만, 지금도 C스타일과 섞어서 사용하는지라 지금도 C++ 활용도는 50%정도라고 할 수 있다. (앞으로도
꾸준한 학습이 필요하다.
)
내가 이 책의 2권을 먼저 읽은 이유는 1권의 내용이 어느 정도 문법적인 내용이 다수를 차지하기 때문에 대충 읽을 것 같은 생각이
들어서이다. 그리고 실제 나한테 필요한 내용이 1권보다는 2권에 많기 때문이기도 하다. (추후 1권도 필요시에 참조할 생각이다. 버전 11에
추가된 내용은 지금도 거의 사용하지 않지만, 조만간 컴파일러에서 어느정도 지원하기 시작하면 반드시 써야하는 기능들이 많기 때문이다.)
첫장부터 만만치 않은 내용(3부)이 나오지만, 4부부터는 소프트웨어 엔지니어링 관련된 내용으로 조금 더 C++의 전체적인 모습을 보여준다.
특히 디자인패턴부분은 많은 도움이 된 것 같다. 
이 책을 단기간에 읽으려하기 보다는 최대한 필요할 때 필요한 부분만 읽기 바란다. (왜냐하면 이 책을 읽지 않아도 코딩하는데는 문제가 없기
때문이다.) 이 책은 부제에서 말하듯 C++11을 대하는 유쾌한 방법이기 때문이다. 한번에 머리에 집어넣다가는 별로 유쾌하지 않고 남는
것도 없을 것이기 때문이다. 그리고 C++ 공부하는 초심자는 조금 어려운 내용이기 때문에 C++를 전반적으로 이해한 후 읽어보길 권한다.
잘못하면 몇 년뒤에 먼지쌓인 빨간책을 보개 될 수 있기 때문이다. (나중에 한번은 꼭 보게 될 가능성이 있다.)
2권은 아래와 같은 구성으로 이뤄졌으며, 각장의 내용을 간단히 요약하면 아래와 같다.
- 연산자 오버로딩
총괄적인 내용 및 산술/비트/논리 연산자 설명
입축력, 서브스크립팅, 함수 호출, 변환, 역참조 연산자 (특히 역참조 연산자는 11에서 처음본 것 같다.)
메모리 할당/해제 연산자 (이것은 그냥 알아두기만 하자. 쓰면 오히려 골치아프니깐.)
- 템플릿, 표준 라이브러리, 메타프로그래밍
템플릿 개요 및 템플릿 클래스, 함수 템플릿
재귀, 부분 특수화, 오버로딩을 활용한 특수화 카피
타입 추론과 가변 인자 템플릿 (11에 추가된 기능으로 사실 지금도 이해하기 어렵다.)
메타 프로그래밍
- 제네릭, 메모리 관리, 멀티스레드
동적 메모리 및 저수준 메모리 동작 메커니즘
아토믹 워크 라이브러리, 쓰레드 풀
스레드 디자인 요령 (반드시 이해하고 넘어가야 한다. ^^)
- 최적화, 테스팅, 디버깅, 디자인 패턴
생명주기 모델, 나만의 개발 절차와 방법론 (실무자라면 공감할 내용들이다.)
언어 수준, 디자인 수준 효율성과 프로파일링 방법
- 소프트웨어 공학, 개발 방법론, 소스 코드 관리
품질관리 및 크로스플랫폼 전략
디버깅 정복 (실무에서 도움이 될 부분이다. 기억하라.)
테스트 익히기
- C++ 면접 예상 질문
이직 또는 취업시 면접 내용
요즈음은 C++가 한물간 언어라고해서 많이들 소외되고 있지만, 이것만 잘 알고 있어도 실무에서 20%는 더 사용할 수 있는 무기라고
생각한다면 한번씩은 꼭 익히기를 바란다.