C++ · 심층 가이드
C++ Hello World 완전 정리
C++로 첫 프로그램을 세우면서 컴파일과 링크, 표준 출력 스트림, 명령행 인자와 환경 변수까지 실행 파일이 만들어지는 경로를 손으로 확인하는 예제 묶음입니다.
C++의 첫 프로그램은 인터프리터 언어와 사정이 다릅니다. 파일을 저장하고 실행하는 대신 전처리, 컴파일, 링크를 거쳐 실행 파일이 만들어지고, 초보자를 막는 오류 대부분이 이 단계 구분에서 나옵니다. 헤더를 빠뜨렸을 때와 정의를 빠뜨렸을 때 나오는 메시지가 다르다는 것만 알아도 진단 속도가 달라집니다. 화면에 한 줄을 찍는 이 작은 예제들은 사실 툴체인이 어디까지 정상인지 확인하는 점검용 도구에 가깝습니다.
순서는 출력에서 시작해 입력으로 넓어집니다. Hello World 출력로 std::cout과 스트림 삽입 연산자를 잡고, 변수 값을 같이 출력에서 여러 값을 이어 붙이는 방식을 익힙니다. 함수로 인사 만들기는 선언과 정의가 나뉘는 C++의 기본 구조를 처음 보여 주고, 명령행 인자 읽기와 환경 변수 읽기는 프로그램 바깥에서 값이 들어오는 두 경로를 각각 다룹니다. 유니코드 메시지 출력은 콘솔 인코딩 문제를 미리 겪어 두기 좋은 자리입니다.
실행 파일을 만들 때 표준 버전을 지정하지 않으면 컴파일러 기본값이 적용되는데, 이 기본값은 컴파일러와 배포판마다 다릅니다. 예제가 내 환경에서만 안 되는 상황의 상당수가 여기서 옵니다. 빌드 명령에 표준 버전 옵션을 명시해 두면 이 변수를 없앨 수 있습니다. 또 하나, 윈도우 콘솔에서 한글이 깨지는 문제는 코드가 아니라 콘솔 코드 페이지와 소스 파일 인코딩의 조합에서 발생합니다. 소스를 UTF-8로 저장하고 콘솔 출력 인코딩을 맞추면 해결되는 경우가 대부분이라, 이 시점에 원인을 정리해 두면 이후 문자열 예제 내내 시간을 아낍니다.
01Hello World 출력
C++에서 Hello World 출력 개념을 코드로 빠르게 확인하는 Hello World 예제입니다.
C++ code
// Hello World 출력
#include <iostream>
int main() {
std::cout << "Hello, World 1!\n";
}짧은 예제를 여러 번 실행해 보면서 출력 흐름과 실행 환경을 같이 익혀 보세요.
출력 예제는 괄호와 문자열 구분자 같은 작은 문법 실수 하나로도 바로 멈출 수 있습니다.
02변수 값을 같이 출력
C++에서 변수 값을 같이 출력 개념을 코드로 빠르게 확인하는 Hello World 예제입니다.
C++ code
// 변수 값을 같이 출력
#include <cstdlib>
#include <iostream>
int main() {
const char* env = std::getenv("APP_ENV");
std::cout << (env ? env : "local") << "\n";
}짧은 예제를 여러 번 실행해 보면서 출력 흐름과 실행 환경을 같이 익혀 보세요.
출력 예제는 괄호와 문자열 구분자 같은 작은 문법 실수 하나로도 바로 멈출 수 있습니다.
03함수로 인사 만들기
C++에서 함수로 인사 만들기 개념을 코드로 빠르게 확인하는 Hello World 예제입니다.
C++ code
// 함수로 인사 만들기
#include <iostream>
int main() {
std::cout << "Hello, World 3!\n";
}짧은 예제를 여러 번 실행해 보면서 출력 흐름과 실행 환경을 같이 익혀 보세요.
출력 예제는 괄호와 문자열 구분자 같은 작은 문법 실수 하나로도 바로 멈출 수 있습니다.
04배열을 순회하며 인사
C++에서 배열을 순회하며 인사 개념을 코드로 빠르게 확인하는 Hello World 예제입니다.
C++ code
// 배열을 순회하며 인사
#include <cstdlib>
#include <iostream>
int main() {
const char* env = std::getenv("APP_ENV");
std::cout << (env ? env : "local") << "\n";
}짧은 예제를 여러 번 실행해 보면서 출력 흐름과 실행 환경을 같이 익혀 보세요.
출력 예제는 괄호와 문자열 구분자 같은 작은 문법 실수 하나로도 바로 멈출 수 있습니다.
05명령행 인자 읽기
C++에서 명령행 인자 읽기 개념을 코드로 빠르게 확인하는 Hello World 예제입니다.
C++ code
// 명령행 인자 읽기
#include <iostream>
int main() {
std::cout << "Hello, World 5!\n";
}짧은 예제를 여러 번 실행해 보면서 출력 흐름과 실행 환경을 같이 익혀 보세요.
출력 예제는 괄호와 문자열 구분자 같은 작은 문법 실수 하나로도 바로 멈출 수 있습니다.
06템플릿 문자열 인사
C++에서 템플릿 문자열 인사 개념을 코드로 빠르게 확인하는 Hello World 예제입니다.
C++ code
// 템플릿 문자열 인사
#include <cstdlib>
#include <iostream>
int main() {
const char* env = std::getenv("APP_ENV");
std::cout << (env ? env : "local") << "\n";
}짧은 예제를 여러 번 실행해 보면서 출력 흐름과 실행 환경을 같이 익혀 보세요.
출력 예제는 괄호와 문자열 구분자 같은 작은 문법 실수 하나로도 바로 멈출 수 있습니다.
07유니코드 메시지 출력
C++에서 유니코드 메시지 출력 개념을 코드로 빠르게 확인하는 Hello World 예제입니다.
C++ code
// 유니코드 메시지 출력
#include <iostream>
int main() {
std::cout << "Hello, World 7!\n";
}짧은 예제를 여러 번 실행해 보면서 출력 흐름과 실행 환경을 같이 익혀 보세요.
출력 예제는 괄호와 문자열 구분자 같은 작은 문법 실수 하나로도 바로 멈출 수 있습니다.
08환경 변수 읽기
C++에서 환경 변수 읽기 개념을 코드로 빠르게 확인하는 Hello World 예제입니다.
C++ code
// 환경 변수 읽기
#include <cstdlib>
#include <iostream>
int main() {
const char* env = std::getenv("APP_ENV");
std::cout << (env ? env : "local") << "\n";
}짧은 예제를 여러 번 실행해 보면서 출력 흐름과 실행 환경을 같이 익혀 보세요.
출력 예제는 괄호와 문자열 구분자 같은 작은 문법 실수 하나로도 바로 멈출 수 있습니다.
09컬렉션 요약 출력
C++에서 컬렉션 요약 출력 개념을 코드로 빠르게 확인하는 Hello World 예제입니다.
C++ code
// 컬렉션 요약 출력
#include <iostream>
int main() {
std::cout << "Hello, World 9!\n";
}짧은 예제를 여러 번 실행해 보면서 출력 흐름과 실행 환경을 같이 익혀 보세요.
출력 예제는 괄호와 문자열 구분자 같은 작은 문법 실수 하나로도 바로 멈출 수 있습니다.
10버전 정보 출력
C++에서 버전 정보 출력 개념을 코드로 빠르게 확인하는 Hello World 예제입니다.
C++ code
// 버전 정보 출력
#include <cstdlib>
#include <iostream>
int main() {
const char* env = std::getenv("APP_ENV");
std::cout << (env ? env : "local") << "\n";
}짧은 예제를 여러 번 실행해 보면서 출력 흐름과 실행 환경을 같이 익혀 보세요.
출력 예제는 괄호와 문자열 구분자 같은 작은 문법 실수 하나로도 바로 멈출 수 있습니다.
정리하며
- 빌드 명령에 표준 버전 옵션을 명시해 컴파일러 기본값 차이로 생기는 혼란을 없앱니다
- 컴파일 오류와 링크 오류를 구분해 읽으면 헤더 문제인지 정의 문제인지 바로 갈립니다
- 명령행 인자는 개수 확인 후 접근해야 하며, 프로그램 이름이 첫 번째 자리를 차지합니다
- 한글 출력이 깨지면 소스 인코딩과 콘솔 코드 페이지를 함께 맞춰야 해결됩니다
더 깊이 들어가고 싶다면 C++ 학습 라이브러리에서 다른 주제 가이드를 이어서 보거나, 언어 비교에서 같은 개념이 다른 언어에서 어떻게 표현되는지 확인해 보세요.