무엇을 찾고 계신가요?
Hero background image
Microsoft Visual Studio 2022로 코드를 디버깅하는 방법

유니티는 젯브레인 라이더, 아톰, 마이크로소프트 비주얼 스튜디오 코드비주얼 스튜디오를 비롯한 다양한 코드 에디터를 지원합니다. Visual Studio는 Unity 에디터와 함께 기본으로 설치되는 빌트인 패키지입니다.

이 문서에서는 코드의 버그를 효율적으로 수정할 수 있는 Microsoft Visual Studio 디버거 2022 에디션을 사용하기 위한 팁을 제공합니다. Visual Studio의 일반적인 생산성 팁에 대해 자세히 알아보려면 블로그 게시물 "Visual Studio에서 워크플로 속도를 높이는 10가지 방법"을 참조하세요.

VisualStudio
Visual Studio 2022 디버깅 도구 설치

Visual Studio 2022는 Unity를 기본 지원하므로 IDE를 벗어나지 않고도 스크립트를 쉽게 작성 및 편집하고, Unity 관련 기능에 액세스하고, 게임 코드를 디버깅할 수 있습니다. IntelliSense 코드 완성, 구문 강조 표시, 코드 스니펫과 같은 기능을 제공하여 코드를 더 빠르고 효율적으로 작성할 수 있도록 도와줍니다. 또한 중단점 설정, 코드 단계별 실행, 변수 검사, 런타임 표현식 평가 등의 디버깅 도구를 사용할 수 있습니다.

Visual Studio는 무료 커뮤니티 버전을 포함하여 여러 버전으로 제공됩니다.

이 문서는 Visual Studio 2022 에디션을 기반으로 합니다. 2019 버전은 동일한 기능을 제공하지만 스크린샷이 약간 다릅니다. 기본적으로 Unity를 새로 설치하면 Visual Studio의 커뮤니티 버전이 설치되며, Visual Studio와 Unity를 통합하는 Game Development with Unity라는 확장 기능도 함께 설치됩니다. Visual Studio 설치를 선택하지 않은 경우 여기에서 복사본을 받을 수 있습니다. Unity와 함께 작동하도록 Visual Studio를 설정하는 방법에 대한 자세한 내용은 여기에서 확인할 수 있습니다.

Unity 에디터에 Visual Studio를 설치한 후 Unity > 환경설정 > 외부 툴을 열고 Visual Studio를 외부 스크립트 에디터로 선택합니다.

디버거를 Unity에 첨부
Unity에 Visual Studio 디버거 연결하기

에디터에서 실행 중인 프로젝트 코드의 실시간 디버깅을 사용하려면 Visual Studio 디버거를 에디터에 연결해야 합니다. 이를 통해 디버거는 게임의 런타임 상태에 액세스하고 상호 작용할 수 있습니다. 부착하는 단계를 살펴보겠습니다:

디버깅하려는 Unity 프로젝트를 엽니다.

Unity에서 편집 > 환경설정 (Windows) 또는 Unity > 환경설정 (macOS)으로 이동하여 Visual Studio가 기본 외부 스크립트 에디터로 설정되어 있는지 확인합니다. 없는 경우 드롭다운 메뉴에서 선택합니다.

프로젝트 보기에서 스크립트 파일을 두 번 클릭하거나 자산 > C# 프로젝트 열기 메뉴 옵션을 통해 Visual Studio에서 원하는 스크립트를 엽니다.

Visual Studio에서 디버그 > Unity 디버거 첨부로 이동하거나 툴바에서 Unity에 첨부 버튼을 클릭합니다. 사용 가능한 Unity 인스턴스 목록이 표시된 창이 열립니다.

프로젝트를 실행 중인 Unity 인스턴스(일반적으로 'Unity 에디터(프로젝트 이름)'로 표시됨)를 선택하고 첨부(Attach)를 클릭합니다.

이제 Visual Studio가 Unity에 연결되어 중단점 설정과 코드 디버깅을 시작할 수 있습니다. 게임이 에디터에서 실행 중일 때 Visual Studio 디버거는 다음 섹션과 같이 중단점에서 실행을 일시 중지하여 게임 상태를 검사하고 코드를 디버깅할 수 있도록 합니다.

첫 디버그 세션인 경우 현재 세션 또는 모든 세션에 대해 디버깅을 사용 설정할 수 있는 옵션이 표시되는 창이 나타납니다. 전자의 "이 세션에 대해 디버깅 사용"을 선택하는 것이 좋습니다.

