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

모듈 로그 카테고리와 빌드·로드 디버깅

난이도심화
예상 시간90분
선수지식7~12강의 Module 수명과 의존성

13강. 모듈 로그 카테고리와 빌드·로드 디버깅

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

“The following modules are missing or built with a different engine version” 메시지만 보고 Binary를 복사하거나 Rebuild를 반복합니다. 원인은 Plugin 비활성화, Descriptor 이름 불일치, 현재 Target용 Binary 부재, 엔진 버전·Toolchain 차이 또는 선행 Module 로드 실패일 수 있습니다. 빌드 성공과 로드 성공을 분리해야 합니다.

2. 학습 목표​

3. 핵심 개념​

로그는 “실패했다”가 아니라 어느 Target·Module·경로·단계에서 무엇을 기대했는지를 남겨야 합니다. UBT 빌드 로그, UnrealEditor 시작 로그, Project Saved/Logs와 Crash Context는 서로 다른 증거입니다.

Missing Module 진단 순서:

  1. .uplugin이 Plugin 검색 경로에 존재하는가?
  2. Plugin이 프로젝트에서 활성화됐는가?
  3. Descriptor Module 이름과 Source/Build.cs/IMPLEMENT_MODULE 이름이 같은가?
  4. 현재 Engine·Platform·Target·Configuration용 Binary가 있는가?
  5. 첫 번째 선행 Module 로드 실패는 무엇인가?

4. 단계별 실습​

Public/ReusableInteractionLog.h
#pragma once

#include "Logging/LogMacros.h"

REUSABLEINTERACTION_API DECLARE_LOG_CATEGORY_EXTERN(
LogReusableInteraction, Log, All);
Private/ReusableInteractionLog.cpp
#include "ReusableInteractionLog.h"

DEFINE_LOG_CATEGORY(LogReusableInteraction);
Private/ReusableInteractionModule.cpp
#include "Interfaces/IPluginManager.h"
#include "Modules/ModuleManager.h"
#include "ReusableInteractionLog.h"

class FReusableInteractionModule final : public IModuleInterface
{
public:
virtual void StartupModule() override
{
const TSharedPtr<IPlugin> Plugin =
IPluginManager::Get().FindPlugin(TEXT("ReusableInteraction"));

UE_LOG(LogReusableInteraction, Display,
TEXT("Startup BaseDir=%s"),
Plugin.IsValid() ? *Plugin->GetBaseDir() : TEXT("NotFound"));
}

virtual void ShutdownModule() override
{
UE_LOG(LogReusableInteraction, Display, TEXT("Shutdown"));
}
};

IMPLEMENT_MODULE(FReusableInteractionModule, ReusableInteraction)

FindPlugin 실패를 무시하고 경로를 사용하지 않습니다. 배포 로그에는 사용자 계정 경로나 민감한 환경 정보를 불필요하게 남기지 않고, 진단 빌드에서만 필요한 범위를 기록합니다.

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

전용 Category는 LogTemp보다 Module 출처와 필터링 범위를 명확히 합니다. PluginManager는 Engine이 실제로 발견한 Descriptor 기준 경로를 제공하므로 상대 경로 추측을 피합니다. ModuleManager 상태와 첫 로드 오류를 함께 보면 Binary 누락과 초기화 실패를 구분할 수 있습니다.

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

7. 직접 실습​

8. 이해 점검 질문 3개​

9. 핵심 요약​

MINI QUIZ

모듈 로그 카테고리와 빌드·로드 디버깅 미니 퀴즈

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

0 / 2
  1. 문제 1“모듈 로그 카테고리와 빌드·로드 디버깅” 작업 전 검토에서 채택해야 할 안전 기준은 무엇인가요?
  2. 문제 2“모듈 로그 카테고리와 빌드·로드 디버깅”의 작업 기준으로 ‘Missing Module 창만 캡처’을 진단하거나 바로잡은 선택은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

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

13강. 모듈 로그 카테고리와 빌드·로드 디버깅 미완료 상태