본문으로 바로가기
제품데스크톱 도구TASTECAD도면 확인TASTEFILES파일 관리TASTEFTP파일 전송TASTESSH원격 작업공간TASTEZIP압축과 해제개발 도구TASTECODERust 통합 개발 환경TASTESTUDIO통합 개발·테스트 환경TASTEETL데이터 통합(ETL)서버TASTEREMOTE원격 데스크톱 서버TASTEGEO공간정보 서버TASTEMAIL메일 작업공간시작하기다운로드문서구매모든 제품
마켓플레이스
소식
개발소식오늘의 개발 소식개발 문서프로그래밍 언어RustTypeScriptJavaScriptPythonGoC#JavaCC++KotlinDart프런트엔드 프레임워크Next.jsReactVue.js · NuxtSvelteKitAngular서버 프레임워크Spring BootDjangoFastAPIASP.NET CoreNestJS · Express앱 · 데스크톱 프레임워크TauriFlutterReact NativeElectron알고리즘알고리즘 기초알고리즘 핵심알고리즘 심화실무 알고리즘
커뮤니티프로젝트개발 로그프롬프트AI 도구 이슈쇼케이스커뮤니티 안내
협업기술 전수홈페이지 구축데스크톱 앱 구축릴리스·결제 파이프라인판매 파트너문의
서비스원격 데스크톱설치 패키지 커스텀
TASTEDEV
제품

데스크톱 도구

TASTECAD복잡한 도면을 가볍게 열다TASTEFILES필요한 파일만, 가장 빠르게TASTEFTP파일이 오가는 가장 단정한 길TASTESSH서버와 나 사이, 더 단단한 연결TASTEZIP더 빠르게 묶고, 더 안전하게 풀다

개발 도구

TASTECODERust 앱을 편집 · 빌드 · 디버깅 · 테스트까지 한 창에서TASTESTUDIO편집부터 원격 테스트와 승인 기반 AI 수정까지TASTEETL값을 보며 데이터를 옮깁니다

서버

TASTEREMOTE우리 회사 서버로 운영하는 원격 데스크톱TASTEGEOGeoServer 호환 공간정보 서버를 Rust로 다시 세웁니다TASTEMAIL메일의 주도권을 다시 내 손에

시작하기

다운로드모든 제품 최신 판문서제품 사용법구매구독 · 영구 라이선스모든 제품모든 제품 한눈에
모든 제품
마켓플레이스소식
개발

소식

오늘의 개발 소식언어 · 프레임워크 · GitHub · AI 공식 발표개발 문서언어 · 프레임워크 · 알고리즘 안내서

프로그래밍 언어

RustTypeScriptJavaScriptPythonGoC#JavaCC++KotlinDart

프레임워크

프런트엔드 프레임워크Next.jsReactVue.js · NuxtSvelteKitAngular
서버 프레임워크Spring BootDjangoFastAPIASP.NET CoreNestJS · Express
앱 · 데스크톱 프레임워크TauriFlutterReact NativeElectron

알고리즘

알고리즘 기초복잡도 분석 · 정렬 · 탐색 · 기본 자료구조 · 트리와 힙알고리즘 핵심그래프 탐색 · 최단 경로와 최소 신장 트리 · 동적 계획법 · 탐욕 알고리즘 · 분할 정복 · 백트래킹알고리즘 심화문자열 알고리즘 · 수학과 정수론 · 비트 연산 · 구간 트리 · 유니온 파인드실무 알고리즘코딩 면접 풀이 전략 · LRU 캐시 · 레이트 리미터 · 일관된 해시
개발 문서 전체 보기
커뮤니티
프로젝트빌더와 작업 발견개발 로그결정과 시행착오프롬프트재사용 가능한 지시AI 도구 이슈Claude · Codex · Gemini 문제와 우회법쇼케이스완성된 결과커뮤니티 안내공개하고 함께 만드는 방식
협업
기술 전수Rust·egui 네이티브 앱 만들기홈페이지 구축10개 언어, 계정, 문서·다운로드데스크톱 앱 구축Rust·egui, WebView 없이릴리스·결제 파이프라인서명 · MSI·deb·rpm·AppImage · 해시판매 파트너소개하고 결제액의 30% 받기문의구축 · 제휴 · 투자 문의
서비스
원격 데스크톱브라우저로 내 컴퓨터에 접속설치 패키지 커스텀필요한 기능만, 설정은 미리
구매
KO
한국어EnglishDeutschEspañolFrançaisItalianoPortuguês (Brasil)日本語简体中文繁體中文
로그인
로그인
TASTEDEV