VisualStudio
중단점 사용

중단점은 특정 코드 줄에 표시하는 마커입니다. 디버거가 중단점을 발견하면 프로그램 실행을 중지하여 변수, 객체 및 호출 스택의 현재 상태를 검사할 수 있습니다. 그런 다음 코드를 한 줄씩 살펴보면서 프로그램이 실행될 때 상태가 어떻게 변하는지 관찰할 수 있습니다.

Visual Studio에서 중단점을 설정하려면 스크립트를 열고 실행을 일시 중지하려는 코드 줄 옆의 코드 편집기 왼쪽 여백을 클릭합니다. 또는 줄에 커서를 놓고 F9 키를 누릅니다. 위의 상단 이미지와 같이 빨간색 점이 표시되어 중단점이 설정되었음을 나타냅니다.

이제 Unity 에디터로 이동하여 게임을 플레이하세요. 프로그램 실행이 중단점이 있는 줄에 도달하면 Visual Studio는 중단점 줄에서 프로그램 실행이 일시 중지된 상태에서 포그라운드 활성 애플리케이션이 됩니다. 이 시점에서 Visual Studio 도구를 사용하여 변수를 검사할 수 있습니다.

가장 간단한 옵션은 개체, 속성 또는 간단한 변수 위로 마우스를 가져가는 것입니다. Visual Studio는 오버레이 패널(위 콜라주의 아래쪽 이미지)을 추가하여 함수의 오버로드, 객체의 속성, 속성 또는 변수의 값을 볼 수 있도록 합니다.

오버레이에 오른쪽을 가리키는 화살표가 있는 경우 이 화살표를 클릭하면 패널이 확장되어 객체의 속성 내부 값에 대한 자세한 정보를 얻을 수 있습니다.

실행 중인 프로그램에서 값을 검사하는 이 기능은 매우 유용합니다.

Visual Studio가 Unity에 연결되면 디버그 > Unity에 연결의 오른쪽에 새 툴바가 추가됩니다. 이 툴바에 있는 4개의 버튼은 왼쪽에서 오른쪽으로 다음과 같은 작업을 수행합니다:

  • 실행 계속/일시 중지: 프로그램이 현재 재생 중인 경우 일시 중지 아이콘이 표시되며, 이 아이콘을 클릭하여 실행을 일시 중지할 수 있습니다. 프로그램이 일시 중지된 상태에서 오른쪽 화살표 아이콘이 나타나며, 이를 누르면 프로그램 실행이 다시 시작됨을 나타냅니다.
  • 스텝 오버: 이 버튼을 누르면 강조 표시된 코드 줄이 실행되고 다음 줄에서 다시 일시 중지됩니다.
  • 들어가기: 활성 코드 줄에 소스 코드가 프로젝트의 일부인 함수가 포함되어 있는 경우 이 버튼을 사용하면 개발자가 해당 함수와 해당 코드를 살펴볼 수 있습니다.
  • 밖으로 나가십시오: 이렇게 하면 프로그램 실행이 현재 함수 밖으로 이동합니다.
VisualStudio
조건부 중단점

조건부 중단점은 지정된 조건이 충족될 때만 실행을 일시 중지하는 고급 형태의 중단점입니다. 특정 시나리오를 조사하거나 특정 조건에서만 문제가 발생할 때 유용하게 사용할 수 있습니다.

사이드바 또는 하단 패널 중단점 창에서 중단점을 마우스 오른쪽 버튼으로 클릭하면 상황에 맞는 메뉴가 표시됩니다. 중단점 편집을 선택합니다. 위 이미지와 같은 대화 상자가 표시됩니다.

더 많은 디버그 도구

Visual Studio의 디버거 창은 중단점에서 일시 중지된 애플리케이션의 상태를 검사하는 데 도움이 되는 여러 창을 제공합니다. 프로그램 상태를 검사하는 데 필수적인 세 가지 창은 로컬, 감시 및 통화 스택입니다. 다음 섹션에서는 각각에 대해 살펴봅니다.

VisualStudio
현지인

