Unity의 DevOps 툴 및 워크플로 둘러보기

Tutorial

Beginner

+10XP

20 mins

(15)

Unity Technologies

Unity의 DevOps 툴 및 워크플로 둘러보기

Unity DevOps 툴 및 워크플로의 목표는 크리에이터가 최대한 효율적이고 효과적으로 작업하도록 돕는 것입니다. 이 튜토리얼에서 배울 내용은 다음과 같습니다.

  • DevOps 시스템의 다양한 단계를 지원하는 주요 툴 및 워크플로를 식별합니다.
  • 툴을 학습하며 DevOps 대시보드를 살펴봅니다.

참고: 본 튜토리얼은 Unity DevOps 시작하기의 일부입니다. 남은 교육 과정을 살펴보며 DevOps가 크리에이터의 작업을 어떻게 지원하는지 자세히 알아보세요.

Languages available:

1. 개요

DevOps란? 튜토리얼에서 DevOps 접근 방식의 기초를 알아보고 지속적 통합, 전달, 배포의 프레임워크가 어떻게 DevOps를 지원하는지 학습했습니다. 본 튜토리얼에서는 DevOps 시스템의 각 단계에서 도움이 될 수 있는 특정 Unity Gaming Services 툴 및 일반적인 DevOps 워크플로를 살펴봅니다.

2. 시작하기 전에

Unity를 처음 사용하시나요?

Unity를 처음 사용하는 경우, Unity 필수 과정 학습 길잡이를 통해 기초를 다지고 Unity 에디터에서 제작을 시작할 수 있습니다. 본 DevOps 튜토리얼을 진행하기 전에 이 학습 길잡이를 먼저 완료하는 것이 좋습니다.

Unity Dashboard 액세스 확인

이 튜토리얼을 진행하며 Unity Dashboard에서 Unity DevOps 툴 및 워크플로를 검토하려면 Unity DevOps 구독을 활성화하고 Unity Dashboard에서 계정에 액세스해야 합니다.

중요: Unity DevOps 구독을 설정하려면 신용 카드 세부 정보를 입력해야 하지만 이 툴의 기본 기능은 무료로 사용할 수 있습니다. 계정에서 사용자를 3명 넘게 추가하거나 5GB를 초과하는 데이터를 사용하는 경우에만 비용이 청구됩니다.

Unity DevOps에 로그인

DevOps 구독이 활성화된 경우 다음 지침에 따라 Unity DevOps Dashboard에 로그인합니다.

1. 브라우저에서 Unity DevOps 페이지로 이동합니다.

2. Unity 계정에 아직 로그인하지 않은 경우 Sign in을 선택합니다. 로그인하면 Unity Dashboard가 표시됩니다.

3. 맨 왼쪽 메뉴의 About DevOps를 선택하면 DevOps Dashboard가 표시됩니다. 다양한 요금제 등급을 확인하고 무료로 사용해 보세요.

3. Unity Version Control을 사용하여 프로젝트 생성

게임 개발 프로세스에서는 다양한 모델, 텍스처, 애니메이션, 오디오 파일, 디자인, 레벨, 코드 라인을 생성하여 프로젝트에 추가하게 됩니다. 이 모든 데이터는 보통 컴퓨터의 하드 드라이브에 로컬로 저장됩니다. 하지만 이 방법에는 컴퓨터 고장, 노트북 분실, 데이터 손상 가능성을 비롯한 여러 단점이 있습니다.

DevOps의 장점은 데이터 손실이나 손상을 방지하는 버전 관리 솔루션이 있다는 점입니다. 버전 관리는 별도의 서버나 클라우드의 저장소에 데이터를 저장합니다. Unity에는 Unity Version Control 버전 관리 툴이 있으며 다음 두 조건 중 하나에 해당되기 전까지 무료로 사용할 수 있습니다.

  • 3명을 초과하는 사용자 추가
  • 5GB를 초과하는 클라우드 스토리지 공간 사용

중요: Unity Version Control은 엔진에 구애받지 않기 때문에 언리얼 엔진 등 다른 게임 엔진에서도 사용할 수 있습니다. Unity Version Control을 IDE(Visual Studio, Visual Studio Code, Rider), 사운드 에디터(FMod, WWise) 또는 CI/CD 시스템(Jenkins, TeamCity, Bamboo)과 같은 다른 애플리케이션과 함께 사용할 수도 있습니다.

프로젝트에 Unity Version Control 설정