작은 도구부터, 더 좋은 개발까지.

support@tastedev.netTASTEDEV 후원하기
제품제품군구매문서다운로드마켓플레이스고객 지원
커뮤니티프로젝트개발 로그프롬프트AI 도구 이슈쇼케이스
정책개인정보처리방침이용약관구독 약관환불 정책커뮤니티 운영 정책
계정로그인가입하기
방문자
오늘
012345678901234567890123456789012345678901234567890123456789
어제
012345678901234567890123456789012345678901234567890123456789
누적 조회
0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
상호
지엑스소프트
대표자
최영구
사업자등록번호
853-44-00368
주소
인천광역시 미추홀구 경인로 351 9층 V24
전화
+82-10-4404-1523
이메일
whitecalvin@tastedev.net
개인정보 보호책임자
최영구

© 2026 TASTEDEV제품 정보는 현재 검증된 개발 소스를 기준으로 합니다.출시·고도화 중

C++ 문서
C++
시작하기기본 문법타입과 데이터모듈과 패키지오류 처리와 테스트핵심 개념
토론

C++ 안내서 · 1/6

시작하기

C++는 소스 코드를 컴파일러로 번역해 실행 파일을 만드는 언어입니다. 인터프리터 언어처럼 파일을 바로 실행하지 않고, 컴파일 → 링크 → 실행 순서를 거칩니다. 이 장에서는 컴파일러를 설치하고, 첫 프로그램을 빌드하고, 표준 버전과 경고 옵션을 고르고, CMake로 작은 프로젝트를 만드는 데까지 다룹니다.

컴파일러 설치

C++ 컴파일러는 여러 가지가 있으며, 운영체제마다 주로 쓰는 것이 다릅니다.

컴파일러주 사용 환경설치 방법
GCC (g++)Linux, MinGW-w64를 통한 Windows배포판 패키지 관리자
Clang (clang++)macOS, Linux, WindowsXcode Command Line Tools 또는 패키지 관리자
MSVC (cl)WindowsVisual Studio 또는 Build Tools의 "C++를 사용한 데스크톱 개발" 워크로드

Linux와 macOS에서는 다음 명령으로 설치합니다.

# Debian / Ubuntu: g++, make 등 기본 빌드 도구
sudo apt install build-essential

# Fedora
sudo dnf install gcc-c++

# macOS: clang++ 와 기본 도구
xcode-select --install

# 설치 확인
g++ --version
clang++ --version

Windows에서 MSVC를 쓰려면 Visual Studio 설치 프로그램에서 C++ 워크로드를 고른 뒤, 시작 메뉴의 Developer Command Prompt 또는 Developer PowerShell을 엽니다. 이 창에서만 cl 명령이 경로에 잡혀 있습니다.

첫 프로그램

hello.cpp 파일을 만들고 다음 내용을 적습니다.

#include <iostream>

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

#include <iostream>은 표준 입출력 라이브러리의 선언을 가져옵니다. 모든 C++ 프로그램은 main 함수에서 시작하며, main이 0을 돌려주면 정상 종료를 뜻합니다. std::cout은 표준 출력이고 << 연산자로 값을 흘려 보냅니다.

컴파일하고 실행하기

# GCC
g++ -std=c++20 -Wall -Wextra -o hello hello.cpp
./hello

