본문으로 건너뛰기
Unreal Engine 모듈 · 플러그인 개발LESSON 09

새 Runtime 모듈을 프로젝트에 추가하기

난이도심화
예상 시간100분
선수지식3~8강의 Module 구조와 로딩

9강. 새 Runtime 모듈을 프로젝트에 추가하기

1. 이번 강의에서 해결할 문제​

새 Source 폴더와 Build.cs를 만들었지만 UBT가 Module을 발견하지 않거나, 게임 모듈에서 Header를 Include할 수 없습니다. Runtime Module 추가는 파일 생성뿐 아니라 Descriptor, Target 또는 의존성 그래프와 Module 구현 이름을 일치시키는 작업입니다.

2. 학습 목표​

3. 핵심 개념​

프로젝트 Module은 Source/<ModuleName>/ 아래에 Build.cs와 Source를 둡니다. Module이 현재 Target의 의존성 그래프에 들어와야 컴파일됩니다. .uproject의 Modules 목록과 Target의 ExtraModuleNames, 다른 Module의 Build.cs 의존성은 각기 발견·포함에 관여하므로 현재 엔진이 생성한 기본 프로젝트 패턴을 기준으로 수정합니다.

4. 단계별 실습​

Source/GameplaySupport/
├─ GameplaySupport.Build.cs
├─ Public/GameplaySupport/HealthQuery.h
└─ Private/
├─ GameplaySupportModule.cpp
└─ GameplaySupport/HealthQuery.cpp
GameplaySupport.Build.cs
using UnrealBuildTool;

public class GameplaySupport : ModuleRules
{
public GameplaySupport(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
PublicDependencyModuleNames.AddRange(new[]
{
"Core", "CoreUObject", "Engine"
});
}
}
Private/GameplaySupportModule.cpp
#include "Modules/ModuleManager.h"

IMPLEMENT_MODULE(FDefaultModuleImpl, GameplaySupport)
ArchitectureLab.uproject 일부
"Modules": [
{ "Name": "ArchitectureLab", "Type": "Runtime", "LoadingPhase": "Default" },
{ "Name": "GameplaySupport", "Type": "Runtime", "LoadingPhase": "Default" }
]

게임 모듈의 PrivateDependency에 GameplaySupport를 추가하고 Public API를 CPP에서 호출합니다. 프로젝트 파일을 갱신한 뒤 ArchitectureLabEditor Win64 Development와 Game Target을 각각 빌드합니다.

5. 코드가 동작하는 이유​

Descriptor가 Module 이름과 Type을 제공하고 UBT가 같은 이름의 ModuleRules를 찾습니다. IMPLEMENT_MODULE은 ModuleManager가 생성할 구현을 등록합니다. 소비 모듈의 Build.cs 의존성이 Include와 링크 환경을 연결합니다.

6. 자주 하는 실수와 해결법​

7. 직접 실습​

8. 이해 점검 질문 3개​

9. 핵심 요약​

MINI QUIZ

새 Runtime 모듈을 프로젝트에 추가하기 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“새 Runtime 모듈을 프로젝트에 추가하기” 코드 리뷰에서 유지해야 할 설계 원칙은 무엇인가요?
  2. 문제 2“새 Runtime 모듈을 프로젝트에 추가하기”의 작업 기준으로 ‘Build.cs 클래스명과 폴더명이 다름’을 진단하거나 바로잡은 선택은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

9강. 새 Runtime 모듈을 프로젝트에 추가하기 미완료 상태