drv***
2023-08-27

더 쉽게, 더 빠르게, 더 깔끔하게! 프로그래머가 알아야 할 C++와 C++20의 모든 것
Professional C++은 C++ 언어의 최신 기능을 소개하면서 동시에 언어의 디테일한 부분까지 다루는 1600여 페이지의 두꺼운 바이블입니다. C++은 오랫동안 발전하고 기능이 지속 추가되면서 상당히 복잡하고 거대해졌습니다. 대부분의 개발 시에는 언어 전체의 일부만을 사용하는 것이 일반적입니다. 예를 들어 비즈니스 로직을 만들 때는 전통적인 문법을 사용하여 효율성을 높이고, 라이브러리와 같은 공통 로직을 만들 때는 심도 있는 템플릿 문법이나 최신 기법을 사용하여 효율성을 높이는 경향이 있습니다. 높은 성능과 탁월한 이식성을 가지면서 낮은 수준에서 높은 수준까지 다양한 분야에서 사용하다 보니 이렇게 오래된 문법과 최신 기법의 공존이 불가피하며, 개발자들은 구현 상황에 따라 기술 간극을 매우기 위해 레퍼런스 바이블을 찾아볼 수밖에 없습니다. 이 바이블 책의 첫번째 가치는 여기에 있습니다.
저자인 마크 그래고리는 MVP summit 행사 때 옆자리에 앉은 적도 있었고 몇 번이나 회의장에서 토론을 가진 적이 있습니다. 푸근한 인심좋은 옆집 아주머니 모습이지만, 토의가 시작되면 대단히 열정적이고 C++에 대한 깊은 생각과 의견을 뿜어내어 주위 사람들을 단번에 집중시키는, 요즘 말로 소위 C++계의 인싸이며, C++ 메일링 리스트에서도 가장 적극적으로 의견을 내는 분 중 하나입니다. Professional C++ 이라는 전통 있는 타이틀의 단독 저자로서, 저술한 책에서 디테일을 놓치지 않으려한 문장을 통해 그때의 열정적인 모습이 떠올랐습니다.
Professional C++의 포지션은 사실 조금 애매합니다. 입문자가 보기에는 적절치 않고, 숙련된 사용자들을 위해서는 The C++ Programming Language나 cpp reference가 있기 때문입니다. 혹은 Effective C++ 처럼 매혹적인 팁이나 무릎을 칠 만한 기법이 쏟아지지도 않습니다. 너무 고급지지도, 입문자를 이해시키지도, 응용/활용 도서도 아닙니다. 그리고 술술 읽어 지는 잘 저술된 책과 비교하면 뭔가 문장이 장황한 느낌도 있습니다. 또한 내용 구성이 복잡하여 중요한 내용과 그렇지 않은 내용을 딱 구분하여 읽기도 어렵습니다.
하지만 (원서 기준) 새롭게 추가된 C++20의 개정사항을 중심으로 효과적으로 C++ 코드를 디자인하는 변경된 방법이나 문제를 새롭게 해결하는 방법, 테스트/디버깅 사례를 실제 코드 위주로 설명하는 내용은 기존 개발자들이 변화된 기술에 적응하는데 필요한 부분입니다. 업무 중에 읽기는 부담도 되고 내용도 방대하므로, 휴일에 문법 전체를 다시 한번 훑는다고 생각하고 빠르게 읽는다면 최신 기법으로 디자인된 코드를 작성하는 방법이나 유용한 팁을 얻을 수 있고, 이를 포함한 "많은 것"을 배울 수 있습니다. 특히 그 "많은 것"은 저자가 오랜 기간 C++ 전문가들과 토론한 내용을 바탕으로 한 결과로, 폭넓고 올바른, 정답에 가장 가까운 방법입니다. 인터넷의 기술문서를 찾고 올바르지 않은 내용으로 헤매는 시간을 생각해 보면 이 책의 가치를 다시 가늠해 볼 수 있습니다.
이미 저자는 C++ 23을 반영한 Professional C++ 6판 원고를 작성하고 있으며 올해 안에 새로운 도서가 나올 예정이라고 합니다. 새 책의 번역본도 접하게 되어 우리나라 개발자들에게도 도움이 되기를 소망합니다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."