C++ 언어는 오랜 역사와 탄탄한 사용자 층, 그리고 고유한 지지 및 사용 기반을 가진 프로그래밍 언어입니다. 특정한 회사에 속해있지 않은 까닭에 C++ 컨퍼런스는 다양한 단체와 기구에서 주최되고 있는데요. 그 중 전세계 대표적인 C++ 컨퍼런스에는 아래 5개를 들 수 있습니다.



  • Cppcon

  • C++ and Beyond

  • Meeting C++

  • The ACCU Conference

  • C++Now


출처 : informit.com (자세한 비교 분석은 이 링크를 참고해주세요.)

C++ 컨퍼런스 중에서 제일 유명하고 규모도 큰 컨퍼런스로는 'CPP콘'(Cppcon)을 꼽을 수 있습니다. CPP콘을 살펴보면, 사전 등록자 참가 비용은 2016년 기준 995달러(약 116만원), 일반 등록자의 경우 1195달러(약 139만원)였는데요. 다행히도 우리는 비싼 항공료와 숙박비, 혹은 등록비를 부담할 능력이 안 돼도 공부할 의지만 있다면 대부분의 컨퍼런스들을 고화질 영상, 그것도 무료로 감상할 수 있습니다. 많은 컨퍼런스들이 종료되고 나면, 발표 자료와 발표 영상들을 깃허브와 유튜브에 모두 업로드해 두기 때문입니다. 그 중 C++ 개발자라면 놓치기 아쉬운 명강의들이 존재하는데요. 이러한 영상을 처음 접하시는 분들을 위해 최고의 강의 5개를 뽑아 정리해 보았습니다.

1. 션 페어런트의 'C++ 시즈닝(Seasoning)'

best_cpp_speak_by_kimheejun_01
▲ best_cpp_speak_by_kimheejun_01

C++ 언어 초심자 뿐만 아니라, C++을 오랫동안 사용해 온 분들이라도 션 페어런트란 이름은 익숙하지 않을 수도 있습니다. 그러나 C++ 세계에서는 션 페어런트(Sean Parent)는 중요한 C++ 컨퍼런스마다 키노트 연사로 나서는 등 많은 존경과 인정을 받고 있는 개발자이기도 합니다. 션 페어런트는 현재 어도비시스템즈에서 '최고 과학자'(Principle Scientist)라는 역할로 일하고 있습니다. 그는 2013년부터 [bref desc="C++ Seasoning, 2013 GoingNative 컨퍼런스에서 발표"] C++ 시즈닝[/bref], '[bref desc="Better Code: Data Structures, cppcon 2015 컨퍼런스에서 발표"]베터 코드 : 데이터 스트럭처[/bref], [bref desc="Better Code: Concurrency, Cppnow 2015 컨퍼런스에서 발표"]베터 코드 : 컨커런시[/bref]과 같은 훌륭한 명강의들을 남겼습니다.

그 중에서도 제가 소개해 드릴 최고의 강의는 'C++ 시즈닝'이라는 강의입니다. (참고로 션 페어런트는 이 시리즈에 속한 여러 동일한 강의들을 여러 컨퍼런스에서 발표하기도 합니다) 2013년 9월 마이크로소프트(MS)의 본사가 위치한 미국 레이몬드에서 열린 '고잉네이티브(GoingNative) 2013'에서 션 페어런트는 'C++ 시즈닝’이란 제목의 강의를 진행했습니다. 이 링크에서 내려받을 수 있습니다.

'C++ 시즈닝’ 강의에서 션 페어런트는 C++ 코드를 작성할 때 지켜야 할 몇 가지 가이드를 소개합니다. 예를 들어 raw loop 사용하지 않기, raw lock primitives 사용하지 않기, raw pointer 사용하지 않기 와 같은 얼핏보면 단순한 내용들 입니다. 그러나 단순히 수칙들을 전달하는 것에 그치지 않고, 자신의 구글에서 개발했던 경험을 바탕으로 그리고 여러 예제 코드들을 곁들이며 최고과학자라는 직함에 맞게 왜 그러한 주장을 하는지 친절하게 듣는 이들을 설득합니다.

션 페어런트를 강의를 무료로 볼 수 있는 곳


2. 스콧 마이어스의 '이펙티브 C++’ 시리즈 돌아보기
best_cpp_speak_by_kimheejun_02
▲ best_cpp_speak_by_kimheejun_02

