대충보는 C++ & CMake

이 시리즈에서는 C++ 언어와 CMake를 실전에서 바로 써먹을 수 있게 하는 것을 목표로, 꼭 알아야 하는 내용을 중점적으로 다룰 예정입니다.

이 시리즈는 최대한 실습 위주로 진행할 예정이며, 굳이 필요하지 않은 상세한 이론은 과감하게 배제하고 진행하려 합니다. 만약 이론적인 기반을 탄탄하게 다지고자 하신다면, 이 강의보다는 차라리 시중에 나와있는 다양한 참고서적이 더 도움이 될 것이라 생각합니다.

C++ 언어를 이용한 개발의 큰 흐름을 빠르게 따라잡고자 하는 분께 추천합니다.

이 글을 보는 분들의 C++ 사용경험이 천차만별일 것이기에, 각 글의 맨 위에 있는 TL;DR (세줄 요약)을 통해 그 글에서 다루는 내용을 살펴보신 뒤 이미 아는 내용이라면 다음 글로 넘어가셔도 괜찮습니다.


실습환경

C++, CMake, 그리고 C++ 디버깅이 가능한 IDE를 사용할 수 있는 환경이라면 어떠하든 상관 없습니다.

제가 사용할 실습환경은 다음과 같습니다.

  • 운영체제: Windows 10
  • 빌드도구: Microsoft Visual C++ (MSVC)를 통해 C++, CMake 설치
  • IDE: VSCode

LINUX 운영체제를 사용하는 분은, MSVC 대신 GCCCMake를 설치해서 사용하실 수 있습니다. 이렇게 환경을 구성하셔도 실습을 따라오시는 데에 큰 차이는 없으리라 생각합니다. Windows 운영체제 하에서 MSVC 대신 MinGW를 이용한다거나 하는 경우도 있겠습니다만, 이 또한 큰 차이 없이 따라오실 수 있을 것입니다. Mac은 제가 사용해본 경험이 없어 잘 모르겠습니다만, Xcode를 일반적으로 사용하는 것으로 알고 있습니다.

IDE의 경우에는 VSCode가 아닌 다른 IDE를 사용하실 경우에는, 제가 설명하는 기능을 각자의 환경에서 찾아야 할 수도 있습니다. 용어나 구동방식이 약간 다를 수는 있으나, 어지간하면 유사한 기능이 다 존재할 것입니다. 이 시리즈에서 사용하는 VSCode는 LINUX나 Mac 운영체제에서도 사용 가능하니, 다른 운영체제 하에서 작업을 하시더라도 VSCode를 사용해보실 수 있습니다.


시리즈의 목표

이 시리즈는 C++을 완전히 처음 접하는 분들까지 아우르는 초급 수준으로 시작하여, C++ 언어와 CMake라는 도구를 어떻게 사용하는지를 대충이나마 파악해서 실전에서 사용할 수 있도록 하는 것을 목표로 합니다.

Python, Javascript, C#, Java, Go 등 비교적 쉽고 파워풀한 언어가 판을 치는 요즘같은 시대에, Computer Science 전공자가 아니라 그냥 실무활용을 목적으로 프로그래밍을 하시는 분들이라면 굳이 어렵기로 소문난 C++을 기초부터 배울 일이 별로 없으리라 생각합니다. 완전 기초부터 배워야 할 정도로 프로그래밍을 잘 모르는데도 불구하고 C++을 사용할 수 밖에 없는 경우는, 대개 C++을 기반으로 하는 프레임워크나 라이브러리를 가져다 써야하는 상황일 것이라 생각했습니다. C++ 기반의 프레임워크나 라이브러리를 가져다 써야하는데, C++을 잘 몰라서 어떻게 사용해야하는지 감도 못잡는 그런 상황 말이죠.

그래서 이 시리즈에서는, 남들이 만들어놓은 C++ 기반 코드들을 잘 해석해서 가져다 쓰고, 추가로 내가 원하는 내용까지 얹어주는 방법에 대한 내용을 중점적으로 살펴보고자 합니다. 때문에, 여기서는 C++ 언어의 이론적 배경을 탄탄하게 다지거나, 컴퓨터에서 코드를 어떤식으로 해석하여 호출하는지를 살펴본다거나, 어떻게 코딩하는 것이 리소스를 최적으로 활용할 수 있는지를 고민한다거나 하지 않을 것입니다.

이 시리즈에서는 세부적인 내용은 잠시 제쳐두고 약간 멀리서 큰 그림을 보며, C++이라는 언어로 짜여진 프로그램들이 어떻게 구성되고, 각각의 클래스나 파일들이 어떻게 유기적으로 연결되어 있으며, 그 흐름속에서 내가 원하는 내용은 어떻게 끼워넣어야 할 지에 대해 알아보겠습니다.