소개
이번 실습에서는 첫 번째 C++ 프로그램을 작성하는 방법을 배웁니다. 먼저 Ubuntu 22.04 환경에서 GCC(GNU Compiler Collection) 컴파일러를 설치하고 필요한 환경 변수를 설정합니다. 그 다음, 새로운 C++ 소스 파일을 생성하여 기본적인 프로그램 구조를 작성하고, cout 문을 사용하여 "Hello World" 메시지를 출력해 봅니다. 또한 프로그램을 컴파일하고 실행하는 방법, 한 줄 및 여러 줄 주석을 추가하는 방법, 줄 바꿈을 위해 endl과 \n을 사용하는 방법, 그리고 세미콜론 누락과 같은 일반적인 구문 오류를 수정하는 방법도 함께 배웁니다.
Ubuntu 22.04에 GCC 컴파일러 설치 및 환경 변수 설정
이 단계에서는 Ubuntu 22.04에서 C++용 GCC(GNU Compiler Collection) 컴파일러를 설치하고 필요한 환경 변수를 설정하는 방법을 배웁니다. GCC는 C++ 프로그램을 컴파일하고 실행하는 데 필수적입니다.
먼저 WebIDE에서 터미널을 엽니다. 화면 하단의 터미널 아이콘을 클릭하거나 키보드 단축키(보통 Ctrl+`)를 사용하여 열 수 있습니다.
먼저 패키지 목록을 업데이트하여 사용 가능한 패키지에 대한 최신 정보를 확보합니다.
sudo apt update
출력 예시:
Hit:1 http://mirrors.cloud.aliyuncs.com/ubuntu jammy InRelease
Hit:2 http://mirrors.cloud.aliyuncs.com/ubuntu jammy-updates InRelease
Hit:3 http://mirrors.cloud.aliyuncs.com/ubuntu jammy-backports InRelease
Hit:4 http://mirrors.cloud.aliyuncs.com/ubuntu jammy-security InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
157 packages can be upgraded. Run 'apt list --upgradable' to see them.

다음으로, GCC 컴파일러와 관련 개발 도구를 설치합니다.
sudo apt install -y build-essential
출력 예시:
Reading package lists...
Building dependency tree...
Reading state information...
build-essential is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 22 not upgraded.
설치를 확인하고 GCC 버전을 확인하려면 다음을 실행합니다.
g++ --version
출력 예시:
g++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
GCC 컴파일러는 일반적으로 시스템 PATH에 이미 포함되어 있으므로 추가 설정은 필요하지 않습니다.
.cpp 확장자를 가진 새로운 C++ 소스 파일 생성
이 단계에서는 .cpp 확장자를 가진 새로운 C++ 소스 파일을 만드는 방법을 배웁니다. C++에서 소스 파일은 해당 파일에 C++ 코드가 포함되어 있음을 나타내기 위해 .cpp 확장자를 사용합니다. WebIDE의 파일 탐색기와 텍스트 편집기를 사용하여 첫 번째 C++ 소스 파일을 만들어 보겠습니다.
먼저 터미널에서 ~/project 디렉토리로 이동합니다.
cd ~/project
이제 WebIDE의 파일 탐색기를 엽니다. 사이드바에 파일 및 폴더 목록이 표시됩니다. 새 파일을 생성할 수 있는 아이콘(보통 "+" 기호나 "New File" 옵션)을 찾으세요.
파일 탐색기에서 마우스 오른쪽 버튼을 클릭하고 "New File"을 선택합니다. 메시지가 나타나면 파일 이름을 hello.cpp로 지정합니다. .cpp 확장자는 컴파일러와 개발 도구에 이 파일이 C++ 소스 파일임을 알려주는 중요한 역할을 합니다.
터미널에서 파일 생성 예시(참고용):
touch hello.cpp
새로 생성된 hello.cpp 파일을 클릭하여 WebIDE의 텍스트 편집기에서 엽니다. 첫 번째 C++ 코드를 작성할 준비가 된 빈 파일이 나타납니다.
.cpp 확장자가 중요한 이유는 다음과 같습니다.
- 파일이 C++ 소스 코드 파일임을 식별합니다.
- 개발 도구와 컴파일러가 파일 형식을 인식하도록 돕습니다.
- C++ 파일을
.c(C),.java(Java),.py(Python)와 같은 다른 프로그래밍 언어 파일과 구분합니다.
이제 hello.cpp 파일에 C++ 코드를 작성할 준비가 되었습니다. 다음 단계에서는 이 파일에 기본적인 C++ 프로그램을 작성하는 방법을 배웁니다.
int main() 함수를 사용한 기본 프로그램 구조 작성
이 단계에서는 C++ 프로그램의 기본 구조인 main() 함수에 대해 배웁니다. 모든 C++ 프로그램에는 프로그램 실행이 시작되는 진입점인 main() 함수가 반드시 있어야 합니다.
이전 단계에서 만든 WebIDE의 hello.cpp 파일을 엽니다. 이제 기본적인 프로그램 구조를 추가합니다.
#include <iostream>
int main() {
// 여기에 코드를 작성하세요
return 0;
}
참고: 학습 효과를 높이기 위해 코드를 직접 타이핑하는 것을 권장합니다. C++ 구문에서 필수적인 중괄호
{ }와 세미콜론;에 주의하세요. 공백과 들여쓰기를 잊지 마세요. 그렇지 않으면 단계 확인이 실패할 수 있습니다.
이 기본 구조를 분석해 보겠습니다.
#include <iostream>: 입출력 스트림 라이브러리를 포함하는 전처리기 지시문입니다. 화면 출력과 같은 입출력 작업을 수행할 수 있게 해줍니다.int main(): 메인 함수 선언입니다.int는 함수가 정수 값을 반환함을 지정합니다.main()은 C++ 프로그램의 표준 진입점입니다.- 빈 괄호
()는 함수가 인자를 받지 않음을 나타냅니다.
- 중괄호
{ }: 코드가 작성될 함수의 본문을 정의합니다. return 0;: 프로그램이 성공적으로 완료되었음을 나타냅니다.- 0을 반환하면 운영 체제에 프로그램이 오류 없이 실행되었음을 알립니다.
- 이는 C++ 프로그램의 표준 관례입니다.
WebIDE는 타이핑하는 동안 변경 사항을 자동으로 저장합니다. 또는 편집기의 저장 옵션을 사용하여 수동으로 파일을 저장할 수도 있습니다.
WebIDE에 대해 더 자세히 알고 싶다면 WebIDE 가이드를 확인하세요.
기억해야 할 중요한 사항:
- 모든 C++ 프로그램에는
main()함수가 있어야 합니다. main()함수는 프로그램 실행이 시작되는 곳입니다.return 0;문은 일반적으로 성공적인 프로그램 실행을 나타내는 데 사용됩니다.
main() 함수를 여행의 출발점이라고 생각하면 됩니다. 자동차 여행이 특정 위치에서 시작되듯이, C++ 프로그램은 main() 함수에서 실행을 시작합니다.
cout을 사용하여 Hello World 메시지 출력하기
이 단계에서는 cout을 사용하여 화면에 "Hello, World!" 메시지를 출력하는 방법을 배웁니다. cout은 C++ 표준 입출력 라이브러리의 일부이며 출력을 표시하는 데 사용됩니다.
WebIDE에서 hello.cpp 파일을 열고 main() 함수를 수정하여 다음 코드를 포함합니다.
#include <iostream>
int main() {
std::cout << "Hello, World!" << std::endl;
return 0;
}
새로운 코드 라인을 분석해 보겠습니다.
std::cout: 표준 출력 스트림 객체입니다.std::는 표준 네임스페이스를 사용함을 나타냅니다.cout은 "console output"의 약자입니다.
<<: 스트림 삽입 연산자로, 데이터를 출력 스트림으로 보내는 데 사용됩니다."Hello, World!": 출력하려는 텍스트 메시지입니다.std::endl: 새 줄을 추가하고 출력 버퍼를 비웁니다.- 메시지가 즉시 표시되도록 보장합니다.
- 커서를 다음 줄로 이동시킵니다.
파일을 저장할 때 위에 표시된 전체 구조를 포함했는지 확인하세요.
cout에 대한 주요 포인트:
- 텍스트, 숫자 및 기타 데이터 유형을 화면에 출력하는 데 사용됩니다.
<<연산자를 연결하여 여러 항목을 출력할 수 있습니다.std::endl은 출력 후 새 줄을 만드는 데 사용됩니다.
cout을 세상에 메시지를 알리는 확성기라고 생각하면 됩니다. << 연산자는 메시지를 로드하는 데 도움을 주고, std::endl은 모두가 메시지를 명확하게 들을 수 있도록 합니다.
g++ hello.cpp -o hello 명령으로 프로그램 컴파일하기
이 단계에서는 g++ 컴파일러를 사용하여 C++ 프로그램을 컴파일하는 방법을 배웁니다. 컴파일은 사람이 읽을 수 있는 C++ 소스 코드를 컴퓨터가 실행할 수 있는 실행 프로그램으로 변환하는 과정입니다.
WebIDE에서 터미널을 엽니다. ~/project 디렉토리에 있는지 확인하세요.
cd ~/project
이제 g++ 명령을 사용하여 이전에 만든 hello.cpp 파일을 컴파일합니다.
g++ hello.cpp -o hello
이 명령을 분석해 보겠습니다.
g++: GNU C++ 컴파일러입니다.hello.cpp: 컴파일하려는 소스 파일입니다.-o hello: 출력 실행 파일의 이름을 지정합니다.-o는 출력 파일의 이름을 지정할 수 있는 옵션입니다.hello는 생성할 실행 파일의 이름입니다.
출력 예시:
## 출력이 없으면 성공적으로 컴파일된 것입니다.
컴파일이 성공하면 오류 메시지가 표시되지 않습니다. 컴파일러는 같은 디렉토리에 hello라는 이름의 실행 파일을 생성합니다.

컴파일을 확인하려면 디렉토리의 파일을 확인하면 됩니다.
ls
출력 예시:
hello hello.cpp
이제 두 개의 파일이 보일 것입니다.
hello.cpp: 소스 코드 파일hello: 컴파일된 실행 프로그램
컴파일 시 중요한 참고 사항:
- 코드에 오류가 있으면
g++가 오류 메시지를 표시합니다. - 프로그램을 실행하기 전에 항상 컴파일 오류를 확인하고 수정하세요.
-o옵션은 선택 사항이지만, 실행 파일에 의미 있는 이름을 지정하는 것이 좋습니다.
컴파일을 책을 한 언어에서 다른 언어로 번역하는 것에 비유할 수 있습니다. g++ 컴파일러는 사람이 읽을 수 있는 C++ 코드를 컴퓨터가 이해하고 실행할 수 있는 언어로 번역합니다.
./hello 명령으로 프로그램 실행하기
이 단계에서는 방금 컴파일한 실행 프로그램을 실행하는 방법을 배웁니다. C++ 프로그램을 컴파일한 후 ./ 명령 뒤에 실행 파일 이름을 붙여 실행할 수 있습니다.
~/project 디렉토리에 있는지 확인하세요.
cd ~/project
이전 단계에서 컴파일한 프로그램을 실행하려면 다음 명령을 사용합니다.
./hello
./는 시스템에 현재 디렉토리에서 실행 파일을 찾으라고 지시하며, hello는 생성한 실행 파일의 이름입니다.
출력 예시:
Hello, World!
무슨 일이 일어나는지 분석해 보겠습니다.
./는 "현재 디렉토리에서"를 의미합니다.- 프로그램은 컴파일된 실행 파일의 지침을 읽습니다.
- C++ 소스 코드에 정의한 메시지를 출력합니다.
- 출력 후 프로그램이 종료됩니다.
실행 시 중요한 참고 사항:
- 현재 디렉토리에서 프로그램을 실행할 때는 항상 실행 파일 이름 앞에
./를 사용하세요. - 프로그램에는 실행 권한이 있어야 합니다(
g++가 자동으로 제공함). - 출력이 보이지 않으면 프로그램을 올바르게 컴파일했는지 다시 확인하세요.
프로그램을 실행하는 것을 자동차 시동을 거는 것에 비유할 수 있습니다. 컴파일은 자동차를 준비하는 것이고, 프로그램을 실행하는 것은 열쇠를 돌려 운전하는 것입니다.
프로그램을 여러 번 실행하려면 ./hello 명령을 반복하면 됩니다.
한 줄 및 여러 줄 주석 추가하기
이 단계에서는 C++ 코드에 주석을 추가하는 방법을 배웁니다. 주석은 코드가 무엇을 하는지 설명하는 메모입니다. 컴파일러는 이를 무시하며 코드를 더 읽기 쉽게 만드는 데 도움을 줍니다.
WebIDE에서 hello.cpp 파일을 열고 다양한 유형의 주석을 포함하도록 수정합니다.
#include <iostream>
// 이것은 한 줄 주석입니다.
// 프로그램이 무엇을 하는지 설명합니다.
/*
이것은 여러 줄 주석입니다.
여러 줄의 설명을 작성할 수 있습니다.
각 줄에 //를 추가할 걱정 없이 말이죠.
*/
int main() {
// 인사말 메시지 출력
std::cout << "Hello, World!" << std::endl; // 출력을 설명하는 인라인 주석
/*
필요한 경우 코드 중간에
여러 줄 주석을 사용할 수도 있습니다.
*/
return 0; // 운영 체제에 성공 상태 반환
}
주석 유형을 분석해 보겠습니다.
한 줄 주석:
//로 시작합니다.- 줄 끝까지 이어집니다.
- 짧은 설명에 좋습니다.
여러 줄 주석:
/*로 시작합니다.*/로 끝납니다.- 여러 줄에 걸쳐 작성할 수 있습니다.
- 긴 설명에 유용합니다.
인라인 주석:
- 코드 줄 끝에 추가됩니다.
- 특정 코드 줄을 설명합니다.
프로그램을 컴파일하고 실행하여 여전히 작동하는지 확인합니다.
g++ hello.cpp -o hello
./hello
출력 예시:
Hello, World!
주석에 대한 주요 포인트:
- 주석은 코드를 더 이해하기 쉽게 만듭니다.
- 다른 프로그래머(그리고 자신)가 코드의 목적을 이해하도록 돕습니다.
- 컴파일러는 주석을 완전히 무시합니다.
- "무엇"이 수행되는지가 아니라 "왜" 수행되는지를 설명하기 위해 주석을 사용하세요.
주석을 책의 포스트잇 메모라고 생각하면 됩니다. 실제 텍스트를 변경하지 않고 추가적인 맥락과 설명을 제공합니다.
줄 바꿈을 위해 endl과 \n 사용하기
이 단계에서는 C++ 출력에서 줄 바꿈을 만드는 두 가지 방법인 std::endl과 줄 바꿈 문자 \n에 대해 배웁니다. 두 방법 모두 여러 줄에 걸쳐 출력을 형식화하는 데 도움이 됩니다.
WebIDE에서 hello.cpp 파일을 열고 줄 바꿈을 보여주도록 수정합니다.
#include <iostream>
int main() {
// 줄 바꿈을 위해 std::endl 사용
std::cout << "Hello, World!" << std::endl;
std::cout << "Welcome to C++ Programming!" << std::endl;
// 줄 바꿈을 위해 \n 사용
std::cout << "Using newline character:\n";
std::cout << "Line 1\n";
std::cout << "Line 2\n";
// 두 방법 혼합
std::cout << "Mixing methods: " << std::endl;
std::cout << "Line with endl\n";
std::cout << "Line with newline character" << std::endl;
return 0;
}
👆 LabEx 팁: 코드 블록 오른쪽 하단의 "Explain Code"를 클릭하여 Labby AI와 대화하며 코드에 대한 설명을 확인하세요.
줄 바꿈 방법을 분석해 보겠습니다.
std::endl:- 새 줄을 추가합니다.
- 출력 버퍼를 비웁니다(즉시 출력을 보장).
<iostream>라이브러리의 일부입니다.std::cout과 함께 사용됩니다.
\n(줄 바꿈 문자):- 새 줄을 만드는 간단한 방법입니다.
std::endl보다 가볍습니다.- 많은 프로그래밍 환경에서 작동합니다.
- 출력 버퍼를 비우지 않습니다.
프로그램을 컴파일하고 실행합니다.
g++ hello.cpp -o hello
./hello
출력 예시:
Hello, World!
Welcome to C++ Programming!
Using newline character:
Line 1
Line 2
Mixing methods:
Line with endl
Line with newline character
주요 포인트:
std::endl과\n모두 새 줄을 만듭니다.std::endl은 더 포괄적이지만 약간 느립니다.\n은 더 빠르고 가볍습니다.- 이 방법들을 혼합하여 사용할 수 있습니다.
줄 바꿈을 책의 문단 나누기라고 생각하면 됩니다. 출력을 정리하고 구조화하는 데 도움이 됩니다.
세미콜론 누락과 같은 일반적인 구문 오류 수정하기
이 단계에서는 C++의 일반적인 구문 오류, 특히 세미콜론 누락에 대해 배웁니다. 세미콜론은 문장의 끝을 표시하므로 C++에서 매우 중요합니다.
WebIDE에서 syntax_errors.cpp라는 새 파일을 만듭니다.
cd ~/project
touch syntax_errors.cpp
#include <iostream>
int main() {
// 일반적인 구문 오류: 세미콜론 누락
std::cout << "This line has an error" // 여기에 세미콜론이 누락되었습니다!
std::cout << "This line will not compile" << std::endl;
// 세미콜론이 포함된 올바른 버전
std::cout << "This line is correct" << std::endl;
std::cout << "All statements end with a semicolon" << std::endl;
return 0; // 여기에도 세미콜론을 잊지 마세요!
}
프로그램을 컴파일해 봅니다.
g++ syntax_errors.cpp -o syntax_errors
컴파일 오류 예시:
syntax_errors.cpp: In function ‘int main’:
syntax_errors.cpp:5:42: error: expected ‘;’ before ‘std’
5 | std::cout << "This line has an error" // Missing semicolon here!
| ^
| ;
6 | std::cout << "This line will not compile" << std::endl;
| ~~~
세미콜론에 대한 주요 포인트:
- C++의 모든 문장은 세미콜론
;으로 끝나야 합니다. - 세미콜론은 컴파일러에게 한 명령이 끝나고 다음 명령이 시작되는 위치를 알려줍니다.
- 세미콜론이 누락되면 컴파일 오류가 발생합니다.
- 세미콜론을 자주 잊는 곳:
cout문 뒤return문 뒤- 변수 선언 끝
오류를 수정해 보겠습니다.
- 누락된 세미콜론을 추가합니다.
- 각 문장이
;으로 끝나는지 확인합니다.
수정된 버전을 컴파일합니다.
g++ syntax_errors.cpp -o syntax_errors
./syntax_errors
성공하면 오류 메시지가 나타나지 않습니다.
세미콜론을 문장의 마침표라고 생각하면 됩니다. 코드에서 완전한 생각의 끝을 표시합니다.
요약
이번 실습에서는 Ubuntu 22.04에서 C++용 GCC(GNU Compiler Collection) 컴파일러를 설치하고 필요한 환경 변수를 설정하는 방법을 배웠습니다. 새로운 C++ 소스 파일을 만들고, int main() 함수를 포함한 기본적인 프로그램 구조를 작성했으며, cout을 사용하여 "Hello World" 메시지를 출력했습니다. 그 후 g++ 명령을 사용하여 프로그램을 컴파일하고 실행했습니다. 또한 한 줄 및 여러 줄 주석을 추가하는 방법, 줄 바꿈을 위해 endl과 \n을 사용하는 방법, 그리고 세미콜론 누락과 같은 일반적인 구문 오류를 수정하는 방법을 배웠습니다.
이 단계를 완료함으로써 첫 번째 C++ 프로그램을 작성하고 실행하기 위한 탄탄한 기초를 다졌으며, Ubuntu 22.04에서 C++ 개발에 필요한 기본 도구와 개념을 이해하게 되었습니다.



