최신 플랫폼용 앱을 개발하려면 코드를 작성하는 것보다 더 많은 활동이 필요합니다. DevOps(개발 + 작업)라고 하는 이러한 활동에는 앱의 전체 수명 주기에 걸쳐 있으며, 계획 및 추적 작업, 코드 디자인 및 구현, 소스 코드 리포지토리 관리, 빌드 실행, 지속적인 통합 및 배포 관리, 테스트(단위 테스트 및 UI 테스트 포함), 개발 및 프로덕션 환경 모두에서 다양한 형태의 진단 실행, 원격 분석 및 원격 분석을 통해 실시간으로 앱 성능 및 사용자 동작 모니터링이 포함됩니다. 분석.
Visual Studio는 Azure DevOps Services 및 Team Foundation Server와 함께 다양한 DevOps 기능을 제공합니다. 이러한 중 대부분은 특히 C#을 스크립팅 언어로 사용하는 경우 Unity로 만든 게임 및 몰입형 그래픽 앱을 비롯한 플랫폼 간 프로젝트에 적용할 수 있습니다. 그러나 Unity에는 자체 개발 환경 및 런타임 엔진이 있으므로 Visual Studio에서 빌드된 다른 종류의 프로젝트에는 여러 DevOps 기능이 적용되지 않습니다.
다음 표에서는 Unity를 사용할 때 Visual Studio의 DevOps 기능이 어떻게 적용되거나 적용되지 않는지 식별합니다. 기능 자체에 대한 자세한 내용은 연결된 설명서를 참조하세요.
Agile 도구
참조 링크: 애자일 도구 및 애자일 프로젝트 관리 정보(Azure Boards 또는 TFS 사용, Team Explorer Everywhere 포함)
일반 설명: 모든 계획 및 추적 기능은 프로젝트 유형 및 코딩 언어와 독립적입니다.
특징 | Unity에서 지원됨 | 추가 설명 |
---|---|---|
백로그 및 스프린트 관리 | 예 | |
작업 추적 | 예 | |
팀룸 공동 작업 | 예 | |
Kanban 보드 | 예 | |
진행률 보고 및 시각화 | 예 |
모델링
참조 링크: 분석 및 모델 아키텍처
일반 설명: 이러한 디자인 기능은 코딩 언어와 독립적이거나 C#과 같은 .NET 언어로 작동하지만 개체 계층 구조 및 클래스 관계가 있는 기존 애플리케이션 패러다임에서 작동합니다. Unity 내에서 게임을 디자인하려면 그래픽 개체, 소리, 셰이더, 스크립트 등의 관계와 같은 다른 패러다임이 필요합니다. 이러한 이유로 Visual Studio 모델링 다이어그램 도구는 Unity 프로젝트 전체와 특별히 관련이 없습니다. C# 스크립트 내에서 관계를 관리하는 데 사용할 수 있지만 전체의 한 부분에 불과합니다.
특징 | Unity에서 지원됨 | 추가 설명 |
---|---|---|
시퀀스 다이어그램 | 아니요 | |
종속성 그래프 | 아니요 | |
호출 계층 구조 | 아니요 | |
클래스 설계자 | 아니요 | |
아키텍처 탐색기 | 아니요 | |
UML 다이어그램(사용 사례, 활동, 클래스, 구성 요소, 시퀀스 및 DSL) | 아니요 | |
레이어 다이어그램 | 아니요 | |
계층 유효성 검사 | 아니요 |
코드
특징 | Unity에서 지원됨 | 추가 설명 |
---|---|---|
TFVC(Team Foundation 버전 제어) 또는 Azure Repos 사용 | 예 | Unity 프로젝트는 다른 프로젝트와 마찬가지로 버전 제어 시스템에 배치할 수 있는 파일 컬렉션일 뿐이지만 이 표 다음에는 몇 가지 특별한 고려 사항이 설명되어 있습니다. |
Azure Repos에서 Git 시작하기 | 예 | 표 뒤의 노트를 참조하세요. |
코드 품질 개선 | 예 | |
코드 변경 내용 및 기타 기록 찾기 | 예 | |
코드 맵을 사용하여 애플리케이션 디버그 | 예 |
Unity를 사용한 버전 제어에 대한 특별 고려 사항:
Unity는 기본적으로 숨겨져 있는 불투명한 단일 라이브러리에서 게임 자산에 대한 메타데이터를 추적합니다. 파일 및 메타데이터를 동기화 상태로 유지하려면 메타데이터를 표시하고 관리하기 쉬운 청크에 저장해야 합니다. 자세한 내용은 Unity 외부 버전 제어 시스템 사용 참조하세요(Unity 설명서).
위의 링크에 설명된 것처럼 Unity 프로젝트의 모든 파일 및 폴더가 소스 제어에 적합한 것은 아닙니다. Assets 및 ProjectSettings 폴더를 추가해야 하지만 라이브러리 및 임시 폴더는 추가하지 않아야 합니다. 소스 제어로 이동하지 않는 생성된 파일의 추가 목록은 Unity3D 소스 제어에 Git을 사용하는 방법에 대한 논의를 참조하세요. 스택 오버플로의. 많은 개발자들이 이 주제에 대해 독립적으로 블로그를 했습니다.
Unity 프로젝트의 이진 자산(예: 질감 또는 오디오 파일)은 많은 양의 스토리지를 차지할 수 있습니다. Git과 같은 다양한 소스 제어 시스템은 변경 내용이 파일의 작은 부분에만 영향을 주더라도 변경되는 모든 변경 내용에 대해 파일의 고유 복사본을 저장합니다. 이로 인해 Git 리포지토리가 부풀어 오를 수 있습니다. 이 문제를 해결하기 위해 Unity 개발자는 종종 최종 자산만 리포지토리에 추가하고 OneDrive, DropBox 또는 git-annex와 같은 자산의 작업 기록을 유지하는 다른 방법을 사용합니다. 이 방법은 이러한 자산이 일반적으로 소스 코드 변경과 함께 버전 관리될 필요가 없기 때문에 작동합니다. 또한 개발자는 보통 프로젝트 편집기의 자산 직렬화 모드를 '텍스트 강제'로 설정하여 장면 파일을 이진 형식이 아닌 텍스트 형식으로 저장하고, 이는 소스 제어에서 병합을 가능하게 합니다. 자세한 내용은 편집기 설정(Unity 설명서)를 참조하세요.
구축
참조 링크: Azure Pipelines
특징 | Unity에서 지원됨 | 추가 설명 |
---|---|---|
온-프레미스 TFS(Team Foundation Server) | 가능한 | Unity 프로젝트는 Visual Studio 빌드 시스템이 아닌 Unity 환경을 통해 빌드됩니다(Visual Studio Tools for Unity 내에서 빌드하면 스크립트가 컴파일되지만 실행 파일은 생성되지 않음). 명령줄 (Unity 설명서)에서 Unity 프로젝트를 빌드할 수 있으므로 해당 컴퓨터에 Unity 자체가 설치되어 있는 경우 TFS 서버에서 적절한 Unity 명령을 실행하도록 MSBuild 프로세스를 구성할 수 있습니다. 또한 Unity는 Git 또는 SVN 리포지토리를 모니터링하고 주기적인 빌드를 실행하는 Unity Cloud Build제공합니다. 현재는 TFVC 또는 Azure DevOps Services에서 작동하지 않습니다. |
Azure DevOps Services에 연결된 온-프레미스 빌드 서버 | 가능한 | 위와 동일한 조건을 감안할 때 Azure DevOps Services를 통해 트리거된 빌드를 온-프레미스 TFS 컴퓨터를 사용하도록 지시할 수 있습니다. 지침은 빌드 및 릴리스 에이전트 참조하세요. |
Azure DevOps Services의 호스트된 컨트롤러 서비스 | 아니요 | Unity 빌드는 현재 지원되지 않습니다. |
사전 및 사후 스크립트를 사용하여 정의 빌드 | 예 | Unity 명령줄을 사용하여 빌드를 실행하는 사용자 지정 빌드 정의는 빌드 전 및 빌드 후 스크립트에 대해서도 구성할 수 있습니다. |
게이트 체크인을 포함한 지속적 통합 | 예 | TFVC는 Git이 체크인 대신 끌어오기 요청 모델에서 작동하기 때문에 제한된 체크인을 사용합니다. |
테스트
특징 | Unity에서 지원됨 | 추가 설명 |
---|---|---|
테스트 계획, 테스트 사례 만들기 및 테스트 도구 모음 구성 | 예 | |
수동 테스트 | 예 | |
테스트 관리자(레코드 및 재생 테스트) | Windows 디바이스 및 Android 에뮬레이터만 | |
코드 커버리지 | n/a | 단위 테스트가 Visual Studio가 아닌 Unity 내에서 수행되는 경우 적용되지 않습니다. 아래를 참조하세요. |
자신의 코드를 단위 테스트하세요 | Unity에서는 가능하나, Visual Studio에서는 불가능함. | Unity는 Unity 테스트 도구(Unity 자산 저장소)의 일부로 자체 단위 테스트 프레임워크를 제공합니다. 단위 테스트 결과는 Unity 내에서 보고되며 Visual Studio 내에 표시되지 않습니다. |
UI 자동화를 사용하여 코드 테스트 | 아니요 | 코딩된 UI 테스트는 앱의 UI에서 읽을 수 있는 컨트롤을 사용합니다. Unity 앱은 기본적으로 그래픽이므로 코딩된 UI 테스트 도구에서 콘텐츠를 읽을 수 없습니다. |
코드 품질 향상
참조 링크: 코드 품질 개선
특징 | Unity에서 지원됨 | 추가 설명 |
---|---|---|
관리 코드 품질 분석하기 | 예 | Visual Studio 내에서 C# 스크립트 코드를 분석할 수 있습니다. |
코드 복제 검색 사용하여 중복 코드 찾기 | 예 | Visual Studio 내에서 C# 스크립트 코드를 분석할 수 있습니다. |
관리 코드 복잡성 및 유지 관리 효율성 측정 | 예 | Visual Studio 내에서 C# 스크립트 코드를 분석할 수 있습니다. |
성능 도구 | 아니요 | Unity Profiler(Unity 웹 사이트)를 사용합니다. |
.NET Framework 메모리 문제 분석 | 아니요 | Visual Studio 도구에는 프로파일링을 위해 Mono 프레임워크(Unity에서 사용)에 대한 후크가 없습니다. Unity Profiler(Unity 설명서)를 사용합니다. |
릴리스 관리
참조 링크: Azure Pipelines 및 TFS에서의 빌드 및 릴리스
특징 | Unity에서 지원됨 | 추가 설명 |
---|---|---|
릴리스 프로세스 관리 | 예 | |
스크립트를 통해 사이드로딩을 위해 서버에 배포 | 예 | |
앱 스토어에 업로드 | 부분적인 | 일부 앱 스토어에 대해 이 프로세스를 자동화할 수 있는 확장을 사용할 수 있습니다. Azure DevOps Services 대한확장을 참조하세요. 예를 들어 Google Play의 확장은. |
HockeyApp으로 모니터링
참조 링크: hockeyApp사용하여모니터
특징 | Unity에서 지원됨 | 추가 설명 |
---|---|---|
충돌 분석, 원격 분석 및 베타 배포 | 예 | HockeyApp은 베타 배포를 처리하고 충돌 보고서를 가져오는 데 주로 유용합니다. C# 스크립트의 원격 분석의 경우 Unity에서 사용하는 .NET 버전에서 실행되는 경우 분석 프레임워크를 사용할 수 있습니다. 그러나 이를 통해 게임 스크립트 내에서만 분석할 수 있으며 Unity 엔진 내에서는 더 깊이 있게 분석할 수 없습니다. 현재 Application Insights에 대한 플러그 인은 없지만 Unity Analytics 및 google Analytics 같은 다른 분석 솔루션에 플러그 인을 사용할 수 있습니다. Unity 프로젝트의 특성을 이해하는 Unity Analytics와 같은 서비스는 물론 일반 프레임워크보다 훨씬 더 의미 있는 분석을 제공합니다. |