icon
1장 : C++ 소개와 개발 환경

개발 환경 설정


이제 C++이 어떤 언어인지, 그리고 어디에 활용되는지 개괄적으로 이해하셨으리라 생각합니다.

이제부터는 우리가 C++ 코드를 직접 작성하고 실행하기 위한 준비를 할 차례입니다.

건축가가 건물을 짓기 위해 설계 도구와 자재를 준비하듯이, 프로그래머도 코드를 작성하기 위한 적절한 도구와 환경이 필요합니다.

이 장에서는 C++ 개발을 위한 필수적인 도구들을 알아보고, 여러분의 컴퓨터에 개발 환경을 설정하는 과정을 상세히 안내해 드릴 것입니다.


C++ 개발을 위한 핵심 도구들

C++ 코드를 작성하고 실행하기 위해서는 크게 세 가지 핵심 도구가 필요합니다.

  • 텍스트 에디터 (Text Editor): 소스 코드를 작성하는 도구입니다. 메모장처럼 단순한 것부터, 코드 자동 완성, 문법 강조 등 다양한 편의 기능을 제공하는 전문 에디터까지 폭넓은 선택지가 있습니다.
  • 컴파일러 (Compiler): 우리가 작성한 C++ 소스 코드는 컴퓨터가 직접 이해할 수 있는 언어가 아닙니다. 컴파일러는 사람이 이해할 수 있는 C++ 코드를 컴퓨터가 이해하고 실행할 수 있는 기계어(Machine Code)로 번역해 주는 역할을 합니다. 이 과정이 없으면 우리의 코드는 그저 텍스트 파일에 불과합니다.
  • 링커 (Linker): 컴파일러가 생성한 여러 개의 목적 파일(Object File)들을 하나로 묶어 최종 실행 가능한 프로그램으로 만들어주는 역할을 합니다. 필요에 따라 외부 라이브러리들도 연결합니다.

이 세 가지 도구는 대부분 통합 개발 환경(IDE, Integrated Development Environment) 이라는 형태로 하나로 묶여 제공됩니다.

IDE는 코드 작성, 컴파일, 디버깅(오류 수정), 빌드(실행 파일 생성) 등 개발의 전 과정을 한 곳에서 편리하게 수행할 수 있도록 지원합니다.


C++ 컴파일러 소개

C++ 프로그램을 실행하기 위해서는 먼저 소스 코드를 기계어로 변환해야 합니다.

이 작업을 수행하는 것이 컴파일러입니다.

주요 C++ 컴파일러는 다음과 같습니다.

GCC (GNU Compiler Collection)

  • 가장 널리 사용되는 오픈 소스 컴파일러
  • Linux, macOS, Windows(MinGW) 등 다양한 플랫폼 지원
  • 명령어 예 : g++ -o myprogram myprogram.cpp

Clang

  • LLVM 프로젝트의 일부로 개발된 컴파일러
  • 빠른 컴파일 속도와 명확한 오류 메시지로 유명
  • Apple의 Xcode에 기본 컴파일러로 채택
  • 명령어 예 : clang++ -o myprogram myprogram.cpp

Microsoft Visual C++ Compiler

  • Windows 환경에 최적화된 컴파일러
  • Visual Studio에 포함되어 있음
  • 명령어 예 : cl myprogram.cpp

통합 개발 환경 (IDE) 소개

IDE는 코드 편집, 컴파일, 디버깅 등의 기능을 통합적으로 제공하는 소프트웨어입니다.

주요 C++ IDE는 다음과 같습니다.

Visual Studio

  • Microsoft에서 개발한 강력한 IDE
  • 광범위한 기능과 확장성 제공
  • 무료 버전(Community Edition) 사용 가능

Visual Studio Code

  • 경량화된 코드 에디터이지만 확장을 통해 IDE 기능 구현 가능
  • 다양한 언어 지원, 크로스 플랫폼
  • C++ 개발을 위한 확장 팩 제공

CLion

  • JetBrains사에서 개발한 크로스 플랫폼 C/C++ IDE
  • 강력한 코드 분석 및 리팩토링 도구 제공
  • 유료이지만 학생은 무료로 사용 가능

Eclipse CDT

  • 오픈 소스 IDE
  • 풍부한 플러그인 생태계
  • 대규모 프로젝트 관리에 적합

개발 환경 설정 단계 (VSCode)

Visual Studio Code 설치

