NetDrive로 게임 개발팀의 대용량 에셋 라이브러리 스트리밍하기

3분 읽기 use-case amazon-s3 workflows
Jay
JayTech Writer
게임 스튜디오가 NetDrive로 S3에 호스팅된 텍스처·빌드 에셋 라이브러리를 드라이브 문자로 마운트해 수백 기가바이트의 바이너리를 로컬 동기화 없이 다루는 방법.

중견 규모 스튜디오의 텍스처 아티스트가 4K 노멀 맵이 지난주 리비전과 비교해 어떻게 보이는지 확인해야 하는데, 공유 에셋 라이브러리는 두 프로젝트에 걸쳐 3TB를 넘긴 S3 버킷에 있다. 전체를 워크스테이션에 동기화하는 건 현실적이지 않고, 브라우저 콘솔로 파일을 하나씩 다운로드하면 엔진에서 실제로 작업하는 흐름이 끊긴다. NetDrive는 그 버킷을 드라이브 문자로 마운트해, 엔진의 에셋 브라우저와 아티스트의 파일 탐색기 모두 이를 클라우드에서 스트리밍되는 로컬 스토리지로 인식하게 한다.

NetDrive drive manager showing Google Drive, S3 and pCloud mounted as drive lettersMounted clouds appearing as native drives in Windows File Explorer

에셋 라이브러리를 드라이브 문자로 마운트하세요

NetDrive 는 Google Drive, OneDrive, S3, SFTP, WebDAV 등을 Windows 와 macOS 에서 일반 드라이브처럼 보이게 합니다 — 동기화도, 전체 다운로드도 없이.

  • S3에 호스팅된 텍스처와 빌드가 로컬 드라이브로 표시됨 — 전체 동기화 불필요
  • 백그라운드 업로드 큐가 워크스테이션을 멈추지 않고 대용량 익스포트를 처리
  • 파일 잠금으로 두 아티스트가 같은 에셋을 동시에 덮어쓰는 것을 방지
WindowsmacOS
NetDrive 다운로드 →

무료 체험. 평생 라이선스와 구독 플랜 제공.

게임 에셋에 전체 동기화가 맞지 않는 이유

동기화 기반 도구는 폴더 트리 전체를 디스크로 내려받아야 그 안의 무언가를 사용할 수 있는데, 이는 한 세션에서 수만 개 중 몇 개 파일만 건드리는 에셋 라이브러리와는 궁합이 나쁘다. NetDrive의 온디맨드 스트리밍은 이 문제를 피한다. 버킷을 마운트하면 전체 디렉터리 구조가 즉시 나타나지만, 개별 파일은 실제로 열릴 때만 전송된다. Windows 탐색기에서 머티리얼 폴더를 탐색하는 텍스처 아티스트는 몇 시간짜리 초기 동기화를 기다리지 않고도 썸네일이 붙은 모든 에셋을 바로 볼 수 있다.

이는 애초에 게임 에셋 라이브러리를 무겁게 만드는 파일들, 즉 압축되지 않은 소스 텍스처, 고폴리곤 스컬프트 익스포트, 각각 기가바이트 단위에 이를 수 있는 플랫폼별 빌드 산출물에서 가장 크게 체감된다. NetDrive의 조정 가능한 로컬 캐시(100GB~1TB)는 워크스테이션 드라이브 전체를 버킷의 로컬 복사본에 할애하지 않고도 최근 연 에셋을 빠르게 다시 열 수 있게 해준다.

NetDrive drive manager showing a mounted cloud storage bucket alongside other connected drives

빌드와 소스 에셋 분리하기

흔한 패턴은 두 버킷을 나란히 마운트하는 것이다. 하나는 소스 아트(PSD, 스컬프트 파일, 원본 오디오)용이고, 다른 하나는 CI 파이프라인이 자동 빌드마다 푸시하는 컴파일된 빌드 출력물용이다. 둘 다 각자의 드라이브 문자로 표시되므로, 최신 나이틀리 빌드를 가져가는 QA 테스터가 아티스트가 소스 파일에 쓰는 것과 같은 디렉터리 트리를 헤매지 않아도 된다. 각 드라이브가 독립적으로 연결되므로, 소스 라이브러리에서 실제로 작업 중인 아티스트를 방해하지 않으면서 업무 시간대에 빌드 출력 드라이브에만 대역폭 제한을 걸 수 있다.

Cloud storage bucket mounted as a native drive letter in File Explorer via NetDrive

공유 에셋의 덮어쓰기 방지하기

두 아티스트가 같은 리그나 머티리얼 파일을 동시에 편집하는 것은 실수로 일어나기 쉽고, 나중에 풀기는 번거로운 충돌이다. Office 문서뿐 아니라 모든 파일 형식에 적용되는 NetDrive의 파일 잠금은 한 아티스트가 작업 중인 파일을 잠글 수 있게 해주며, 다른 누군가가 그 파일을 열면 잠금이 해제될 때까지 읽기 전용으로 보인다. 바이너리 아트 에셋을 위한 전담 버전 관리 파이프라인이 없는 팀에게는 이것만으로도 작업물 유실의 가장 흔한 원인을 막을 수 있다.

File lock status shown on files in a shared drive through NetDrive

공유 팀 드라이브 설정하기

  1. NetDrive의 Drive Manager를 열고 + Add Drive를 클릭합니다.
  2. Select Amazon S3를 선택하고(스튜디오가 이미 사용 중인 다른 오브젝트 스토리지도 가능) 액세스 키, 시크릿, 버킷 이름을 입력합니다.
  3. 드라이브 문자를 지정합니다 — 팀 전체에 걸쳐 일관된 문자(예: “텍스처”를 뜻하는 T:)를 쓰면 엔진의 에셋 경로를 머신 간에 이식 가능하게 유지할 수 있습니다.
  4. 여러 스튜디오 구성원이 관리형 라이선스로 접근해야 한다면 Enable Team Drive를 켜서, 자격 증명과 드라이브 설정을 워크스테이션마다 수동으로 구성하는 대신 팀에 일괄 배포할 수 있습니다.

익스포트를 위한 백그라운드 업로드

아티스트가 처리된 텍스처 배치를 완료하거나 CI에서 빌드가 도착하면, 그 콘텐츠를 버킷으로 다시 올리는 작업은 워크스테이션을 멈추지 않고 백그라운드에서 진행된다. 대용량 익스포트는 큐에 들어가 업로드되는 동안에도 아티스트는 엔진에서 계속 작업할 수 있으며, 진행 상황은 열려 있어야 하는 대화 상자가 아니라 시스템 트레이에서 확인할 수 있다.

Background upload queue showing file transfer progress to a mounted cloud drive

마무리

에셋 라이브러리를 드라이브 문자로 마운트하면, 수 테라바이트짜리 S3 버킷이 엔진과 파일 브라우저를 비롯한 워크스테이션의 모든 도구가 평범한 로컬 스토리지처럼 다룰 수 있는 대상으로 바뀐다 — 별도의 동기화 클라이언트도, 작업을 시작하기 전 전체 다운로드를 기다릴 필요도 없다. 이 구성이 의존하는 협업 기능에 대해서는 Team Drive and Shared Drives in NetDriveOffice File Locking in NetDrive를 참고하라.

— Jay, NetDrive