[UE4] 파생 데이터 캐시(Derived Data Cache)
개요
파생 데이터 캐시란 무엇일까요?
에디터에서 새로운 레벨을 열고 실행할 때마다 '파생 데이터 캐시를 생성한다'는 메시지가 뜨곤 하는 게 퍼뜩 생각나는데요.
그렇다면 에셋을 사용하기 위해 쌓이는 일종의 캐시를 의미하는 것일까요?
파생 데이터와 파생 데이터 캐시(DDC)
파생 데이터(Derived Data)는 에셋을 사용하기 위해 생성되는 부가적인 데이터들입니다.
사실, 언리얼 에셋 사용을 위해선 이 파생 데이터가 반드시 필요합니다.
쉐이더의 경우를 예로 들어보겠습니다.
쉐이더의 경우 렌더링하려면 쉐이더 컴파일이 필요합니다.
그 컴파일 과정 후에 나온 데이터들이 있을 텐데요.
그게 바로 파생 데이터입니다.
파생 데이터는 그 크기가 큰데다가, 에셋 변화가 있을 시 언제든 새로 재생성될 수 있습니다.
그래서 체크인 되지 않고 캐싱 폴더에 임시 보관됩니다.
이 임시 보관되는 파일들을 파생 데이터 캐시(DDC)라고 합니다.
DDC 탐색
프로젝트 구성에 따라 여러 DDC 뭉치가 있을 수 있습니다.
그러므로 엔진 입장에서는 이 캐시들을 잘 탐색해야 할 필요성이 있을 것입니다.
캐시란 게 결국 빠르게 사용하기 위해 쌓아두는 거잖아요?
캐시를 탐색하는 과정은 아래와 같습니다.
- 빠른 캐시 순으로 데이터를 탐색합니다.
- 데이터를 발견하면 가장 빠른 로컬 캐시로 복사합니다.
- 데이터를 찾지 못했으면 먼저 데이터를 생성하고 캐시에 비동기 복사를 진행합니다.
공유 DDC
에셋의 양이 많아지면 DDC를 생성하는 데만 해도 꽤 많은 시간이 듭니다.
그럴 때는 공유 DDC를 설정하는 것이 좋습니다.
공유 DDC는 DDC 저장 위치를 공유해서 다른 사람이 생성한 DDC를 함께 사용하는 걸 뜻합니다.
이미 캐싱이 되어 있따면, DDC를 생성하느라 드는 불필요한 시간들을 줄일 수 있겠죠.
공유 DDC 설정 방법은 아래와 같습니다.
1. DefaultEngine.ini 파일에 [InstalledDerivedDataBackendGraph] 또는 [DerivedDataBackendGraph] 섹션을 선언합니다.
이 섹션은 원래 BaseEngine.ini 에 선언되어 있으며며, 기본적으로 에픽의 내부 DDC 공유 경로로 설정되어 있습니다.
즉 DefaultEngine.ini에 해당 섹션이 선언되어 있지 않다면 자동으로 로컬 DDC를 사용합니다.
2. 다른 네트워크 공유 경로로 설정하려면 재선언한 해당 섹션 아래의 경로를 다음과 같은 방식으로 변경해야 합니다.
- Windows: (Path=\mystudio.net\DDC)
- Mac: (Path=/Volumes/UE4DDC)