-
-
예제로 배우는 C++ STL
빌 와인먼 지음, 유동환 옮김 / 영진.com(영진닷컴) / 2025년 4월
평점 :
출판사로부터 도서를 제공받아 작성한 리뷰입니다

영진닷컴에서 출간된 예제로 배우는 C++ STL은 Packt에서 출간된 C++20 STL COOKBOOK을 번역하여 한글로 C++20을 소개하는 책이다. STL은 Standard Template Library: 표준 템플릿 라이브러리의 약자로 C++에서 generic programming을 수행할 수 있도록 하며, 타입에 독립적이면서도 타입 안정성을 유지하는 코드를 작성할 수 있게 해준다. 국제표준기구 ISO에서는 대략 3년마다 C++을 표준화하는데, C++20은 2020년 9월에 승인됐고, 2025년 현재 최신 C++은 C++23이다. C++20에는 format, modules, ranges 등의 새로운 기능이 추가됐고, 편의성도 개선됐다고 한다. 예를 들어 이전에는 vertor 사용시 매칭되는 모든 요소를 제거하려면 erase-remove 기법을 사용했다면, C++20에서는 std::erase 함수를 사용해서 간단하게 처리할 수 있도록 했다.

역자 윤동환님은 책 쓰는 프로그래머로 널리 알려져 있고, LG전자 CTO 선행 플랫폼 개발실에서 Chromium 기반 웹 엔진을 개발하고 있다고 한다. C++20 기반의 STL 책을 번역하게 된 계기도 Chromium이 C++20을 공식적으로 지원하기 때문에, 출판사 영진닷컴으로부터 번역 의뢰가 들어와 실무와 핛브을 동시에 진행할 수 있었다고 한다. 이 책은 총 11개의 장으로 구성되어 있고, 91개의 독립적인 레시피를 통해 C++20 STL의 다양한 측면을 읽히고 실무에 적용할 수 있도록 도와준다.

C++는 저자의 말대로 본질적으로 저수준 언어이지만 STL을 통해 프로그래밍 작업을 더 쉽고 효과적으로 만들어주며 오류 발생 가능성을 줄이기 위해 다양한 고수준 클래스와 함수, 알고리즘을 제공한다. 그러다보니 학습할 양도 많은데, 이 책은 C++언어를 이미 학습했거나, 어느정도 프로그래밍 지식을 갖춘 독자들에게 맞는 것 같다. 책에서도 C++20 표준 템플릿 라이브러리를 더욱 깊이 활용하기 원하는 중급에서 고급 C++ 프로그래머를 대상으로 하고 있다. 그 흔한 개발환경 설정같은 내용은 전혀 없고, C++20의 특징과 STL을 활용한 다양한 예제들로 가득 채워져있어 순수하게 C++20과 STL을 학습하려는 독자들에게 맞춰져 있다.

이 책은 총 11장으로 구성되어 있고, C++20의 새로운 기능을 소개하고, 최신 C++버전에 추가된 일반적인 STL 기능을 학습하도록 구성되어 있다. 특히 1장에서 소개된 format은 Python의 str.format() 메소드 기능을 기준으로 해서 iostream의 불편함을 해소시킨 것이 만족스러웠다. 7장의 문자열, 스트림과 서식화에서도 언급되는데 C++20의 format 라이브러리 도입 이후 STL 문자열 서식화는 크게 발전했다.

그 외에 책 속에서는 가장 많이 쓰이는 STL 컨테이너와 호환성있는 반복자, 람다 표현식이 STL 함수 및 알고리즘에서 어떻게 사용하는지를 학습한다. STL과 호환되는 알고리즘을 학습하고 앞서 얘기한바와 같이 문자열과 서식화 클래스를 익힌다. C++의 유틸리티 클래스에서는 날짜와 시간, 스마트 포인터, optional 등을 다루고, 스레드, async, 원자적 타입과 동시성, 병렬성을 익힌다. std::filesystem 클래스를 통해 파일을 다루고, C++20에 도입된 최신 개선사항도 알아본다. 마지막 11장에서는 트라이(trie)클래스, 문자열 분할 등의 실전 문제를 다룬 예제를 살펴본다.
현재 대부분의 메이저 컴파일러가 C++20을 완벽하게 지원하지만 --std=c++20 플래그를 반드시 설정해야 한다는 것을 알아야 한다.
책에 사용된 예제 코드는 다음 깃허브에서 다운로드 받을 수 있다.
https://github.com/Youngjin-com/CPP-STL
저자는 예제 코드를 gcc 13.1 버전을 이용해서 컴파일했지만, OS별로 지원하는 컴파일러와 IDE를 구분해놨으니 참고하면 좋을 것 같다. 개인적으로 Visual Studio 2022 Community 버전을 사용해서 예제를 컴파일 해보았다. 컴파일 하는 방법은 예제 코드의 how-to-run-examples.txt파일을 참조하면 된다.
C++에 관심이 있고, 특히 STL을 잘 다루고 싶은 독자들이라면 이 책을 적극 추천한다.
출판사로부터 도서를 제공받아 작성한 리뷰입니다
#프로그래밍 #STL #C++ #C++20 #예제로배우는C++STL #빌와인먼 #유동환 #영진닷컴