Core Programming/Modern C++ & System Design

C++ 프로그래밍 입문 가이드: 특징부터 윈도우·리눅스 환경 설정까지

임베디드 친구 2024. 12. 17. 20:30
반응형

새로운 프로그래밍 언어를 배우려고 할 때 가장 먼저 마주하는 난관은 문법이 아니라 개발 환경 설정입니다. 특히 C++은 하드웨어를 직접 제어하는 강력한 성능을 가진 만큼, 운영체제나 컴파일러의 종류에 따라 설정 방법이 다양해서 초보자들이 시작하기도 전에 지치는 경우가 많습니다. 이번 글에서는 시스템 소프트웨어, 게임 엔진, 임베디드 시스템의 근간이 되는 C++의 핵심 특징을 살펴보고, 시행착오 없이 한 번에 끝내는 운영체제별 개발 환경 설정 방법을 소개하겠습니다.

Generated by Gemini AI.

핵심 요약 3줄

  • C++은 절차적·객체 지향·함수형을 모두 지원하는 멀티 패러다임 언어로, 압도적인 성능과 높은 범용성을 자랑합니다.
  • 윈도우 환경에서는 통합 개발 환경(Visual Studio)이나 가벼운 에디터(VS Code + MinGW) 중 성향에 맞는 도구를 선택해 구축합니다.
  • 리눅스 환경에서는 터미널 명령어를 통해 build-essential 패키지를 설치하는 것으로 간편하게 컴파일러 설정을 완료할 수 있습니다.

1. C++이란 무엇인가? 주요 특징 4가지

C++은 C 언어가 가진 하드웨어 제어 능력과 효율성을 그대로 유지하면서, 거대하고 복잡한 소프트웨어를 관리하기 쉽게끔 객체 지향 프로그래밍(OOP) 개념을 추가한 언어입니다. 현대 소프트웨어 산업에서 C++이 여전히 독보적인 위치를 차지하는 이유는 크게 4가지 특징으로 요약할 수 있습니다.

  • 멀티 패러다임 지원: 개발 상황에 따라 절차적 프로그래밍, 객체 지향 프로그래밍, 그리고 함수형 프로그래밍 스타일을 자유롭게 혼합하여 사용할 수 있습니다.
  • 압도적인 고성능: 실행 시점에 가상 머신이나 무거운 가비지 컬렉터가 개입하지 않습니다. 하드웨어 리소스와 메모리에 직접 접근할 수 있어 실행 속도가 매우 빠릅니다.
  • STL(Standard Template Library) 제공: 표준 템플릿 라이브러리를 통해 이미 검증된 정렬 알고리즘, 벡터, 큐, 스택 등의 자료구조를 직접 구현하지 않고 즉시 가져다 쓸 수 있습니다.
  • 폭넓은 범용성: 언리얼 엔진 같은 고성능 게임 엔진부터 스마트폰, 자동차 내비게이션 등의 임베디드 시스템, 고빈도 금융 거래 시스템까지 성능이 극도로 중요한 모든 분야의 표준으로 자리 잡고 있습니다.

2. C++ 개발 환경 설정 (Windows)

윈도우 환경에서는 개발자의 성향이나 PC 사양에 따라 크게 두 가지 선택지가 있습니다. 무겁지만 모든 기능이 갖춰진 IDE를 원하는지, 혹은 가볍고 직관적인 텍스트 에디터를 선호하는지에 따라 선택하시면 됩니다.

구분 옵션 1: Visual Studio 옵션 2: VS Code + MinGW
추천 대상 초보자, 대규모 프로젝트 개발자, 강력한 디버깅이 필요한 경우 저사양 PC 사용자, 가벼운 코딩 환경 선호자, 타 언어 겸업자
장점 컴파일러와 디버거가 내장되어 설치가 간편하고 디버깅 능력이 강력함 프로그램이 가볍고 구동 속도가 빠르며 다양한 확장 기능을 쓸 수 있음
단점 프로그램 용량이 크고 무거우며 설치 시간이 오래 걸림 컴파일러를 직접 설치하고 환경 변수와 설정을 수동으로 조절해야 함

2.1 Visual Studio 설치 방법 (가장 추천)

  1. Visual Studio 공식 웹사이트에 접속하여 Installer를 다운로드합니다. 커뮤니티(Community) 버전을 선택하면 무료로 사용할 수 있습니다.
  2. 설치 관리자 창이 뜨면 워크로드 탭에서 'C++를 사용한 데스크톱 개발'을 찾아 반드시 체크해야 합니다. 이 항목을 빠뜨리면 C++ 컴파일러가 설치되지 않습니다.
  3. 우측 하단의 설치 버튼을 누르고 컴퓨터를 재부팅하면 바로 코딩할 수 있는 상태가 됩니다.

2.2 VS Code + MinGW 설정 방법 (가벼운 환경)

  1. MinGW-w64 설치: 윈도우에서 GCC 컴파일러를 사용할 수 있도록 돕는 도구입니다. 다운로드 후 설치를 진행합니다. 설치가 끝나면 C:\msys64 또는 설치된 폴더 내의 'bin' 디렉터리 경로를 복사하여 윈도우 시스템 환경 변수(PATH)에 등록해야 터미널에서 g++ 명령어를 인식합니다.
  2. VS Code 확장 기능 추가: VS Code를 실행한 뒤 마켓플레이스(Ctrl+Shift+X)에서 Microsoft가 제공하는 'C/C++' 확장 프로그램을 찾아 설치합니다.
  3. 빌드 자동화 구성: 컴파일 과정을 마우스 클릭 한 번이나 단축키로 해결하기 위해 .vscode 폴더 안에 tasks.json 파일을 만들고 아래 코드를 입력해 줍니다.
