언리얼 엔진(UE) 의 BuildID 시스템은 오래된 DLL 파일로 인해 발생할 수 있는 잠재적인 오류를 완화합니다. 이 시스템은 충돌이나 라이브러리 연결 실패를 방지할 뿐 아니라 실행 파일 자체와 동일한 시기에 컴파일된 DLL만 로드하여 오래된 바이너리로 인해 발생할 수 있는 트래킹하기 어려운 버그도 방지합니다. 빌드 ID는 일반적으로 컴파일 시 자동으로 생성되어 엔진이 빌드될 때마다 고유한 값을 새로 생성합니다. 그러나 수동으로 지정된 값을 사용하여 오버라이드할 수 있습니다.
자동으로 생성된 빌드 ID
빌드 시 컴파일된 DLL이 한 개 이상 포함된 모든 출력 디렉터리는 확장자가 .modules
인 JSON 파일(예: UE4Editor.modules
)을 받습니다. 이 파일은 디렉터리 내의 각 모듈과 해당 모듈에 연결된 DLL, 빌드 자체의 GUID를 나열합니다. 엔진이 컴파일될 때마다 이 파일은 새 GUID를 생성하므로 다른 컴파일 세션의 DLL이 인식되어 엔진이 무시할 수 있습니다. 소스 컨트롤을 사용하여 바이너리 빌드를 유지하는 경우 실행 파일, 모든 DLL, 연결된 .modules
파일을 모두 확인하여 빌드 ID가 일치하는지 확인해야 합니다.
수동 지정된 빌드 ID
빌드 ID를 특정 값으로 강제할 수 있습니다. Build/Build.version
JSON 파일에 BuildId
항목(스트링 변수)을 추가하면 이를 수행할 수 있지만, 호환되지 않는 모듈 사용을 방지하는 확인을 제거하기 때문에 권장하지 않습니다. 특히 여러 프로젝트 간에 공유될 수 있는 플러그인을 사용하는 강제 빌드 ID를 사용하면 오래된 코드를 실행하게 되기 쉽습니다.