컴파일(Compile)이란 사람이 읽을 수 있는 소스 코드를 CPU가 실행할 수 있는 기계어로 변환하는 과정을 의미한다.
CPU는 오직 0과1(기계어)로만 읽어들이지만, 우리는 사람이 읽을 수 있는 고수준 언어(C, C++ 등)을 이용한다.
우리가 작성한 C++코드를 비주얼 스튜디오같은데서 실행하면 컴퓨터는 이를 읽어 결과를 내는데 이 과정을 컴파일이라 한다.
컴파일의 단계는 아래와 같다.
1. 전처리 : 소스 코드 정리
- #include, #define 등의 매크로를 처리한다. 그 결과 헤더 파일이 합쳐진 거대한 소스 코드 파일(.i 또는 .p)이 생성된다.
2. 컴파일 : 전처리된 코드를 어셈블리어로 변환
- 이 단계에서 코드의 문법 오류를 체크한다. 그 결과 어셈블리 파일(.s)가 생성된다. (이 어셈블리 파일에서 CISC,RISC용 명령어가 결정된다.)
3. 어셈블 : 어셈블리어를 진짜 CPU가 읽는 기계어로 변환
- 그 결과 목적 파일(.o 또는 .obj)이 생성된다.
4. 링크 ㅣ 여러 개의 목적 파일과 필요한 라이브러리를 하나로 묶음
그래서 흔히 우리가 작성한 코드에 오타가 있어 오류가 나는 경우는 컴파일 에러라고 부른다.(런타임 에러와 다름)
언리얼 엔진은 프로젝트가 거대해서 컴파일 시간이 매우 길기 때문에, 전처리기가 어떻게 작동되는지 알면 이를 최소화하여 빌드 시간을 줄이는 최적화를 고민해볼 수 있다.
그리고 컴파일러 설정을 바꾸는 것으로 C++코드를 CISC용, RISC용 실행 파일로 뽑아낼 수 있다.
빌드(Build)란 컴파일을 포함해, 사용자가 실행할 수 있는 완성된 프로그램으로 만드는 전체 과정을 의미한다.
빌드의 단계는 아래와 같다.
1. 코드 컴파일
- 위에서 얘기한 컴파일 과정을 진행한다.
2. 링킹
- 컴파일된 파일들과 외부 라이브러리들을 연결한다.
3. 최종 파일 생성
- 최종적으로 우리가 실행할 수 있는 파일(.exe)이 생긴다.
비주얼 스튜디오에서 예를 들면

코드를 작성 후 상단 빌드-> 컴파일을 클릭하면

아래 출력 결과는 위와 같이 빌드를 시작하고 완료되었다는 메세지가 출력된다.

반대로 코드를 작성 후 상단 빌드-> 솔루션 빌드를 클릭하면

중간에 .exe파일이 생성된 것을 볼 수 있다.
컴파일은 코드를 실행하면 이 코드를 컴퓨터가 읽어들어 번역하고 이를 통합하는 화면 뒷편의 과정이라고 생각할 수 있고,
빌드는 컴파일 과정을 거친 후 최종 실행파일까지 나오는 전체 과정을 의미한다고 생각할 수 있다.
'CS' 카테고리의 다른 글
| CS) 메모리 (0) | 2026.01.14 |
|---|---|
| CS) 고급 언어, 저급 언어, 기계어 (1) | 2026.01.14 |
| CS) 병렬처리(명령어 파이프라이닝) (0) | 2026.01.14 |
| CS) CISC와 RISC (0) | 2026.01.13 |
| CS) CPU(중앙처리장치) (0) | 2026.01.13 |