Unity 액셀러레이터는 Unity 에디터 콘텐츠를 빠르게 공유하도록 지원하는 소프트웨어 에이전트입니다. 팀원들이 동일한 로컬 네트워크에서 작업할 때 액셀러레이터가 에셋 공유를 조정해주므로 프로젝트의 일부를 다시 빌드할 필요가 없습니다. Unity 팀즈 어드밴스드를 사용하는 경우 액셀러레이터는 소스 에셋도 공유합니다. 따라서 콜라보레이트 서비스에서 다운로드하는 시간이 대폭 감소합니다.
로컬 네트워크에 액셀러레이터를 설치하면 Unity 에디터(2019.3 버전 이상, 아래 Unity 에디터 요구 사항 참조)는 액셀러레이터와 커뮤니케이션하여 다른 팀 멤버들이 변경하거나 빌드한 에셋을 검색해서 가져옵니다. 액셀러레이터는 이러한 에셋의 임시 복사본을 네트워크에 보관하므로 에셋을 검색하거나 재빌드하는 데 시간과 대역폭을 낭비하지 않습니다.
팀원들이 자주 일하는 각 네트워크에 액셀러레이터를 설치하십시오. 액셀러레이터를 호스트할 수 있는 컴퓨터가 로컬 네트워크에서 실행되고 있어야 합니다. 호스트를 선택할 때 다음 요구 사항을 고려하십시오.
Unity 프로젝트는 2019.3 버전 이상의 Unity 엔진을 사용해야 합니다.
액셀러레이터는 Unity 팀즈 어드밴스드에 다음의 추가 이점을 제공합니다.
Unity 팀즈 어드밴스드가 있는 경우 조직의 소유자 또는 관리자 중 한 명이 다음 단계에 따라 개발자 대시보드에서 액셀러레이터를 생성할 수 있습니다.
Unity 팀즈 어드밴스드에서 사용할 경우 각 액셀러레이터는 자체 보안 인증서를 수신하여 조직에 액세스할 권한이 있음을 증명합니다. 액셀러레이터가 콘텐츠를 업로드하거나 다운로드하기 전에 요청을 하는 Unity 에디터가 SSL/TLS를 사용하여 액셀러레이터에 안전하게 접속하고 인증을 확인합니다. Unity 에디터가 액셀러레이터를 발견한 후 접속하면 일반 Unity 사용자 토큰을 전달하는 대신, Unity 아이덴티티 서비스에서 특수 토큰을 수신합니다. 이 토큰은 사용자 ID를 확인하고 조직 내 단일 프로젝트에 액세스합니다. 따라서 액셀러레이터를 사용하는 동안 다른 조직 및 프로젝트에 대한 액세스를 보호할 수 있습니다.
에셋 임포트 파이프라인은 스크립트 통해 프로젝트 에셋에 액세스하도록 해주는 API를 제공하며, 액셀러레이터를 캐싱 메커니즘으로 사용합니다. 개발자 또는 개발팀원 중 한 명이 에셋을 임포트하면 에셋 임포트 파이프라인은 먼저 해당 에셋이 액셀러레이터 저장소의 임포트된 상태로 존재하는지 확인합니다. 존재하면 에셋 임포트 파이프라인은 임포트 단계를 건너 뛰고, 대신에 액셀러레이터에서 에셋을 다운로드합니다. 존재하지 않으면 에셋 임포트 파이프라인은 에셋을 임포트한 후 액셀러레이터에 업로드합니다.
에셋 임포트 파이프라인에서 액셀러레이터를 사용하면 대형 프로젝트의 초기 시작 시간을 크게 줄일 수 있습니다. 리소스를 많이 소모하는 임포트 대신에 이 조합을 사용하면 임포트된 결과만 다운로드하여 프로젝트에 대해 로컬로 저장할 수 있습니다. 동일한 로컬 네트워크의 사용자들은 다른 사용자의 임포트를 공유할 수 있으므로 여러 명이 리소스 소모가 큰 임포트 작업을 수행할 필요가 줄어듭니다.
Unity 팀즈 어드밴스드가 없는 경우 Unity 액셀러레이터를 직접 다운로드하여 설치하고 설치 과정 동안 등록 토큰을 선택 해제할 수 있습니다.
각 플랫폼에서 커맨드 라인을 통해 설치 프로그램을 실행할 수 있습니다. --help
인자를 사용하여 설치 프로그램을 실행하면 이용 가능한 다양한 옵션이 표시됩니다. 프롬프트 없이 전체 설치를 진행하려면 다음에 대한 값을 제공해야 합니다.
--storagedir
는 파일과 설정을 저장할 액셀러레이터 디렉토리를 설정합니다.--registration-token
은 액셀러레이터가 생성된 후 개발자 대시보드에서 제공되는 토큰을 지정합니다. --have-registration-token false
는 등록을 건너 뜁니다(예: Unity 팀즈 어드밴스드가 없는 경우). 중요: 이 두 방법 중 한 가지만 사용해야 합니다.--mode unattended
를 사용하십시오. 기본값 또는 제공된 다른 옵션 플래그의 값을 사용합니다.Contents/MacOS/installbuilder.sh
에 있음)에 위치한 바이너리를 실행해야 합니다.액셀러레이터를 설치하면 설정 마법사의 마지막 단계에 에디터에서 참조할 IP 주소와 포트가 다음의 포맷으로 표시됩니다.
[IP]:[Port]
에디터가 해당 액셀러레이터를 에셋 파이프라인 버전 2 캐시 서버로 사용하도록 하려면 다음 절차를 따르십시오.
Unity 팀즈 어드밴스드 사용자는 개발자 대시보드에서 액셀러레이터 지표를 모니터링할 수 있습니다. 이 지표는 소스 에셋에만 적용되고, 생성된(임포트된) 에셋에는 적용되지 않습니다.
프로젝트의 액셀러레이터에 관한 요약을 보려면 프로젝트를 선택한 후 왼쪽 탐색 표시줄에서 Collaborate > Accelerators를 선택하십시오. 이 메뉴에서 다음 정보를 볼 수 있습니다.
프로퍼티 | 설명 |
---|---|
이름 | 액셀러레이터를 생성할 때 지정한 이름입니다. |
Avg. Efficiency | 지난 24시간 동안 액셀러레이터의 평균 효율입니다. |
Editors | 액셀러레이터에 연결된 Unity 에디터 수입니다. |
Latest Activity | 액셀러레이터의 가장 최근 활동입니다. |
Status | 액셀러레이터는 다음 상태 중 하나일 수 있습니다. - Available은 액셀러레이터가 설치되지 않았거나 콜라보레이트 서비스에 등록되지 않았음을 의미합니다. - Ready는 액셀러레이터가 콜라보레이트 서비스에 등록되었지만, 연결된 Unity 에디터가 없다는 의미입니다. - In use는 Unity 에디터가 연결되었거나, 최근에 액셀러레이터에 접속했다는 의미입니다. - Idle은 Unity 에디터가 이전에 액셀러레이터를 사용했지만, 최근 활동은 없다는 의미입니다. - Not Listening은 액셀러레이터를 설정된 포트에 연결할 수 없다는 의미입니다(대개 다른 서비스가 이미 사용 중이기 때문임). - Disconnected는 액셀러레이터가 사용량 보고 또는 설정 변경 수신을 위해 서비스에 더 이상 연결되지 않음을 의미합니다. |
Enabled | Unity 에디터가 액셀러레이터를 발견하여 사용할 수 있음을 의미합니다. Unity 에디터는 실행 여부에 관계없이 비활성화된 액셀러레이터를 사용하지 않습니다. |
액셀러레이터의 Details를 클릭하면 사용량에 대한 심층 정보가 표시됩니다. 이 데이터는 10분마다 업데이트됩니다.
지난 24시간 동안 액셀러레이터의 평균 성능을 보여줍니다. 이 값의 범위는 0에서 100까지이며, 콜라보레이트 서비스에서 원격으로 제공되는 것이 아니라 액셀러레이터에서 로컬로 제공되는 콘텐츠 다운로드의 백분율을 측정합니다. 값이 0이면 액셀러레이터가 콘텐츠 다운로드를 적극적으로 지원하지 않음을 의미합니다. 값이 100이면 액셀러레이터가 모든 콘텐츠 다운로드를 제공하고 있음을 의미합니다.
액셀러레이터는 주기적으로 새 에셋을 저장할 수 있도록 공간을 비웁니다. 이 경우 대시보드는 예전 에셋에 할당된 바이트 중에서 액셀러레이터가 로컬 스토리지에서 제거한 바이트 수를 보고합니다.
참고: 일반적으로 이 동작은 액셀러레이터를 정상적으로 유지하는 데 도움이 됩니다. 하지만 이 값이 액셀러레이터의 효율을 떨어뜨리는 것처럼 보일 경우 팀원들의 사용량을 충족하기 위해 스토리지 공간을 추가할 수 있습니다. 이상적으로는 액셀러레이터를 실행하는 파일 시스템이 가장 최근에 활성화된 프로젝트의 모든 파일을 수용할 만큼 여유 공간이 충분한 솔리드 스테이트 하드 드라이브를 사용하는 것이 좋습니다(필수 사항은 아님). 스토리지가 부족해지면 액셀러레이터의 전반적인 효율이 감소합니다.
분산된 팀에는 콜라보레이트 서비스를 사용하는 원격 기여자뿐만 아니라 액셀러레이터를 사용하는 로컬 기여자가 있을 수 있습니다. 이 경우 액셀러레이터는 원격 퍼블리시 이벤트를 수신 대기하고 로컬 네트워크의 사용자들을 위해 영향을 받는 콘텐츠를 사전에 다운로드합니다.
액셀러레이터를 사용하면 로컬 네트워크에서 제공된 것이 아니라 원격 콜라보레이트 서비스에서 요청하고 다운로드한 전체 바이트 수에 대해 보고합니다. 로컬로 제공되는 바이트 수가 많을수록 네트워크 게이트웨이에 대한 부하가 줄어들어서 팀에 더 도움이 됩니다.
액셀러레이터는 콜라보레이트 서비스에서 다운로드하는 대신 로컬로 저장된 에셋을 제공할 때 대역폭을 추적하고, Unity 에디터가 에셋을 원격으로 다운로드하기 위해 대기했어야 할 시간(절약된 시간)을 보고합니다.
참고: 위에서 언급된 지표는 소스 에셋에만 적용되고, 생성된(임포트된) 에셋에는 적용되지 않습니다.
Unity 팀즈 어드밴스드를 사용하지 않는 경우 각 액셀러레이터는 Prometheus 지표 보고서를 /metrics
로 호스트하며, 이를 통해 로컬 네트워크에서 쿼리를 수행할 수 있습니다. 다음은 액세스할 수 있는 전체 지표 리스트입니다.
지표 | 설명 |
---|---|
process_resident_memory_bytes |
액셀러레이터에서 사용한 메모리 양입니다. |
uta_agent_sys_cpu_percent |
시스템에서 사용한 CPU 양입니다. |
uta_agent_sys_mem_bytes_used |
시스템에서 사용한 메모리 양입니다. |
uta_agent_protobuf_connects |
Unity 에디터가 에셋 임포트 파이프라인용 서비스에 연결한 횟수입니다. |
uta_agent_protobuf_bytes_in |
에셋 임포트 파이프라인에서 수신한 바이트 수입니다. |
uta_agent_protobuf_bytes_out |
에셋 임포트 파이프라인에 전송한 바이트 수입니다. |
uta_agent_protobuf_requests{code="0",method="get"} |
에셋 임포트 파이프라인에 전송한 항목 수입니다. |
uta_agent_protobuf_requests{code="1",method="get"} |
에셋 임포트 파이프라인에 전송한 항목에서 발생한 오류 수입니다. |
uta_agent_protobuf_requests{code="2",method="get"} |
에셋 임포트 파이프라인에 전송한 항목에서 발생한 네임스페이스 오류 수입니다. |
uta_agent_protobuf_requests{code="3",method="get"} |
캐싱되지 않은 항목에 대해 에셋 임포트 파이프라인에서 요청한 횟수입니다. |
uta_agent_protobuf_requests{code="0",method="put"} |
에셋 임포트 파이프라인에서 수신한 항목 수입니다. |
uta_agent_protobuf_requests{code="1",method="put"} |
에셋 임포트 파이프라인에서 수신한 항목에서 발생한 오류 수입니다. |
uta_agent_protobuf_requests{code="2",method="put"} |
에셋 임포트 파이프라인에서 수신한 항목에서 발생한 네임스페이스 오류 수입니다. |
uta_agent_protobuf_requests{code="0",method="delete"} |
항목을 제거하기 위해 에셋 임포트 파이프라인에서 요청한 횟수입니다. |
uta_agent_protobuf_requests{code="1",method="delete"} |
에셋 임포트 파이프라인에서 항목 제거 중에 발생한 오류 수입니다. |
uta_agent_protobuf_requests{code="2",method="delete"} |
에셋 임포트 파이프라인에서 항목 제거 요청 중에 발생한 네임스페이스 오류 수입니다. |
uta_agent_protobuf_requests{code="3",method="delete"} |
캐싱되지 않은 항목에 대해 에셋 임포트 파이프라인에서 항목 제거를 요청한 횟수입니다. |
Unity 에디터 로그를 사용하면 디버깅 정보를 쉽게 확인할 수 있습니다. 콜라보레이트 이벤트의 로그를 보려면 환경 변수를 enableCollabEventLogs=true
로 설정한 상태에서 Unity 에디터(또는 Unity Hub)를 실행하십시오. [collab-accelerator]
로 표시된 로그는 액셀러레이터의 성능에 대한 인사이트를 제공합니다.
아래 블록은 에셋 임포트 파이프라인 v2를 사용하는 액셀러레이터의 예제 로그 출력을 보여줍니다. 콜라보레이트용이 아니므로 enableCollabEventLogs=true
가 필요하지 않습니다.
2019-10-07T11:34:51-0700 Using Asset Import Pipeline V2.
...
2019-08-08T09:04:03-0700 Start importing Assets/Scenes/tame-the-unicorn.png guid(07a0d449dcaef4d2ba104e9d9b350de6)
2019-08-08T09:04:05-0700 Done importing asset: 'Assets/Scenes/tame-the-unicorn.png' (target hash: 'd5fddd470dd9beedcd7261b6455e436a') in 1.082988 seconds
2019-08-08T09:04:05-0700 RemoteAssetCache::AddArtifactToCacheServer - artifactKey='Guid(07a0d449dcaef4d2ba104e9d9b350de6) Importer(-1,)' Target hash='d5fddd470dd9beedcd7261b6455e436a'
액셀러레이터는 각 플랫폼에서 백그라운드 프로세스로 실행됩니다.
설정 메뉴에서 “서비스”로 검색하거나 Run 다이얼로그(WIN + R)에서 “services.msc”을 실행하여 Services Panel을 열고, 결과 리스트에서 “Unity 액셀러레이터” 서비스를 찾으십시오. 왼쪽 패널에 Stop the service 또는 Restart the service 옵션이 표시됩니다.
터미널에서 launchctl
커맨드를 실행하여 LaunchControl 유틸리티에서 “com.unity.accelerator” 서비스를 제어할 수 있습니다. 자세한 내용은 https://www.launchd.info/를 참조하십시오.
service
콘솔 유틸리티를 사용하여 “unity-accelerator” 서비스를 제어할 수 있습니다. 자세한 내용은 http://manpages.ubuntu.com/manpages/bionic/man8/service.8.html을 참조하십시오.
액셀러레이터 서비스는 유지관리 기간 동안 자동으로 업데이트됩니다. 현재 유지관리 시간은 액셀러레이터를 실행하는 컴퓨터에 따라 01:00–02:00 AM(로컬 시간)으로 설정되었습니다. 유지관리는 액셀러레이터가 새 버전을 발견했을 때에만 진행됩니다.
액셀러레이터의 설치 및 제거 로그는 운영체제의 표준 임시 디렉토리에 unity-accelerator-*install.log
로 저장됩니다. 액셀러레이터의 로그는 스토리지 디렉토리에 unity-accelerator.log
로 저장됩니다.
액셀러레이터를 설치했지만 일부 Unity 에디터가 사용하지 못한다면 여러 가지 원인이 있을 수 있습니다. 다음 문제 해결 옵션을 사용하여 문제를 해결해 보십시오.
각 프로젝트 기여자는 액셀러레이터를 사용하기 위해 에디터 버전 2019.3 이상을 보유해야 합니다.
액셀러레이터가 문제를 겪는 프로젝트 기여자와 동일한 근거리 통신망(LAN)에서 실행 중인지 확인하십시오. 액셀러레이터는 원격으로 작업하는 기여자에게는 영향을 주지 않습니다.
문제가 발생한 컴퓨터가 액셀러레이터에 접속할 수 있는지 확인하십시오. Unity 팀즈 어드밴스드를 사용하는 경우 다음 절차에 따라 브라우저에서 액셀러레이터 상태 페이지에 액세스할 수 있습니다.
Unity 팀즈 어드밴스드를 사용하지 않는 경우에는 액셀러레이터의 호스트 IP 주소를 다음 URL 경로에 입력하면 해당 상태 페이지가 표시됩니다.
[AcceleratorIP]:[AcceleratorPort]/api/agent-health
테스트가 실패하면 모든 호스트 및 네트워크 방화벽이 액셀러레이터의 수신 IP 주소 및 포트(TCP)에 대한 액세스를 허용하는지 확인하십시오. 네트워크 관리자와 협력하여 이 포트에 대한 액세스를 허용해야 할 수 있습니다.
Unity 팀즈 어드밴스드를 사용한다면 액셀러레이터가 해당 프로젝트에 대해 설정되었는지 확인하십시오. 개발자 대시보드에서 프로젝트로 이동한 후 왼쪽 탐색 표시줄에서 Collaborate > Accelerator를 선택하십시오. 그러면 해당 프로젝트에 대한 액셀러레이터가 표시됩니다.
Unity 팀즈에서 액셀러레이터를 사용하기 위한 도움이 필요하면 이메일로 문의하거나 개발자 대시보드에서 지원 요청서를 제출하십시오. Unity 팀즈 어드밴스드 프로젝트에 대한 요청서를 제출하려면 왼쪽 탐색 표시줄에서 Collaborate > Support를 선택하십시오.
에셋 임포트 파이프라인에서 액셀러레이터를 사용하기 위한 도움이 필요하면 액셀러레이터 포럼을 방문해 보십시오.