좋은 C++ 책들 + 레퍼런스들


원본 링크 : (https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)

(본 글에는 번역본 링크만 남깁니다. 원서 아마존 링크는 해당 링크를 참조하세요)


책 아래에 주딱의 짧은 평을 첨부했습니다.


입문

C++ Primer (S.Lippman, J.Lajoie, B.E.Moo) (http://www.yes24.com/Product/Goods/9124193)

- 프로그래밍 입문자가 C++를 익히기에는 이것만한 것이 없음. C++11까지 커버. (짭퉁인 C++ Primer Plus와 헷갈리지 않도록 주의!)


C++로 배우는 프로그래밍의 원리와 실제 (B.Stroustrup) (http://www.yes24.com/Product/Goods/4060690)

- C++ Primer가 "C++" 프로그래밍 입문서라면, 이 책은 C++ "프로그래밍" 입문서 느낌.

꼭 C++를 익히는 목적만이 아니더라도 프로그래밍 입문 관련 유용한 꿀팁이 충실해서 좋음


A Tour of C++ (B.Stroustrup) (http://www.yes24.com/Product/Goods/68875419)

- 프로그래밍을 이미 어느 정도 할 줄 알지만 C++는 모르는 사람이 C++를 처음 배울 때 최고로 좋은 책.

아예 프로그래밍을 처음 배우는 입문자라면 이 책은 적합하지 않음.


중급

Effective C++ (S. Meyers) (http://www.yes24.com/Product/Goods/17525589)

- C++를 잘하기 위해 알고 넘어가야 할 여러 팁들을 알려줌.

C++03 기준이므로 많이 오래되었다는 것을 감안해, 후속판인 Effective Modern C++도 같이 보는게 나음


Effective Modern C++ (S. Meyers) (http://www.yes24.com/Product/Goods/20288684)

- C++11 이후를 잘하기 위해 알고 넘어가야 할 여러 팁들을 알려줌.

이거 읽으면 Effective C++은 안 읽어도 되느냐? 라고 하시는데,

Effective C++를 읽었다는 전제하에 쓰여진 책이기 때문에 더욱 더 둘 다 읽는 게 좋습니다.

Effective C++만 읽었을 경우 오래되어 틀린 내용을 업데이트할 필요가 있으므로 더욱 더 둘 다 읽는 게 좋습니다.

시간이 없어서 둘 중 하나만 읽으려면 이거 보셈


Effective STL과 More Effective C++는 너무 오래되어서 비추


C++ 코어 가이드라인 (https://github.com/isocpp/CppCoreGuidelines)

- C++ 고인물들이 직접 써주는 온라인 가이드라인입니다.


C++ 레퍼런스 (https://en.cppreference.com/w/)

- C++ 관련 위키식 레퍼런스입니다. 가장 정확하고 최신입니다.

다만 어디까지나 레퍼런스이므로, 이걸 학습 교재 비슷하게 쓰기에는 부적합합니다.



중고급

The C++ Programming Language (B.Stroustrup) (http://www.yes24.com/Product/Goods/23441719)

- 스트롭스트룹 할배가 직접 쓴 C++11/14 관련 풀 가이드북입니다.

아주 좋은 책이지만 너무 지엽적인 부분도 많고, 지금은 통용되지 않는 부분도 많아서 cppreference 같이 켜놓고 걸러서 보시는게 좋습니다.

스트롭스트룹 할배한테 메일 보내봤는데 5판 쓸 계획은 현재는 없다고 함.


C++17 - The Complete Guide (N.M.Josuttis) (번역 없음, https://leanpub.com/cpp17)

- Effective Modern C++는 C++14에서 멈춘 책입니다. 그거의 C++17 버전이라고 보시면 되겠습니다.

다만 더 깊고 빠삭하고, 더 지엽적인 부분도 다 다루기 때문에 다 정독할 필요는 없고 필요한 부분만 보면 됩니다.

역시 이미 C++14까지에 익숙한 사람을 위한 책입니다. 퀄리티는 아주 아주 좋습니다.


C++20 - The Complete Guide (N.M.Josuttis) (번역 없음, https://leanpub.com/cpp20)

- 위의 C++20 버전입니다.


Modern C++ Design (A.Alexandrescu) (http://www.yes24.com/Product/Goods/381064)

- 모던 C++ 디자인이라고 써있지만 2000년에 나온 22년 된 책이고 C++98 대상입니다!

하지만 이거보다 나은 'C++스러운' 디자인 패턴 책이 아직도 흔치 않습니다.

스마트 포인터 (unique_ptr, shared_ptr 나오기 전에 직접 만들어서 쓰던 것들), 싱글톤 등등 요즘은 안쓰는 부분은 적당히 스킵하면서 보셔야 하므로

현재 어떤 프로그래밍 패러다임이 먹히는지 아닌지를 스스로 구별할 수 있는 독자가 읽어야 적합합니다.


C++ Templates: The Complete Guide (D.Vandevoorde, N.M.Josuttis) (http://www.yes24.com/Product/Goods/64988431)

- TMP 고인물이 되고 싶으시면 보세요. 대부분 개발자한테는 그닥 필요 없는듯.


C++ Concurrency in Action (A.Williams) (번역 없음, https://www.amazon.com/dp/1933988770)

- C++로 동시성 프로그래밍 하려는 사람들의 필독서입니다.

다만 동시성 프로그래밍을 기초부터 체계적으로 알려주지는 않고, '동시성 프로그래밍을 C++로 잘 하는 법'을 쓴 책에 가깝습니다.

본인이 동시성 프로그래밍 아예 쌩 뉴비라면

The Art of Multiprocessor Programming (https://www.amazon.com/dp/0124159508/)로 먼저 기초를 다지는걸 추천. 근데 이건 자바 기반 책임.


Functional Programming in C++ (http://www.yes24.com/Product/Goods/77275593)

- C++로 함수형 프로그래밍을 하는 법을 알고 싶은 사람들한테는 이거보다 좋은 책이 없습니다.


Large Scale C++ Vol 1 (J.Lakos) (번역 없음, https://www.amazon.com/dp/0201717069)

- C++로 초대형 프로젝트 (천만 라인 이상)을 짤 때 프로그램 구조, 설계 이런 걸 잘 짜는 법을 다룬 책입니다.

너무 두꺼워서 주딱은 아직 못 읽어봤지만 레딧에서 극찬이 자자합니다.

이렇게 두꺼운데 Vol 2가 있다고 하는데.. Vol 2는 2023년 출시 예정이라 합니다.