Unity 프로젝트에서 다음 3가지 방법으로 Unity Version Control을 사용할 수 있습니다.

  • 웹에서 사용: 이 방법을 사용하면 아무것도 설치할 필요가 없지만, Unity ID로 로그인해야 하며 DevOps 구독이 활성 상태여야 합니다.
  • Unity Version Control 앱 이용: 이 방법을 사용하려면 애플리케이션을 별도로 설치해야 합니다.
  • Unity 에디터 내에서 바로 사용: 이 방법을 사용하려면 Version Control 플러그인을 활성화해야 합니다. 활성화하려면 메인 메뉴에서 Window > Unity Version Control을 선택합니다. 그러면 에디터 창 하단에 Unity Version Control 창이 나타납니다.

Unity Version Control의 장점

Unity Version Control을 활용해 할 수 있는 일은 다음과 같습니다.

  • 협업자가 액세스할 수 있는 파일과 해당 파일에서 작업할 수 있는 사람을 동시에 관리합니다.
  • 두 협업자가 서로 상충하는 변경 사항을 같은 파일에 적용하는 병합 충돌 문제를 효율적으로 처리합니다.
  • 무언가 잘못되었거나 새로운 방향으로 게임 작업을 반복하려는 경우 프로젝트를 이전 버전으로 되돌립니다.

4. 빌드 자동화로 프로젝트 변환

버전 관리에 대해 학습했으니 이제 DevOps의 다음 단계인 빌드 자동화를 확인해 보겠습니다.

게임의 현재 상태에 만족하여 테스트를 진행하려고 할 때 통합 Unity 에디터 빌드 익스포트 툴을 사용하는 경우가 많을 것입니다. 많은 개발자들이 가장 자연스럽게 선택하는 방식이지만 작업 빌드를 익스포트하려면 어느 정도 시간이 걸리며, 익스포트 중에는 컴퓨터 사용량이 늘어나므로 실질적으로 다른 작업을 할 수 없습니다.

여러 플랫폼을 대상으로 게임을 제작하는 경우 협업자 및 관계자와 공유하기 위해 다양한 설정을 가진 여러 개의 빌드를 생성해야 할 수도 있습니다. 모든 배리언트 빌드를 계속 추적하는 작업은 곧 큰 부담으로 다가올 수 있습니다. 간단히 말해, 자체 컴퓨터를 이용해 빌드하면 스케일링을 효율적으로 할 수 없습니다.

이런 경우 또 하나의 유용한 DevOps 툴인 빌드 자동화가 도움이 됩니다. 빌드 자동화를 활용하면 클라우드에 위치한 서버를 사용하여 여러 게임 빌드를 더 빠르고 효율적으로 컴파일하고 익스포트할 수 있습니다. Unity의 빌드 자동화 툴인 Unity Build Automation을 사용하면 예를 들어 저장소에 새로운 항목이 저장될 때마다 툴에서 새로운 빌드를 자동으로 익스포트하도록 트리거를 추가하는 방식도 구현할 수 있습니다.

Unity Build Automation을 사용하면 시간도 단축할 수 있으며, 다음과 같은 편리한 툴과 유용한 정보를 한곳에서 이용할 수 있습니다.

  • 빌드 타겟 및 소스 컨트롤 프로젝트 설정을 위한 설정 패널
  • 평균적인 빌드 소요 시간, 빌드 크기, 성공한 빌드 수, 실패한 빌드 수를 포함한 이전 빌드 이력
  • 새 빌드가 익스포트될 때마다 팀에 전송할 수 있는 알림 및 경고를 설정하는 패널

Unity Build Automation의 다른 큰 장점은 값비싼 하드웨어를 구매할 필요가 없다는 점입니다. Unity의 클라우드 서버를 사용해 Windows, Mac, Android, Linux, Web 등 여러 다양한 플랫폼에서 게임을 익스포트할 수 있습니다.

5. Artifact Center를 사용하여 빌드 저장

시간이 지남에 따라 실행 파일이나 패키지 등 점점 더 많은 빌드를 생성하게 되면서, 각 빌드와 코드 변경 사항에 어떤 아티팩트가 해당되는지 기억하기가 어려워질 수 있습니다. 따라서 아티팩트를 관리하고 모든 다양한 버전을 추적할 우수한 시스템이 필요합니다.

DevOps의 다음 솔루션인 Artifact Center가 바로 이 문제를 해결해 줄 수 있습니다. Artifact Center는 이전 프로젝트 빌드 전체의 저장소 역할을 합니다. Artifact Center를 사용하면 빌드 시도와 빌드 아티팩트를 야기한 소스 코드 변경 사항을 확인할 수 있습니다. 아티팩트의 태그 지정, 필터링, 검색, 배포, 공유도 더 쉬워집니다.

Artifact Center와 Build Automation을 통합하면 자주 사용하는 빌드를 추적할 수 있으며 빌드 평가와 최종 배포 자동화를 위해 팀의 워크플로를 지원하는 방식으로 아티팩트에 태그를 지정할 수 있습니다.