C++ 확장 팩 설치

  • VS Code 내에서 확장(Extensions) 탭 열기
  • "C/C++" 검색 후 Microsoft의 확장 팩 설치

MinGW 설치 (Windows 환경)

  • MSYS2 페이지에서 최신 설치 프로그램을 다운로드하거나 하이퍼링크를 통해 바로 다운로드할 수 있습니다.
  • 설치 프로그램을 실행하고 설치 마법사의 단계를 따라 진행합니다. (win10 64비트 이상)
  • msys2를 실행하고 아래 명령어를 입력합니다.
pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain

  • Enter를 눌러 설치를 진행합니다.

  • Enter를 눌러 툴체인 그룹의 기본 패키지 설치를 수락합니다.

환경 변수 설정

  • 시스템 환경 변수 편집 > 환경 변수 > Path > 편집
  • MinGW의 bin 폴더 경로 추가
기본값으로 설치했을 경우 경로
C:\msys64\ucrt64\bin

프로젝트 폴더 생성 및 설정

  • 새 폴더 생성 후 VS Code로 열기
  • .vscode 폴더 내에 c_cpp_properties.json, tasks.jsonlaunch.json 파일 생성 및 설정
  • (선택) settings.jsonextensions.json 파일 생성 및 설정
  • 해당 작업이 번거로우면 템플릿 다운받기
c_cpp_properties.json
{
  "configurations": [
    {
      "name": "Win32",
      "includePath": ["${workspaceFolder}/**"],
      "defines": ["_DEBUG", "UNICODE", "_UNICODE"],
      "compilerPath": "C:/msys64/ucrt64/bin/g++.exe",
      "cStandard": "c17",
      "cppStandard": "c++20",
      "intelliSenseMode": "windows-gcc-x64"
    }
  ],
  "version": 4
}
tasks.json
{
  "tasks": [
    {
      "type": "cppbuild",
      "label": "C/C++: g++.exe 활성 파일 빌드",
      "command": "C:\\msys64\\ucrt64\\bin\\g++.exe",
      "args": [
        "-fdiagnostics-color=always",
        "-g",
        "${fileDirname}/*.cpp",
        "-o",
        "${workspaceFolder}/Debug/${fileBasenameNoExtension}.exe"
      ],
      "problemMatcher": ["$gcc"],
      "group": {
        "kind": "build",
        "isDefault": true
      },
      "detail": "디버거에서 생성된 작업입니다."
    }
  ],
  "version": "2.0.0"
}
launch.json
{
  "configurations": [
    {
      "name": "C/C++: g++.exe 활성 파일 빌드 및 디버그",
      "type": "cppdbg",
      "request": "launch",
      "program": "${workspaceFolder}/Debug/${fileBasenameNoExtension}.exe",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${fileDirname}",
      "environment": [],
      "externalConsole": false,
      "internalConsoleOptions": "neverOpen",
      "MIMode": "gdb",
      "miDebuggerPath": "C:/msys64/ucrt64/bin/gdb.exe",
      "setupCommands": [
        {
          "description": "gdb에 자동 서식 지정 사용",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        },
        {
          "description": "디스어셈블리 버전을 Intel(으)로 설정",
          "text": "-gdb-set disassembly-flavor intel",
          "ignoreFailures": true
        }
      ],
      "preLaunchTask": "C/C++: g++.exe 활성 파일 빌드"
    }
  ],
  "version": "2.0.0"
}
(선택) settings.json
{
  "[cpp]": { "editor.defaultFormatter": "ms-vscode.cpptools" },
  "terminal.integrated.defaultProfile.windows": "PowerShell",
  "github.copilot.editor.enableAutoCompletions": false,
  "workbench.colorCustomizations": {
    "terminalCursor.foreground": "#0064FF",
    "terminal.foreground": "#ffffff",
    "terminal.ansiCyan": "#000000"
  },
  "files.exclude": {
    ".vscode": true
  }
}
(선택) extensions.json
{
  "recommendations": ["PKief.material-icon-theme", "ms-vscode.cpptools"],
  "unwantedRecommendations": ["ms-vscode.cpptools-extension-pack"]
}

첫 번째 프로그램 작성 및 실행

새 파일 생성 (main.cpp)

main.cpp
#include <iostream>

int main() {
    std::cout << "Hello, C++ World!" << std::endl;
    return 0;
}

파일 저장 후 터미널에서 다음 명령어 실행

g++ -o hello main.cpp
./hello