로컬 창에는 실행 중인 코드의 현재 범위에 있는 로컬 변수와 해당 값이 표시됩니다. 여기에는 현재 메서드 또는 블록 내에서 선언된 변수와 메서드 인수가 포함됩니다. 로컬 창을 사용하면 현재 중단점에서 변수 값을 빠르게 검사할 수 있으므로 코드에서 문제를 일으킬 수 있는 부정확하거나 예기치 않은 값을 식별하는 데 유용합니다. 선이 오른쪽을 가리키는 화살표로 시작하면 확장할 수 있는 것이고 아래쪽을 가리키는 화살표는 확장된 창을 축소한다는 것을 기억하세요.

시계 창
시계

감시 창을 사용하면 디버깅 프로세스 중에 모니터링하려는 특정 변수나 표현식을 추적할 수 있습니다. 현재 범위의 변수를 표시하는 로컬 창과 달리 감시 창에서는 변수의 범위와 관계없이 변수나 표현식을 수동으로 추가할 수 있습니다. 이는 프로그램을 실행하는 동안 특정 변수의 상태를 추적하거나 애플리케이션의 현재 상태를 기반으로 표현식을 평가하는 데 유용할 수 있습니다.

스코프에 변수 또는 개체의 이름을 입력하면 이를 검사할 수 있는 패널이 추가됩니다. Visual Studio에서 감시를 추가하려면 코드에서 변수 또는 표현식을 마우스 오른쪽 버튼으로 클릭하고 상황에 맞는 메뉴에서 감시 추가를 선택하거나 감시 창에 표현식을 직접 입력합니다.

통화 스택 창
통화 스택

호출 스택 창에는 현재 중단점에 도달한 메서드 호출의 순서가 표시되므로 프로그램의 실행 경로를 추적할 수 있습니다. 호출 스택의 각 항목은 메서드 호출을 나타내며, 가장 최근 호출이 목록의 맨 위에 있습니다. 호출 스택을 검사하면 코드가 현재 실행 지점에 도달한 경로를 파악하여 문제나 예기치 않은 동작의 근본 원인을 파악하는 데 도움이 됩니다.

호출 스택 창에서는 메서드 호출 순서를 표시하는 것 외에도 스택의 여러 수준을 탐색할 수 있습니다. 목록에서 항목을 두 번 클릭하면 소스 파일의 해당 코드 줄로 이동하여 해당 메서드의 로컬 변수 및 매개 변수를 볼 수 있습니다. 이를 통해 특정 메서드가 호출된 컨텍스트를 더 쉽게 이해하고 애플리케이션을 통한 데이터 흐름을 분석할 수 있습니다.

빌드 설정
빌드 디버깅하기

Visual Studio 디버거는 Unity 에디터에서 실행 중인 게임뿐만 아니라 빌드에도 유용합니다. 빌드에 디버거에서 사용하는 데이터가 포함되어 있는지 확인해야 합니다. 파일 > 빌드 설정을 통해 이 작업을 수행하고, 표시되는 창에서 개발 빌드스크립트 디버깅을 선택합니다(위 이미지 참조).

Windows의 경우 메인 메뉴에서 디버그 > Unity 디버거 연결을, MacOS의 경우 상단 메뉴에서 디버그 > 프로세스에 연결을 선택합니다.

Unity 플레이어라는 인스턴스를 선택합니다. 이제 개발 빌드에서 모든 중단점, 로컬 및 시계를 사용할 수 있습니다.

클린 코드 작성
고급 Unity 크리에이터를 위한 더 많은 리소스

다른 코드 편집기를 사용할 계획이신가요? Microsoft Visual Studio Code를 위한 팁에 대한 기사를 읽어보세요.

유니티는 전문 개발자가 게임 코드를 최적화하는 데 도움이 되는 다양한 고급 가이드를 제공합니다. C# 스타일 가이드를 만듭니다: 확장 가능한 깔끔한 코드 작성하기 는 팀이 깔끔하고 읽기 쉬우며 확장 가능한 코드베이스를 개발하는 데 도움이 되는 코드 스타일 가이드를 만드는 방법에 대한 업계 전문가의 조언을 정리한 것입니다.

사용자들에게 인기 있는 또 다른 가이드는 다음과 같습니다. Unity로 생산성을 높이는 70가지 이상의 팁. 숙련된 개발자도 놓칠 수 있는 팁을 포함하여 Unity 2020 LTS로 일상적인 통합 워크플로를 개선할 수 있는 시간 절약 팁이 가득합니다.

유니티의 모든 고급 전자책과 문서는 유니티 베스트 프랙티스 허브에서 확인할 수 있습니다.

이 콘텐츠가 마음에 드셨나요?