DevOps란?

Tutorial

Beginner

+10XP

20 mins

(38)

Unity Technologies

DevOps란?

DevOps(개발 및 운영) 툴을 사용하면 더 효율적이고 간소화된 방식으로 실시간 경험을 제작할 수 있습니다. 이 튜토리얼에서 배울 내용은 다음과 같습니다.

  • DevOps의 정의와 이 툴이 크리에이터에게 유용한 이유를 알아봅니다.
  • DevOps 시스템을 이해하고 자체 프로젝트에서 구현을 시작합니다.
  • DevOps의 지속적 통합, 전달, 배포의 역할을 파악합니다.

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

Languages available:

1. 개요

DevOps에 대해 들어 본 적은 있지만 DevOps가 정확히 무엇인지는 잘 모르시나요? 멀리서 찾지 마세요. 이 튜토리얼에서 DevOps라는 새로운 게임 개발 방식의 기초를 학습할 수 있습니다.

이 튜토리얼에서 배울 내용은 다음과 같습니다.

  • DevOps의 정의와 이 툴이 크리에이터에게 유용한 이유를 알아봅니다.
  • DevOps 시스템을 이해하고 자체 프로젝트에서 구현을 시작합니다.
  • DevOps의 지속적 통합, 전달, 배포의 역할을 파악합니다.

또한 협업 프로젝트를 수행하는 크리에이터에게 DevOps가 어떤 가치를 제공하는지 생각해 보고, DevOps를 통해 어떻게 시간을 단축하고, 반복 작업을 자동화하며, 위험을 줄일 수 있는지 살펴봅니다.

2. 시작하기 전에

Unity를 처음 사용하시나요?

Unity를 처음 사용하는 경우, Unity 필수 과정 학습 길잡이를 통해 기초를 다지고 Unity 에디터에서 제작을 시작할 수 있습니다. DevOps에 대한 학습을 계속하기 전에 이 학습 길잡이를 완료하는 것이 좋습니다.

Unity Dashboard에 대한 액세스 확인

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

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

무료 구독을 활성화하려는 경우 지금 설정해 두는 편이 좋을 수 있습니다.

3. DevOps란?

DevOps라는 용어는 개발(Development)과 운영(Operations)이라는 단어로 이루어진 혼성어입니다. 개발에는 게임의 모든 계획 수립, 프로그래밍, 협업, 제작, 테스트가 포함됩니다. 운영에는 게임을 배포, 설정, 관리하는 데 사용되는 서비스가 포함됩니다.

DevOps는 게임을 더 빠르게 개발하고 프로젝트 보안을 유지하는 데 도움이 되는 툴과 워크플로의 그룹입니다. 아래와 같이 DevOps를 나타내는 데 사용하는 무한대 기호를 본 적이 있을 것입니다.

새 프로젝트를 시작할 때 Unity DevOps 웹사이트에서 제공하는 툴을 사용할지 여부는 사용자의 선택에 달려 있습니다. 모든 툴을 선택하거나 원하는 한 가지 툴만 선택해도 되고, 아무것도 선택하지 않을 수도 있습니다. 게임을 제작할 때 반드시 DevOps 툴을 사용해야 하는 것은 아니지만, 이와 관련한 다양한 툴을 사용하면 많은 장점이 있습니다.

DevOps 시스템

Unity DevOps의 기본적인 내용을 알아보았으니 이제 DevOps를 개발 프로세스에 통합하는 방법을 더 자세히 살펴보겠습니다.

게임을 개발할 때는 개발 진행 상황을 주기적으로 저장하고, 다른 사람과 에셋을 공유하고, 빌드를 익스포트해 다른 하드웨어에서 게임이 작동하는지 확인해야 합니다. 모두 많은 시간이 소요될 수 있는 프로세스인데, DevOps는 바로 이러한 작업에 필요한 솔루션입니다.

처음에는 DevOps 워크플로를 적절하게 구현하는 방법을 모를 수 있습니다. 아마도 게임 파일을 USB 드라이브에 저장한 다음 다른 팀원에게 전달하거나, 모든 파일을 Dropbox에 저장하고 다른 개발자들과 커뮤니케이션하여 모두가 알맞은 폴더에 액세스하게 만드는 방법도 있을 것입니다. 하지만 게임의 저장과 익스포트, 공유 등에 활용할 수 있는 더 바람직한 수단이 있습니다.

아래 이미지를 살펴보세요.

이를 DevOps 시스템이라고 합니다. DevOps 시스템에는 자동화와 안전한 저장, 특정 시점별 트리거를 통해 개선할 수 있는 게임 개발 사이클의 여러 단계가 강조되어 있습니다.

Unity의 DevOps 툴 및 워크플로 살펴보기에서 DevOps 시스템의 각 단계를 더 자세히 살펴볼 수 있습니다. 지금은 크리에이터에게 이러한 방식이 어떤 가치를 제공하는지 알아보겠습니다.

4. Unity DevOps를 사용해야 하는 이유

