컴퓨터와 프로그램의 이해부터 시작해 봅니다.
1.1 우리는 왜 프로그래밍을 배우는가?
우리는 스마트폰으로 메시지를 보내고, 웹사이트를 검색하며, 유튜브를 시청하고, 게임을 즐깁니다.
이런 모든 기능은 **프로그램(program)**이라는 소프트웨어가 컴퓨터 위에서 동작하기 때문에 가능해집니다.
그렇다면 프로그램이란 무엇일까요?
프로그램은 컴퓨터가 이해할 수 있는 명령어들을 순서대로 작성해 놓은 문서입니다.
출처 입력
이 명령어들은 사람의 언어가 아닌 기계가 이해할 수 있는 언어로 작성되어 있어야 합니다.
그렇기 때문에 우리는 프로그래밍 언어를 배워야 합니다.
1.2 프로그래밍 언어란?
프로그래밍 언어는 사람과 컴퓨터가 서로 의사소통하기 위한 도구입니다.
C언어는 그 중에서도 단순하고 빠르며, 하드웨어에 가까운 언어로,
많은 운영체제, 게임 엔진, 시스템 소프트웨어의 근간이 되는 언어입니다.
1.3 컴퓨터가 프로그램을 이해하는 방식
사람은 printf("Hello, world!");처럼 C언어 문장을 이해할 수 있지만,
컴퓨터는 오직 **0과 1로 이루어진 기계어(machine code)**만 이해합니다.
즉, 우리가 C언어로 작성한 코드를 컴퓨터가 실행하려면 기계어로 바꿔주는 과정이 필요합니다.
1.4 프로그램 실행 과정 (컴파일 과정)
C언어로 작성한 프로그램은 다음 과정을 거쳐 실행됩니다.
[코드 작성] → [컴파일] → [링크] → [실행 파일 생성] → [실행]
각 단계 설명:
- 코드 작성: 사용자가 .c 확장자의 소스 파일을 작성합니다. 여기서는 visual studio 기준으로 .cpp 로 작성합니다.
- 컴파일(Compile): C언어 코드를 기계어로 번역합니다. 결과는 .obj 또는 .o 파일.
- 링크(Link): 여러 번역된 파일과 필요한 라이브러리들을 하나로 묶어 **실행 파일(.exe)**을 만듭니다.
- 실행(Run): 만들어진 실행 파일을 컴퓨터가 실행합니다.
이 과정을 자동으로 수행해 주는 것이 컴파일러(compiler)입니다. 대표적인 컴파일러로는 GCC, MSVC, Clang 등이 있습니다.
출처 입력
1.5 프로그램의 구조: 입력, 처리, 출력
모든 프로그램은 기본적으로 입력(Input) → 처리(Processing) → 출력(Output) 구조로 되어 있습니다.
예시) 학생 점수 계산 프로그램
- 입력: 이름과 점수를 입력받음
- 처리: 평균을 계산함
- 출력: 평균과 등급을 화면에 출력
이러한 구조를 이해하고 나면, 복잡한 프로그램도 더 쉽게 분석할 수 있습니다.
1.6 프로그램이 사용하는 메모리 구조
컴퓨터는 프로그램을 실행할 때 RAM(메모리) 위에 다음과 같은 공간을 만들어 사용합니다. 이 부분은 처음에는 너무 어려운 부분일 수 있으니 “아 이런게 있구나!” 하고 한번 쑥 읽고 넘어 가면 됩니다.
┌──────────────┐
│ 스택(Stack) │ ← 지역 변수, 함수 호출 정보
├──────────────┤
│ 힙(Heap) │ ← 동적 메모리 할당 영역 (malloc 등)
├──────────────┤
│ 데이터 영역 │ ← 전역변수, static 변수
├──────────────┤
│ 코드 영역 │ ← 프로그램 명령어 (실행 코드)
└──────────────┘
이 구조는 이후 포인터나 메모리 문제를 이해하는 데 큰 도움이 됩니다.
1.7 개발 도구(IDE) 소개
C언어를 작성하려면 컴파일러 뿐만 아니라 편리한 에디터가 필요합니다.
대표적인 통합 개발 환경(IDE) 도구는 다음과 같습니다.
- Code::Blocks (Windows, GCC 기반)
- Visual Studio (Windows, MSVC 기반, 강력한 디버깅)
- Dev-C++ (경량 IDE)
- VS Code + gcc/clang (범용 편집기 + 터미널 컴파일)
간단한 개인 학습용으로는 Dev-C++ 도 좋지만 좀 더 길게 보면 Visual Studio를 권장합니다.
게임플밍마스터 수업은 Visual Studio 를 사용합니다.
프로그램 수업을 시작하려면 일단 Visual Studio 를 설치해야 합니다.
설치가 됐다면 이제 프로그램을 작성해 보겠습니다.
1.8 Hello World 프로그램
C언어의 첫걸음은 화면에 문장을 출력하는 것입니다.
아래는 가장 기본적인 “Hello, World!” 프로그램입니다.
Visual Studio 를 설치 했다면 아래의 프로그램을 따라서 코딩해 보세요.
#include <stdio.h>
int main()
{
printf("Hello, world!\n");
return 0;
}
오타가 있거나 잘못 작성한 경우 빨간 줄이 해당 글자 아래에 표시가 되니 오타를 수정하세요.
오타 없이 타이핑이 됐다면 Visual Studio 상단 메뉴에서 빌드\\솔루션 빌드 를 클릭해서 빌드합니다.
빌드를 하면 위에서 설명한 것과 같이 컴파일을 통해 실행 파일 (.exe) 를 만들게 됩니다.
만들어진 실행 파일을 실행하면 되는데
상단 메뉴에서 디버그\\디버그 않고 시작 을 클릭하거나 Ctrl + F5 을 눌러서 만든 프로그램을 실행합니다.
실행이 되면 검은 색 화면의 윈도우가 뜨고 상단에 Hello, world! 라고 출력되면 성공입니다.
혼자하다 보면 여기까지 오기도 힘들고 안되는 거 투성이 일 수 있어요.
잘 안되면 댓글로 질문하세요 ~
소스 설명인데 이런거 구나 하고 지금은 읽어보세요
- #include <stdio.h>: 출력에 필요한 함수가 들어 있는 헤더 파일을 포함
- main(): 프로그램이 시작되는 함수
- printf(...): 문자열 출력 함수
- return 0;: 정상 종료
여기서는 하나만 꼬옥 이해하고 넘어 갑니다.
프로그램 즉 소스는 main 부터 시작을 한다는 거 ~
프로그램이 아무리 복잡해도 무조건 이 main 문에서 시작해서 차례대로 아래로 내려간다 를 명심하세요 .
'C언어 왕초보 탈출' 카테고리의 다른 글
[C언어 왕초보 탈출] #4. 컴퓨터의 기억 상자, 변수와 자료형 (3) | 2025.07.01 |
---|---|
[C언어기초] 3. Hello World (1) | 2025.06.29 |
[C언어기초] 2. 개발환경 구축하기 - visual studio 설치 (1) | 2025.06.27 |
[c언어기초] 1. 프로그래밍 첫걸음 떼기 (10) | 2025.06.20 |
C언어 와 C++ 언어 중에 어떤 것을 먼저 배워야 할까요? (0) | 2025.05.31 |