Notice
Recent Posts
Recent Comments
Link
«   2026/06   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

MOONSUN

[UE5] 언리얼 C++ 프로젝트의 컴파일 & 실행 과정 본문

UE5

[UE5] 언리얼 C++ 프로젝트의 컴파일 & 실행 과정

MoonSun_v 2026. 3. 26. 16:10

 

언리얼 공부를 제대로 들어가기 전에, 

언리얼 프로젝트는 어떻게 실행되고, C++ 코드는 언제 돌아가는건지 정리해보고자 한다.

 

 

 

0. 전체 흐름

먼저 전체 구조는 아래와 같다.

.uproject 실행
   ↓
Unreal Editor 실행
   ↓
DLL(Binaries) 확인
   ↓
(필요 시) UBT로 빌드
   ↓
DLL 생성
   ↓
Editor가 DLL 로드
   ↓
게임 실행

 

여기서 핵심은 “언리얼은 에디터 중심 구조이고, + C++은 DLL로 동작한다”

 

 

 

 

1. .uproject는 실행 파일이 아니다.

 

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

 

.uproject를 메모장으로 열어보면 위와 같음. (C++을 사용하지 않는다면 모듈이 없을 것)

 

이 안에는 다음과 같은 정보가 들어 있다:

  • 어떤 모듈을 사용하는지
  • 어떤 엔진 버전인지
  • 어떤 플러그인이 활성화되어 있는지

“ .uproject 는 프로젝트를 어떻게 열지 알려주는 설명서 ”

 

즉, 실행 주체가 아니라 “에디터가 읽는 대상” 이다.

 

 

 

 

2. 프로젝트를 열면 실제로 일어나는 일

.uproject를 더블 클릭하면 벌어지는 일은 아래와 같다.

  1. Unreal Editor 실행
  2. 프로젝트 설정(.uproject) 읽기
  3. 프로젝트 구조 로딩
  4. 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 생성 → 에디터 로드 → 게임 실행