개발 환경 준비와 첫 프로그램
처음 C 언어를 배울 때 가장 큰 벽은 문법이 아니라, 사실은 "내가 쓴 코드가 정말 실행될까?" 하는 불안입니다. 이 장의 목표는 거창하지 않습니다. 컴파일러를 준비하고, Hello, World!를 화면에 띄우고, "아, 된다!"라는 첫 성공 경험을 만드는 것입니다. 이 한 번의 성공이 앞으로 변수, 조건문, 함수, 포인터를 배울 때 훨씬 큰 힘이 됩니다.

개발 환경이란 무엇일까
C 언어로 프로그램을 만들려면 보통 두 가지가 필요합니다. 하나는 코드를 쓰는 편집기 또는 IDE이고, 다른 하나는 C 코드를 실행 파일로 바꿔 주는 컴파일러입니다. 여기에 명령을 입력해 프로그램을 실행하는 터미널까지 있으면 기본 준비는 끝입니다.1
쉽게 비유하면 이렇습니다. 편집기는 공책, 컴파일러는 번역기, 터미널은 실행 버튼입니다. 우리는 사람의 언어에 가까운 C 코드를 쓰고, 컴파일러는 그것을 컴퓨터가 이해할 수 있는 형태로 바꿉니다. 그래서 C에서는 "저장만 하면 바로 실행"이 아니라, 작성 → 컴파일 → 실행 순서를 거치는 경우가 많습니다.
초보자에게 추천하는 시작 방법
초보자라면 너무 많은 도구를 한꺼번에 익히려고 하지 않는 것이 좋습니다. 가장 무난한 선택은 VS Code 같은 가벼운 편집기 + GCC 또는 Clang 컴파일러 조합입니다. Windows에서 통합 환경을 선호한다면 Visual Studio도 좋은 선택입니다. Visual Studio는 프로젝트 관리와 실행이 편해서 처음 배우는 사람에게 안정감을 줍니다.5
설치가 아직 부담스럽다면 온라인 컴파일러로 잠깐 맛보기 연습을 해볼 수도 있지만, 이 책에서는 앞으로의 학습을 위해 내 컴퓨터에서 직접 컴파일하고 실행하는 환경을 기준으로 설명하겠습니다.2
운영체제별로 환경 준비하기
운영체제에 따라 준비 방법은 조금 다르지만, 핵심은 같습니다. 컴파일러가 설치되어 있고, 터미널에서 버전 확인이 되면 거의 준비가 끝난 것입니다.
Windows에서는 VS Code를 설치한 뒤 MinGW 계열 GCC를 설치하고, 컴파일러의
bin폴더를PATH에 추가하면 터미널에서gcc --version으로 확인할 수 있습니다.2macOS에서는 기본적으로 Clang을 사용하는 경우가 많으며, 필요하면
xcode-select --install명령으로 Xcode Command Line Tools를 설치한 뒤clang --version으로 확인할 수 있습니다.3Ubuntu 계열 Linux에서는
sudo apt update후sudo apt install build-essential로 GCC와 필수 도구를 설치하고,gcc --version으로 확인하면 됩니다.4
여기서 PATH는 운영체제가 프로그램을 찾는 경로 목록입니다. Windows에서 gcc를 쳤는데 "명령을 찾을 수 없습니다" 같은 메시지가 나온다면, 대개 설치가 안 되었거나 PATH 설정이 빠진 경우입니다.2
Windows에서 Visual Studio를 사용할 계획이라면, 새 프로젝트를 만들고 소스 파일을 추가할 때 확장자를 반드시 .c로 저장하는 습관을 들이세요. 그렇지 않으면 .cpp로 저장되어 C++ 파일로 다뤄질 수 있습니다.5
설치가 끝났는지 먼저 확인하자
코드를 쓰기 전에 딱 한 가지만 확인하면 됩니다. 터미널이나 명령 프롬프트를 열고 다음처럼 입력해 보세요.
gcc --version또는 macOS에서 Clang 기준으로 확인하려면 다음 명령을 쓸 수 있습니다.
clang --version버전 번호가 보이면 준비가 된 것입니다. 숫자가 보이는 순간, 이제 컴퓨터는 여러분의 첫 C 프로그램을 받아들일 준비를 마친 셈입니다. 숫자 몇 줄이 반가워 보이면, 이미 개발자의 세계에 한 발 들어온 것입니다.
첫 프로그램 작성하기
이제 hello.c라는 파일을 만들고 다음 코드를 입력해 봅시다.
#include <stdio.h>
int main(void)
{
printf("Hello, World!n");
return 0;
}이 코드는 아주 짧지만, C 프로그램의 핵심 뼈대를 거의 다 담고 있습니다.6
먼저 #include <stdio.h>는 화면 출력에 필요한 기능을 가져오는 줄입니다. 여기서 stdio는 표준 입력과 출력에 관한 기능 묶음이라고 생각하면 됩니다. printf()를 쓰기 위해 보통 함께 적습니다.6
그다음 int main(void)는 프로그램이 시작되는 지점입니다. C 프로그램은 보통 main 함수에서 출발합니다. 컴퓨터는 "어디서부터 실행해야 하지?"라고 묻지 않고, main부터 시작합니다.6
중괄호 { } 안은 실제로 실행할 내용이 들어가는 영역입니다. 그리고 printf("Hello, World!n");는 화면에 문장을 출력합니다. 맨 뒤의 n은 줄바꿈 문자입니다. 이 문자가 있으면 출력 후 커서가 다음 줄로 내려갑니다.6
마지막 return 0;은 프로그램이 정상적으로 끝났다는 뜻을 운영체제에 알려 줍니다. 지금 당장은 "프로그램 끝!" 정도로 받아들여도 충분합니다.6
컴파일과 실행
이제 가장 짜릿한 순간입니다. 파일을 저장한 뒤 터미널에서 해당 파일이 있는 폴더로 이동합니다. 그리고 다음 명령으로 컴파일합니다.7
gcc hello.c -o hello이 명령은 hello.c를 컴파일해서 hello라는 실행 파일을 만들라는 뜻입니다. -o는 출력 파일 이름을 정하는 옵션입니다.7
컴파일이 끝나면 운영체제에 따라 실행 방법이 조금 다릅니다.
macOS나 Linux에서는 보통 이렇게 실행합니다.7
./helloWindows의 명령 프롬프트에서는 다음처럼 실행할 수 있습니다.
helloPowerShell이라면 보통 이렇게 실행합니다.
.hello.exe모든 것이 잘 되었다면 화면에 다음 문장이 나타납니다.
Hello, World!바로 이 순간이 중요합니다. 이 출력은 단순한 문장이 아닙니다. 내가 쓴 글자가 컴퓨터의 행동이 되었다는 첫 증거이기 때문입니다.
Visual Studio를 쓰는 경우
Windows에서 Visual Studio를 사용한다면 터미널 명령 없이도 실행할 수 있습니다. 빈 프로젝트를 만든 뒤 .c 파일을 추가하고 코드를 입력한 다음, 디버그하지 않고 시작 메뉴 또는 Ctrl + F5로 실행하면 콘솔 창에서 결과를 볼 수 있습니다.5
Visual Studio 방식의 장점은 프로젝트 관리가 편하고 실행 버튼이 분명하다는 점입니다. 반면, 터미널 명령을 직접 익히는 방식은 C의 컴파일 과정을 더 또렷하게 이해하는 데 도움이 됩니다. 처음에는 둘 중 편한 방법으로 시작하고, 나중에 두 방식 모두 익히면 가장 좋습니다.
초보자가 자주 하는 실수
첫 실행에서 막히는 것은 아주 자연스러운 일입니다. 오히려 대부분의 사람은 한 번쯤 막힙니다. 특히 다음 실수는 정말 흔합니다.
파일 이름이
hello.c가 아니라hello.txt또는hello.cpp로 저장된 경우printf(...);뒤의 세미콜론;을 빠뜨린 경우문자열을 작은따옴표가 아니라 큰따옴표
" "로 써야 하는데 헷갈린 경우Windows에서 GCC를 설치했지만
PATH가 설정되지 않아gcc명령을 찾지 못하는 경우2Visual Studio에서
.c파일이 아니라 기본 확장자인.cpp파일로 만들어 버린 경우5
에러가 났다고 해서 겁먹을 필요는 없습니다. 프로그래밍은 "한 번에 맞히는 사람"이 잘하는 것이 아니라, 에러 메시지를 보고 고치는 사람이 잘하게 됩니다. 첫 에러는 실패가 아니라 입문식에 가깝습니다.
한 번 더 바꿔서 실행해 보기
정말 내 프로그램인지 확인하는 가장 좋은 방법은 코드를 조금 바꿔 보는 것입니다. 예를 들어 이렇게 바꿔 보세요.
#include <stdio.h>
int main(void)
{
printf("안녕하세요, C 언어!n");
return 0;
}컴파일하고 실행했을 때 문장이 바뀌어 나온다면, 이제 여러분은 단순히 예제를 따라 친 것이 아니라 직접 프로그램을 수정하고 실행한 사람입니다. 그 차이는 생각보다 큽니다.
그다음에는 n을 지워 보고 출력이 어떻게 달라지는지도 확인해 보세요. 이렇게 작게 실험하는 습관이 이후 학습 속도를 크게 높여 줍니다.
이 장에서 꼭 기억할 것
이번 장에서 기억해야 할 핵심은 세 가지입니다.
C 프로그램을 실행하려면 편집기와 컴파일러가 필요하다.1
첫 C 프로그램은 보통
#include <stdio.h>,main,printf,return 0;구조로 시작한다.6코드를 쓴 뒤에는 컴파일하고 실행해야 결과를 볼 수 있다.7
이제 여러분은 C 언어를 "읽기만 하는 사람"이 아니라, 직접 실행해 본 사람이 되었습니다. 다음 장에서는 이 프로그램이 어떤 구조로 이루어져 있는지, 각 문법 조각이 무슨 역할을 하는지 조금 더 차근차근 살펴보겠습니다.
참고
1Setting Up C Development Environment
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.