# Clang
clang++ -std=c++20 -Wall -Wextra -o hello hello.cpp
./hello

MSVC에서는 옵션 표기가 다릅니다.

cl /std:c++20 /EHsc /W4 hello.cpp
hello.exe

/EHsc는 표준 C++ 예외 처리 방식을 켜는 옵션으로, 표준 라이브러리를 쓰는 코드라면 거의 항상 붙입니다.

표준 버전 고르기

C++는 대략 3년마다 새 표준이 나옵니다. C++11에서 현대적인 문법이 크게 늘었고, 이후 C++14, C++17, C++20, C++23이 이어졌습니다. 컴파일러마다 기본 표준이 다르므로 원하는 버전을 명시하는 습관이 좋습니다.

  • -std=c++17: 구조적 바인딩, std::optional, std::filesystem 등을 쓸 수 있습니다.
  • -std=c++20: concepts, ranges, std::format, 모듈 등이 들어갑니다. 새 프로젝트의 무난한 선택입니다.
  • -std=c++23: std::expected, std::print 등이 추가됩니다. 컴파일러와 표준 라이브러리 지원 정도를 먼저 확인합니다.

GNU 확장까지 켜는 -std=gnu++20도 있지만, 이식성을 생각하면 -std=c++20을 권합니다.

경고는 켜 두기

C++ 컴파일러는 기본적으로 많은 실수를 조용히 넘어갑니다. 경고를 켜면 초기화하지 않은 변수, 부호 있는/없는 정수 비교, 쓰지 않는 변수 같은 문제를 일찍 잡을 수 있습니다.

  • GCC/Clang: -Wall -Wextra -Wpedantic을 기본으로 켜고, 필요하면 -Werror로 경고를 오류로 다룹니다.
  • MSVC: /W4를 쓰고, 필요하면 /WX로 경고를 오류로 다룹니다.
  • 디버깅할 때는 -g(MSVC는 /Zi)로 디버그 정보를 넣고, 배포 빌드는 -O2(MSVC는 /O2)로 최적화합니다.

CMake로 프로젝트 만들기

파일이 몇 개만 넘어가도 명령을 손으로 치기는 번거롭습니다. CMake는 C++ 프로젝트에서 가장 널리 쓰는 빌드 설정 도구로, CMakeLists.txt를 읽어 Ninja, Make, Visual Studio 같은 실제 빌드 시스템의 파일을 만들어 줍니다.

cmake_minimum_required(VERSION 3.20)
project(hello LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

add_executable(hello hello.cpp)

if(MSVC)
  target_compile_options(hello PRIVATE /W4)
else()
  target_compile_options(hello PRIVATE -Wall -Wextra -Wpedantic)
endif()

hello.cpp와 같은 폴더에 위 파일을 두고 빌드합니다. 빌드 결과는 소스와 섞이지 않도록 build 폴더에 둡니다.

cmake -S . -B build
cmake --build build
./build/hello

Visual Studio 생성기를 쓰면 실행 파일이 build/Debug/hello.exe처럼 구성 이름 폴더 아래에 생깁니다. Visual Studio, VS Code(CMake Tools 확장), CLion은 모두 CMakeLists.txt를 바로 열어 프로젝트로 인식합니다.

정리

  • C++ 코드는 컴파일러(GCC, Clang, MSVC)로 빌드한 뒤 실행합니다.
  • -std=c++20처럼 표준 버전을 명시하고, -Wall -Wextra 또는 /W4로 경고를 켭니다.
  • 작은 실습은 명령 한 줄로, 실제 프로젝트는 CMake로 관리합니다.
  • 다음 장에서는 변수, 함수, 제어문 같은 기본 문법을 살펴봅니다.
이 장에 대해 질문이 있나요?
다음 장기본 문법

댓글 0개

인기 댓글순최신순

로그인 · 로그인하면 댓글을 남길 수 있습니다.