C++ API 디자인

1. C++ 초보자라면 이 책(!) 꼭 읽자!! 두 번 읽자!!

C++ 테크트리(!)를 짜다보면 항상 만나게 되는 두 권의 책이 있다. EC와 MEC(Effective C++, More Effective C++)라고 불리는 두 권의 책인데 모든 C++ 개발자들이 이 책을 권한다. 그래서 사서 읽어보면 뭔가 공부를 처음부터 다시해야 되는게 아닌가 하는 두려움을 가지게 한다. 그 정도로 위대한 책이다. 최소한 저 두 권은 읽고 시작하는게 C++ 개발자의 마인드라 하겠다.

그런데 초보자에게 저 두 권은 과도하게 좋은 책이다. 심지어 도를 넘치는 ‘과도함’이 가져다 주는 고급 기술의 폭격이라 할 수 있다. 혹자는 그 정도는 모든 개발자가 알아야 된다고 할지 모르지만 필자의 생각하기에 막 C++에 입문한 개발자들에게 이렇게 과도한 기술중심의 서적은 웬지 모를 실망감과 함께 학습의욕을 저하시키는 가장 좋은 방법 중 하나라 생각한다.

‘C++ API 디자인’이라고 제목이 적힌 이 책은 C++로 API를 설계하는 개발자를 대상으로 작성된 책임에도 불구하고 매우 ‘훌륭한’ 중급서의 매력을 가지고 있다. 세번정도 반복해서 읽어본 결과 이 책은 API 디자인을 하는 개발자는 당연히 참고할 만한 훌륭한 서적임에 틀림없고, 더 나아가서 C++ 개발자가 중급이라는 눈에는 보이지 않는 영역으로 인도할 수 있는 좋은 지침서가 되어줄 것으로 생각된다.

2. 만들줄 안다면 쉽게 쓸 수 있다.

현재 C++의 표준안 개정에 따른 다양한 논의가 진행되고 있으며, 많은 컴파일러가 C++의 11년도 개정 버전을 지원하기 위해서 분주하게 움직이고 있다. 99년 이후 10여년 만에 개정안이 나오다 보니 변경점도 많고 변화도 심하다. 당연히 기존의 STL을 필두로 많은 API들을 제공하게 될 것이고 약간의 혼돈과 과도기적인 상황은 불가피할 것으로 예상된다.

API 디자인의 매력은 다른 개발자에게 API를 ‘전달’ 해줄 수 있다는 측면과 동시에 API에 대한 이해도를 높여서 적응력을 강화시킬 수 있다는 점이다. 본인은 API 개발에 관심이 많고 오픈소스에 대한 동경(!)이 있기 때문에 API를 설계하고 만드는 것에 관심이 많다. 그렇지만 API에 대한 설계와 재작에 관심이 없다 할지라도 이 책을 통해 API 설계와 재작에 관한 내용을 이해할 수 있다면 API에 대한 사용 방법 및 인식이 많이 달라질 것으로 예상된다.

3. 입문자에게…

필자가 생각하기엔 만약 당신이 C++ 입문자라면 ‘CH05 -> CH06 -> CH10 -> CH09’ 순으로 읽어보고 다른 내용들은 찬찬히 더 읽어보길 권한다.

Written on February 13, 2014