MOONSUN
[UE5] 언리얼 C++ 프로젝트의 컴파일 & 실행 과정 본문
언리얼 공부를 제대로 들어가기 전에,
언리얼 프로젝트는 어떻게 실행되고, C++ 코드는 언제 돌아가는건지 정리해보고자 한다.
0. 전체 흐름
먼저 전체 구조는 아래와 같다.
.uproject 실행
↓
Unreal Editor 실행
↓
DLL(Binaries) 확인
↓
(필요 시) UBT로 빌드
↓
DLL 생성
↓
Editor가 DLL 로드
↓
게임 실행
여기서 핵심은 “언리얼은 에디터 중심 구조이고, + C++은 DLL로 동작한다”
1. .uproject는 실행 파일이 아니다.

.uproject는 단순한 JSON 형식의 설정 파일이다.

이 안에는 다음과 같은 정보가 들어 있다:
- 어떤 모듈을 사용하는지
- 어떤 엔진 버전인지
- 어떤 플러그인이 활성화되어 있는지
“ .uproject 는 프로젝트를 어떻게 열지 알려주는 설명서 ”
즉, 실행 주체가 아니라 “에디터가 읽는 대상” 이다.
2. 프로젝트를 열면 실제로 일어나는 일
.uproject를 더블 클릭하면 벌어지는 일은 아래와 같다.
- Unreal Editor 실행
- 프로젝트 설정(.uproject) 읽기
- 프로젝트 구조 로딩
- C++ 프로젝트라면 → DLL 존재 여부 확인
즉, 에디터가 모든 흐름의 중심
3. 컴파일은 누가 하는가?
컴파일은 Visual Studio가 아니라 "UBT"가 한다.
3-1. Visual Studio
- 코드 작성
- 빌드 버튼 제공 (트리거 역할임)
3-2. Unreal Build Tool (UBT)
- 실제 컴파일 담당
- 빌드 규칙 관리
- 의존성 처리
그리고 결과물은 아래 경로에 생성
Binaries/Win64/프로젝트명.dll
즉, VS는 "버튼" 역할을 해주고, UBT가 "실제 작업"을 한다.
4. DLL은 어떻게 사용하나?
컴파일이 끝나서 DLL이 생성되고 나면,
에디터가 DLL을 메모리에 로드한다.
그 과정에서
C++ 클래스가 에디터에 등록 되고, 리플렉션 시스템에 반영 된다.
그래서 블루프린트에서 C++클래스를 사용할 수 있고, 에디터에서 바로 실행 및 테스트를 해볼 수 있는 것..!
5. 게임 실행은 어떻게 되는 것?
우리가 에디터에서 Play 버튼을 누르면, 별도의 EXE를 실행하는 것이 아니라
이미 로드된 DLL을 기반으로
→ 에디터 내부에서 게임이 실행되는 것
즉, 별도 실행 파일 없이 현재 로드된 코드 상태로 즉시 플레이 하는 것.
6. 정리
- Visual Studio가 DLL을 에디터에 넣는게 아니라, 에디터가 DLL을 직접 로드하고
- .uproject가 에디터를 실행하는게 아니라, 에디터가 .uproject를 읽고 프로젝트를 여는 것
| 요소 | 역할 |
| .uproject | 프로젝트 설정 파일 (설명서) |
| Editor | 전체 실행의 중심 |
| UBT | 실제 컴파일 담당 |
| DLL | C++ 코드 결과물 |
| Visual Studio | 코드 편집 + 빌드 트리거 |
.uproject → 에디터 실행 → UBT 빌드 → DLL 생성 → 에디터 로드 → 게임 실행
'UE5' 카테고리의 다른 글
| [UE5] 로그 출력 (FString타입 , 커스텀 로그 카테고리, 로그 매크로) (0) | 2026.04.01 |
|---|---|
| [UE5] 입력 처리 : Enhanced Input (Input Mapping Context / Input Action) (0) | 2026.03.31 |
| [UE5] 입력 처리 : Axis, Action 바인딩 (Legacy 버전) (0) | 2026.03.27 |
| [UE5] C++을 언리얼 오브젝트 클래스로 만드는 규칙 (0) | 2026.03.26 |
| [UE5] Unreal Engine 프로젝트 구조와 기본 개념 정리 (0) | 2026.03.09 |