6. 빌드 배포

게임 실행 파일을 성공적으로 빌드했다면 게임 버전을 개발, 스테이징 또는 UAT(사용자 수용 테스트) 같은 특정 환경에 배포할 수 있으며, 여기서 팀원들과 함께 게임을 테스트해 버그가 없는지 확인할 수 있습니다. 여러 테스트 환경을 운영하는 이러한 방식은 보통 내부 플레이 테스트에 사용되거나, 게임이 공개적으로 출시되기 전에 QA 팀이 게임의 최신 버전을 검토해야 하는 경우에 사용됩니다.

게임을 배포하는 최종 환경을 프로덕션 환경이라 합니다.
이 환경에서는 게임이 공개되고 게임의 구매나 다운로드가 가능합니다.

Unity Version Control 및 Unity Build Automation을 사용하면 게임 파일을 이러한 테스트 서버 또는 디지털 스토어에 수동 또는 자동 방식으로 전송할 수 있습니다. 이러한 툴을 설정하여 개발자가 게임의 새로운 버전을 승인하면 해당 버전이 스테이징 환경으로 배포되고, QA 팀이 빌드를 바로 다운로드해 테스트할 수 있게 QA 팀으로 알림이 전송되도록 할 수 있습니다.

작업하는 각 프로젝트에 이 스토리지 및 배포 플로를 설정할 수 있으며, 이 워크플로는 지정된 트리거에 따라 백그라운드에서 원활하게 작동합니다. 이 접근 방식을 사용하면 각 스테이지에서 거쳐야 하는 여러 단계를 모두 고려할 필요가 없으므로 개발 복잡도를 낮출 수 있습니다. Unity DevOps가 모든 작업을 대신 진행합니다.

7. 자동 테스트를 활용한 게임 검증

매우 유용한 DevOps 단계인 검증을 통해 빌드를 익스포트하거나 배포할 때마다 자동 테스트를 수행할 수 있습니다. 이 테스트 단계를 자동화하여 다른 작업을 할 때 테스트가 실행되도록 구현할 수도 있습니다. 이 기능이 특히 유용한 이유는 많은 시간을 들여 게임 플레이 테스트를 수동으로 진행하지 않아도 해결해야 할 버그 및 기타 문제에 대해 중요한 정보를 얻을 수 있기 때문입니다.

물론 팀원들과 함께 진행하는 수동 테스트도 유용합니다. 특정 하드웨어 설정에서만 발견되거나 게임 내에서 특정 액션을 수행한 후에만 찾을 수 있는 유독 잘 숨겨진 버그를 찾아낼 수 있기 때문입니다. 하지만 그래픽 성능 등 더 일반적이고 반복적인 테스트에서는 자동 테스트로 많은 시간을 단축할 수 있습니다.

8. 게임을 플레이어에게 릴리스

최종 DevOps 단계는 릴리스로, 게임을 플레이어에게 제공할 수 있는 단계입니다.

게임 릴리스는 배포와 유사합니다. 게임의 최종 상태가 만족스럽고 대중에게 즐거움을 선사할 준비를 마쳤다면 DevOps를 사용해 최종 게임 버전을 Steam, Epic Games Store, Google Play를 비롯한 수많은 디지털 게임 스토어에 손쉽게 배포할 수 있습니다. 하지만 많은 디지털 게임 스토어들은 게임이 준수해야 할 자체적인 규칙과 설정, 요구 사항을 갖추고 있습니다.

DevOps 접근 방식을 사용하면 타게팅하는 디지털 스토어에 맞춰 게임을 설정하는 것도 간편해집니다. 게임을 각 플랫폼에 맞게 일일이 설정하는 대신, 전용 DevOps 툴을 사용하여 이 프로세스를 자동화할 수 있으며 프로세스에서 발생하는 인적 실수도 피할 수 있습니다.

9. 다음 단계

Unity DevOps에 대한 이해도를 높였으니 이제 학습한 내용을 연습할 차례입니다.

본 교육 과정의 다음 튜토리얼 세트에서는 새 프로젝트를 처음부터 생성해 클라우드에 저장하고, 팀 내 다른 개발자와 협업할 수 있도록 버전 관리를 활성화합니다.

피드백을 남겨 주세요

본 학습 경험은 Unity DevOps 팀이 제작했습니다. 피드백이 있다면 DevOps 포럼에 남겨 주시기 바랍니다.

추가 리소스

본 튜토리얼을 완료하고 나서 DevOps에 대해 더 자세히 알아보려면 다음과 같은 유용한 리소스를 참고하세요.

Complete this Tutorial