C++ 세계에서의 최고의 록스타를 꼽으라면 아마도 C++ 창시자인 비야네 스트롭스트룹(Bjarne Stroustrup) 교수님과 스콧 마이어스(Scott Meyers) 두 분께서 1·2위를 놓고 다투지 않을까 생각이 듭니다. 그만큼 C++ 세계에서는 두분은 아주 유명하신 분이지요. 2014년 독일 베를린에서 [bref desc="유럽에서 주로 활동하는 미팅 C++(Meeting C++)라는 기구에서 주최했다."]'미팅 C++ 2014’[/bref] 라는 컨퍼런스가 주최됐는데요. 이곳에서 스콧 마이어스는 자신의 과거 30년 전 이펙티브 C++(Effective C++) 시리즈가 어떻게 시작되었는지, 그리고 어떤 일들이 있어왔는지 오래전 에피소드와 함께 기술적인 내용도 함께 공유합니다. 이펙티브 C++ 시리즈의 팬이라면 꼭 들어보시길 추천합니다.

스콧 마이어스의 '이펙티브 C++' 시리즈 돌아보기


3. 니콜라스 옴로드의 fbstring 개발기

best_cpp_speak_by_kimheejun_03
▲ best_cpp_speak_by_kimheejun_03

이번에는 비교적 최근에 열렸던 2016년도 CPP콘에서 있었던 인상깊었던 강의 하나를 소개하고자 합니다. 발표자는 니콜라스 옴로드(Nicholas Ormrod). 페이스북에서 엔지니어로 일하고 있는 분입니다. 그는 이 발표에서 C++의 표준 라이브러리 중 페이스북에서 가장 많이 활용되고 있는 스트링(string)을 설명하고, 그들이 떠났던 여정에 대해 설명합니다. gcc에서 string의 구현 방식을 살펴보고, 그 사용 특징에 기반해 아마도 스콧 메이어스만큼이나 유명한 안드레이 알렉사드레스큐(Andrei Alexandrescue)가 작성한 fbstring이 탄생하기까지 배경을 설명합니다. 특히 중간에 std::string을 fbstring으로 변경한 후 페이스북닷컴 전체에 가져온 퍼포먼스 향상에 대해서도 이야기 하니 꼭 들어보시길 바랍니다.

CppCon 2016: Nicholas Ormrod “The strange details of std::string at Facebook" 영상 링크


4. 스테픈 T. 라와웨이드의 STL 강의들

best_cpp_speak_by_kimheejun_04
▲ best_cpp_speak_by_kimheejun_04

마이크로소프트에서 근무하고 있는 스테픈 T. 라와웨이드(Stephan T. Lavavej)는 그의 이름 약자로 더 유명합니다. 바로 S.T.L이 그의 이름 줄임말인데요. 특히나 그가 맡고 있는 일이 비주얼 C++의 STL 개발이기 때문에 C++ 컨퍼런스에서 허브 서터나 션 페어런트처럼 유명한 연사도 그의 이름으로 농담하는 유머를 종종 들을 수 있기도 합니다. STL은 특히 트위터, 레딧에서 C++ 커뮤니티, 비주얼 C++의 제품 피드백 게시판과 같이 사용자들의 접점에서 활발히 활동하고 사람들에게 바로 답변을 주곤 합니다. 특히 좀 지난 영상이긴 하지만, MS의 채널9에서 STL은 C++ 고급 강의 시리즈를 몇 차례 진행한 적이 있었고, 그 내용은 모두 내려받아 감상할 수 있도록 업로드돼 있습니다. 각 시리즈의 제목과 주소는 다음과 같습니다.

스테픈 T. 라와웨이드의 STL 강의 링크


5. 케이트 그레고리의 'C 를 그만 가르치세요'(Stop Teaching C)

best_cpp_speak_by_kimheejun_05
▲ best_cpp_speak_by_kimheejun_05

마지막으로 소개해 드릴 영상은 기술 중심의 토크라기보다는 일종의 깨우침을 주고자 하는 발표자 의견 중심의 강의 영상입니다. 그 깨우침이란, C++을 공부하는 사람들에게 그간 의심하지 않고 받아들이고 답습하던 과거 C 방식의 교육을 지양하고 이제는 C++을 C++답게 배우고 가르치자고 주장하는 내용이 그것입니다.

발표자인 케이트 그레고리(Kate Gregory)는 C++ 독립 컨설턴트로 활동하고 있으며 과거 책, 발표 등을 통해 이름을 알린 여성 개발자입니다. CPP콘 2015에 열렸던 이 세션에서는 우리가 지금 가르치고 있는 C++이, 실제로는 정말 C++이 줄 수 있는 장점들을 뒤로 한 채 C 문법만 강조하는 교육이기 때문에 부정적인 면이 많다고 주장합니다. 그러면서 C++을 C++답게 쓸 수 있는 내용부터 가르치자고 말합니다.

케이트 그레고리의 Stop Teaching C 영상


udemy_ad_cpp
▲ udemy_ad_cpp

글 | 김희준. 개발자의 가장 중요한 덕목은 ‘호기심’이라고 생각하고, 늘 기반기술을 연구하는 것을 좋아합니다. 다양한 분야에 관심을 갖고 공부하며, 그 결과를 https://heejune.me/ 블로그와 https://github.com/heejune/에서 나누고 있습니다.

저작권자 © 블로터 무단전재 및 재배포 금지