DevOps를 사용하면 에디터 내에서 빌드를 익스포트하거나 로컬 하드 드라이브에 게임 에셋을 저장하는 등 기존의 더 일반적이고 수동적인 방법을 사용하는 경우보다 게임 프로젝트를 훨씬 더 빠르게 반복 수정하고 테스트할 수 있습니다. 또한 게임 설정에 드는 시간을 줄여 실질적인 제작에 더 많은 시간을 할애할 수 있습니다. 아울러 DevOps를 사용하면 문제를 더 쉽게 해결할 수 있고, 매번 에디터에서 수동으로 진행할 때보다 일관적이고 효율적으로 빌드를 익스포트할 수 있습니다.

보통 개발자는 기기에 다음과 같은 5~10가지의 애플리케이션을 설치해 두고 일상적으로 사용하는 경우가 많습니다.

  • 게임 엔진(예: Unity)
  • 3D 제작 툴(예: Blender)
  • 텍스처링 툴(예: Substance)
  • 렌더링 툴(예: Marmoset)
  • 작업 관리 툴(예: Jira)
  • 검토 툴(예: Shotgrid)
  • 버전 관리 툴(예: Perforce)
  • 서버 관리 툴(예: Azure)
  • 커뮤니케이션 툴(예: Discord)

본인의 일상 경험이 꼭 이렇지는 않다 해도, 너무 많은 툴을 사용하다 보면 과중한 서비스 오버로드가 발생하고 결국 정신적으로 큰 부담이 될 수 있음을 충분히 예상할 수 있습니다.

Unity DevOps 접근 방식을 사용하면 프로젝트에서 다양하고 많은 프로그램을 전환해 가며 사용하는 대신, 클라우드에서 연동되는 호환 가능한 애플리케이션 그룹을 사용할 수 있습니다. 이렇게 하면 더 효율적으로 작업하여 모두가 더 원활한 프로세스로 게임을 개발할 수 있습니다.

이 워크플로를 사용해 얻는 이점은 또 있습니다. 게임 개발에 대한 전문 지식을 키우다 보면, 게임 스튜디오가 DevOps 사용 방법을 아는 지원자를 채용할 가능성이 더 높다는 사실을 깨닫게 될 것입니다. 이 파이프라인에 대한 지식을 갖추면 자동화된 워크플로를 사용해 처음부터 끝까지 다른 사람들과 게임을 제작할 수 있는 역량을 선보일 수 있습니다.

5. 지속적 개발 및 DevOps

DevOps의 기본적인 내용을 살펴보고 DevOps가 왜 크리에이터에게 유용한 방법인지 알아봤습니다. 이제 지속적 개발의 주요 기본 접근 방식으로서 DevOps 사고의 기반이 되는 개발 프레임워크를 고려해 보겠습니다.

지속적 개발이란?

지속적 개발은 게임 또는 기타 소프트웨어를 개발하면서 자동화된 테스트를 통해 사소하고 점진적인 변경 사항을 적용하는 데 우선 순위를 두어 팀의 효율성을 높이고 위험을 줄이는 소프트웨어 개발 접근 방식입니다.

지속적 개발에는 다음과 같은 3가지 주요 측면이 있습니다.

  • CI(지속적 통합)는 변경 사항을 하루에 여러 번 저장소에 추가하는 방식입니다. 저장소는 안전한 전용 스토리지 공간이며 과거 버전을 포함한 모든 게임 파일이 저장되는 장소입니다. 저장소에는 다른 팀원이 액세스할 수 있습니다.
  • CD(지속적 전달)는 변경 사항을 통합하고 개발 파이프라인에서 이를 계속 추적하는 프로세스입니다.
  • 또 다른 CD(지속적 배포) 는 게임 빌드 릴리스 프로세스를 자동화합니다.

CI/CD(지속적 통합 및 지속적 배포) 두 가지를 모두 사용하면 게임 개발 프로세스에서 오류와 결함의 가능성이 줄어들어 개발자가 더 쉽게 작업할 수 있습니다.

아래 다이어그램에서는 CI/CD가 게임 개발에 어떻게 적용되는지를 개략적으로 설명합니다. 이 튜토리얼 앞부분에서 살펴본 DevOps 시스템에 얼마나 들어맞는지 생각해 보세요. 어째서 CI/CD가 DevOps 접근 방식에 적합하다고 생각하시나요?

지속적 개발이 DevOps 접근 방식을 지원하는 방법

지속적 개발에서는 소스 컨트롤을 일관되게 사용하고 최대한 자동화를 적용합니다. Unity DevOps 워크플로의 각 단계를 적용하면 게임 개발을 자동화하고 모니터링할 수 있으며, 이를 통해 소중한 시간을 대폭 단축할 수 있습니다. 또한 DevOps 워크플로를 통해 사전 제작과 정식 제작 과정에서 그리고 게임 출시 이후에 기술 문제를 해결할 수 있습니다.

현재 프로젝트에서 이러한 단계를 하나 이상 사용하고 계신가요? 코멘트 섹션에 경험을 공유하고, 다른 크리에이터의 프로세스 및 경험과 어떻게 다른지 비교해 보세요.

6. 다음 단계

DevOps의 기초에 대해 전반적으로 학습했으니 이제 Unity의 DevOps 툴 및 워크플로를 자세히 알아볼 차례입니다.

피드백을 남겨 주세요

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

추가 리소스

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

Complete this Tutorial