JSON
 
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "C++ 빌드하기",
            "type": "cppbuild",
            "command": "g++",
            "args": ["-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}.exe"],
            "group": { "kind": "build", "isDefault": true }
        }
    ]
}

3. C++ 개발 환경 설정 (Linux)

리눅스(Ubuntu 또는 Debian 계열 기준) 환경은 윈도우와 달리 터미널 창에서 몇 줄의 명령어만 입력하면 아주 간단하게 개발 환경을 구축할 수 있습니다.

컴파일러 패키지 설치

터미널을 열고 아래 명령어를 순서대로 입력합니다. build-essential 패키지 안에는 C++ 컴파일러인 g++를 비롯하여 gcc, make 등 개발에 꼭 필요한 핵심 도구들이 모두 포함되어 있습니다.

Bash
 
sudo apt update
sudo apt install build-essential

프로젝트 관리 도구(CMake) 설치

규모가 큰 대규모 프로젝트나 외부 라이브러리를 연동해야 하는 작업을 고려한다면, 빌드 시스템을 관리해 주는 CMake를 미리 설치해 두는 것이 좋습니다.

Bash
 
sudo apt install cmake

4. 첫 번째 C++ 프로그램: Hello World!

환경 설정이 제대로 완료되었는지 확인하기 위해 화면에 텍스트를 출력하는 가장 기초적인 코드를 작성해 보겠습니다. main.cpp라는 이름으로 파일을 생성하고 아래 소스코드를 입력해 보세요.

C++
 
#include <iostream> // 표준 입출력을 위한 헤더 파일 포함

/**
 * C++ 프로그램의 진입점이 되는 main 함수
 */
int main() {
    // std::cout을 사용하여 콘솔 창에 문자열을 출력합니다.
    std::cout << "Hello, Coding by Head World!" << std::endl;
    
    return 0; // 프로그램이 문제없이 정상적으로 종료되었음을 운영체제에 알립니다.
}

터미널에서 컴파일 및 실행하는 방법

IDE를 쓰지 않고 터미널에서 직접 명령어를 입력해 실행하는 절차는 다음과 같습니다. 운영체제와 상관없이 터미널 내 경로를 파일이 있는 곳으로 이동한 후 진행합니다.

  1. 컴파일 단계: g++ main.cpp -o main 명령어를 입력합니다. 이 명령은 main.cpp 파일을 컴파일하여 'main'이라는 이름의 실행 파일을 만들라는 의미입니다.
  2. 실행 단계: 리눅스나 맥 환경에서는 ./main을 입력하여 실행하고, 윈도우 파워쉘이나 CMD 환경에서는 main.exe를 입력하여 결과를 확인합니다. 화면에 문구가 정상적으로 표시된다면 성공입니다.

5. 초보 개발자를 위한 유용한 팁

  • 컴파일러 경고 메시지를 무시하지 마세요: 오류(Error)가 아니라 경고(Warning) 단계의 메시지라도 눈여겨보는 버릇을 들여야 합니다. 잠재적인 메모리 누수나 버그의 원인이 될 수 있으므로 컴파일러 옵션에 -Wall을 추가하여 가능한 모든 경고를 확인하는 습관이 좋습니다.
  • 표준 라이브러리(STL) 문서와 친해지세요: C++은 강력한 표준 라이브러리를 지원합니다. 필요한 기능을 직접 구현하기 전에 cppreference닷컴 같은 공인된 문서 사이트에서 이미 존재하는 기능인지 먼저 검색해 보면 개발 시간을 크게 줄일 수 있습니다.

6. 처음 시작할 때 흔히 하는 실수

  • 네임스페이스(Namespace) 누락: cout이나 endl을 사용할 때 앞에 std::를 붙이지 않아 컴파일 에러를 겪는 경우가 많습니다. 코드 상단에 using namespace std;를 선언하면 생략할 수 있지만, 이름 충돌 문제가 생길 수 있으므로 초반에는 std::를 직접 붙여가며 표준 라이브러리 구성을 익히는 것을 권장합니다.
  • 환경 변수(PATH) 설정 오류: 윈도우에서 VS Code로 개발할 때 'g++을 찾을 수 없다'는 메시지가 나온다면 십중팔구 MinGW의 bin 폴더 경로가 시스템 환경 변수에 등록되지 않았거나, 등록 후 VS Code를 재시작하지 않아서 발생하는 문제입니다. 경로를 다시 확인하고 에디터를 완전히 껐다 켜보세요.

마치며

개발 환경 설정을 무사히 마쳤다면 이제 본격적으로 C++의 깊은 매력을 느낄 준비가 된 것입니다. 처음에는 컴파일 과정이나 문법이 다소 복잡하게 느껴질 수 있지만, 하드웨어를 직접 제어하며 프로그램의 구동 원리를 이해하는 데 이보다 좋은 언어는 없습니다. 다음 포스팅에서는 프로그램의 데이터를 저장하는 변수와 데이터 타입, 그리고 C++의 핵심 개념 중 하나인 참조자(Reference)에 대해 자세히 알아보겠습니다. 설정 과정에서 막히는 부분이나 궁금한 점이 있다면 언제든 댓글로 질문을 남겨주세요.

반응형