Visual Studio에는 강력한 통합된 프로젝트 빌드 및 디버깅 도구 집합이 포함되어 있습니다. 이 문서에서는 Visual Studio가 빌드 출력, 코드 분석, 디버깅 도구 및 단위 테스트를 사용하여 코드에서 문제를 찾는 데 어떻게 도움이 되는지 설명합니다.
편집기를 파악하고 일부 코드를 만들었습니다. 이제 코드가 제대로 작동하는지 확인하려고 합니다. Visual Studio에서는 대부분의 IDE와 마찬가지로 두 단계로 코드 작업을 수행할 수 있습니다. 즉, 프로젝트 및 컴파일러 오류를 catch 및 해결하기 위한 코드를 빌드하고, 런타임 및 동적 오류를 찾기 위해 코드를 실행합니다.
코드 빌드
빌드 구성에는 디버그 및 릴리스라는 두 가지 기본 형식이 있습니다. 디버그 구성은 더 풍부한 대화형 런타임 디버깅 환경을 허용하는 더 느리고 더 큰 실행 파일을 생성합니다. 디버그 실행 파일은 배송되지 않아야 합니다. 릴리스 구성은 (적어도 컴파일러의 관점에서) 배송에 적합한 더 빠르고 최적화된 실행 파일을 빌드합니다. 기본 빌드 구성은 디버그입니다.
프로젝트를 빌드하는 가장 쉬운 방법은 F7 키를 누르는 것이지만 주 메뉴에서빌드 솔루션 빌드를 선택하여 >를 시작할 수도 있습니다.
Visual Studio UI(사용자 인터페이스)의 맨 아래에 있는 출력 창에서 빌드 프로세스를 관찰할 수 있습니다. 오류, 경고 및 빌드 작업이 여기에 표시됩니다. 오류가 있거나 구성된 수준 이상의 경고가 있는 경우 빌드가 실패합니다. 오류 및 경고를 선택하여 발생한 줄로 갈 수 있습니다. F7 키를 다시 눌러(오류가 있는 파일만 다시 컴파일) 또는 Ctrl+Alt+F7(새로 빌드 완료)을 사용하여 프로젝트를 다시 빌드합니다.
편집기 아래의 결과 창에는 두 개의 탭 창이 있습니다. 출력 창에는 원시 컴파일러 출력(오류 메시지 포함)이 들어 있습니다. 및 모든 오류 및 경고의 정렬 가능하고 필터링 가능한 목록을 제공하는 오류 목록 창
빌드가 성공하면 출력 창에 다음과 같은 결과가 표시됩니다.
오류 목록 검토
이전에 성공적으로 컴파일한 코드를 수정하지 않은 경우 오류가 발생할 수 있습니다. 코딩을 처음 접하는 경우, 아마도 질문이 많으실 겁니다. 간단한 구문 오류 또는 잘못된 변수 이름과 같은 오류는 때로는 분명하며, 안내하는 비밀 코드만 사용하여 이해하기 어려운 경우도 있습니다. 문제를 보다 세부적으로 보려면 빌드 출력 창의 아래쪽으로 이동하여 오류 목록 탭을 선택합니다. 이 작업을 수행하면 프로젝트에 대한 오류 및 경고를 보다 체계적으로 볼 수 있으며 몇 가지 추가 옵션도 제공됩니다.
오류 목록 창의 오류 줄을 선택하여 오류가 발생한 줄로 이동합니다. 또는 Ctrl+ 키를 눌러 줄 번호를 켭니다.Q, 줄 번호를 입력한 다음 결과에서 줄 번호 켜기 또는 끄기를 선택합니다. 이 작업은 줄 번호를 설정할 수 있는 옵션 대화 상자로 가는 가장 빠른 방법입니다.)
Ctrl+G를 눌러 오류가 발생한 줄 번호로 빠르게 이동합니다.
Visual Studio는 빨간색 "물결선" 밑줄로 이 오류를 식별합니다. 자세한 내용을 보려면 마우스로 가리킵니다. 수정과 함께 새로운 오류가 발생할 수 있지만 수정하면 사라집니다. (이 작업을 "회귀"라고 합니다.)
오류 목록을 살펴보고 코드의 모든 오류를 해결합니다.
오류를 자세히 검토합니다.
많은 오류는 컴파일러의 관점에서 표현된 것처럼 이해가 되지 않을 수 있습니다. 이러한 경우 추가 정보가 필요할 수 있습니다. 오류 목록 창에서 오류 또는 경고에 대한 자세한 내용은 자동 Bing 검색을 수행할 수 있습니다. 해당 입력줄을 마우스 오른쪽 단추로 클릭하고 상황에 맞는 메뉴에서 오류 도움말 표시를 선택하거나 오류 목록의 코드 열에서 하이퍼링크 오류 코드 값을 선택합니다.
설정에 따라 웹 브라우저에서 오류 코드 및 텍스트에 대한 검색 결과를 표시하거나 Visual Studio 내에서 탭이 열리고 Bing 검색 결과가 표시됩니다. 결과는 인터넷의 여러 다른 원본에서 생성되며 모든 것이 유용하지는 않을 수 있습니다.
코드 분석 사용
코드 분석기는 코드 관리에서 런타임 오류 또는 문제를 초래할 수 있는 일반적인 코드 문제를 찾습니다.
C# 및 Visual Basic 코드 분석
Visual Studio에는 입력할 때 C# 및 Visual Basic 코드를 검사하는 기본 제공 .NET 컴파일러 플랫폼 분석기 세트가 포함되어 있습니다. Visual Studio 확장 또는 NuGet 패키지로 더 많은 분석기를 설치할 수 있습니다. 규칙 위반이 발견되면, 오류 목록에 나타나며 코드 편집기에서 잘못된 코드 아래에 물결선으로 표시됩니다.
C++ 코드 분석
C++ 코드를 분석하려면 정적 코드 분석을 실행합니다. 성공적인 빌드를 방지하는 명백한 오류를 정리한 후에는 실행 습관을 들이고 생성될 수 있는 경고를 해결하는 데 다소 시간이 걸릴 수 있습니다. 더 나중에 몇 가지 번거로운 일을 피할 수 있으며, 몇 가지 코드 스타일 기술을 배울 수 있습니다.
Alt+F11 키를 누르거나 상단 메뉴에서 분석>솔루션의 코드 분석 실행을 선택하여 정적 코드 분석을 시작합니다.
새 경고나 업데이트된 경고는 IDE 아래쪽의 오류 목록 탭에 표시됩니다. 경고를 선택하여 코드에서 해당 경고로 이동합니다.
빠른 작업을 사용하여 코드 수정 또는 리팩터링
전구 또는 드라이버 아이콘에서 사용할 수 있는 빠른 작업을 사용하면 코드를 인라인으로 리팩터링할 수 있습니다. C#, C++및 Visual Basic 코드에서 일반적인 경고를 빠르고 효과적으로 해결하는 쉬운 방법입니다. 액세스하려면 경고 스쿼글 표시를 마우스 오른쪽 단추로 클릭하고 빠른 작업과 리팩터링을 선택합니다. 또는 커서가 컬러 물결선이 있는 줄에 있을 때 Ctrl+.을 누르거나 여백에서 전구, 오류 전구 또는 드라이버 아이콘을 선택합니다. 그런 다음 Visual Studio는 해당 코드 줄에 적용할 수 있는 가능한 수정 사항 또는 리팩터링 목록을 보여 줍니다.
코드 분석기에서 코드를 수정, 리팩터링 또는 개선할 기회가 있다고 판단되는 모든 위치에서 빠른 작업을 사용할 수 있습니다. 코드 줄을 선택하고 마우스 오른쪽 단추를 클릭하여 상황에 맞는 메뉴를 열고 빠른 작업 및 리팩터링을 선택합니다. 리팩터링 또는 개선 옵션을 사용할 수 있는 경우 해당 옵션이 표시됩니다. 그렇지 않으면 여기에서 사용할 수 있는 빠른 작업이 없다는 메시지가 IDE의 왼쪽 아래 모서리에 표시됩니다.
환경을 통해 화살표 키와 Ctrl+ 키를 빠르게 사용하여 쉽게 리팩터링할 수 있는지 확인하고 코드를 정리할 수 있습니다.
코드 정리 실행
Visual Studio는 편집기 아래쪽의 코드 정리 단추를 통해 코드 스타일 기본 설정을 포함하여 C# 코드 파일의 주문형 서식을 제공합니다.
공백, 들여쓰기 등에 파일의 서식을 지정하는 것 외에도 코드 정리 는 사용자가 정의하는 코드 스타일 규칙 집합을 적용합니다. 각 코드 스타일의 기본 설정은 프로젝트에 대한
실행 중인 코드 디버그
이제 코드를 성공적으로 빌드하고 약간 정리를 수행했으므로 F5 키를 누르거나 디버그>시작 디버깅을 선택하여 실행합니다. 이 작업은 디버그 환경에서 앱을 시작하므로 해당 동작을 자세히 관찰할 수 있습니다. 앱이 실행되는 동안 Visual Studio IDE가 변경됩니다. 출력 창은 두 개의 새 창(기본 창 구성), 자동/지역/조사식 탭 창 및 호출 스택/중단점/예외 설정/출력 탭 창으로 바뀝니다. 이러한 창에는 앱의 변수, 스레드, 호출 스택 및 실행 시 다른 동작을 검사하고 평가할 수 있는 여러 탭이 있습니다.
Shift+F5 키를 누르거나 중지 단추를 클릭하여 앱을 중지합니다. 또는 앱의 주 창(또는 명령줄 대화 상자)을 닫을 수 있습니다.
코드가 예상대로 완벽하게 실행되면 축하합니다. 그러나 코드가 응답하지 않거나 크래시가 발생하거나 이상한 결과가 나타날 수 있습니다. 그렇다면 이러한 문제의 원인을 찾아 버그를 수정해야 합니다.
간단한 중단점 설정
중단점은 신뢰할 수 있는 디버깅의 가장 기본적이고 필수적인 기능입니다. 중단점은 변수 값이나 메모리 동작을 살펴볼 수 있도록 Visual Studio에서 실행 중인 코드를 일시 중단해야 하는 위치 또는 코드 분기가 실행되고 있는지 여부를 나타냅니다. 중단점을 설정하고 제거한 후에는 프로젝트를 다시 빌드할 필요가 없습니다.
중단이 발생할 줄의 먼 여백을 클릭하여 중단점을 설정하거나 F9 키를 눌러 현재 코드 줄에 중단점을 설정합니다. 코드를 실행하면 이 코드 줄에 대한 지침이 실행되기 전에 일시 중지(또는 중단)됩니다.
중단점에 대한 일반적인 용도는 다음과 같습니다.
크래시 또는 응답하지 않는 프로그램의 원본을 좁히려면 오류의 원인이 되는 것으로 생각되는 메서드 호출의 코드 전체 및 주위에 중단점을 분산합니다. 디버거에서 코드를 실행할 때 잘못된 코드 줄을 찾을 때까지 중단점을 제거한 다음 더 가깝게 다시 설정합니다. 디버거에서 코드를 실행하는 방법을 알아보려면 다음 섹션을 참조하세요.
새 코드를 도입할 때 시작 부분에 중단점을 설정하고 코드를 실행하여 예상대로 작동하는지 확인합니다.
복잡한 동작을 구현한 경우 프로그램이 중단될 때 변수 및 데이터의 값을 검사할 수 있도록 알고리즘 코드에 대한 중단점을 설정합니다.
C 또는 C++ 코드를 작성하는 경우 중단점을 사용하여 코드를 중지하여 메모리 관련 오류를 디버깅할 때 주소 값(NULL 찾기) 및 참조 횟수를 검사할 수 있습니다.
중단점 사용에 대한 자세한 내용은 Visual Studio 디버거에서 중단점 사용을 참조하세요.
런타임에 코드 검사
실행 중인 코드가 중단점에 도달하고 일시 중지되면 노란색으로 표시된 코드 줄(현재 문)이 아직 실행되지 않았습니다. 이 시점에서 현재 문을 실행한 다음 변경된 값을 검사할 수 있습니다. 여러 단계 명령을 사용하여 디버거에서 코드를 실행할 수 있습니다. 표시된 코드가 메서드 호출인 경우 F11 키를 눌러 한 단계씩 실행할 수 있습니다. F10 키를 눌러 코드 줄을 한 단계씩 실행할 수도 있습니다. 코드를 단계별로 진행하는 방법에 대한 자세한 명령과 자세한 내용은 디버거를 사용하여 코드 탐색을 참조하세요.
앞의 그림에서 F10 또는 F11을 눌러 디버거 한 문을 진행할 수 있습니다(여기서 메서드 호출이 없으므로 두 명령 모두 동일한 결과를 갖습니다).
디버거가 일시 중지되는 동안 변수를 검사하고 스택을 호출하여 진행 중인 작업을 확인할 수 있습니다. 예상한 범위에 값이 있습니까? 호출이 올바른 순서로 이루어지고 있나요?
변수를 마우스로 가리키면 현재 값과 참조가 표시됩니다. 예상하지 못한 값이 표시되면 이전 또는 호출 코드에 버그가 있을 수 있습니다. 자세한 내용은 먼저 Visual Studio 디버거를 참조하세요.
또한 Visual Studio는 시간이 지남에 따라 앱의 CPU 및 메모리 사용량을 관찰할 수 있는 진단 도구 창을 표시합니다. 앱 개발의 뒷부분에서 이러한 도구를 사용하여 예상치 못한 CPU 사용량 또는 메모리 할당을 찾을 수 있습니다. Watch 창 및 중단점과 함께 사용하여 예기치 않은 과도한 사용량 또는 해제되지 않은 리소스의 원인을 파악합니다. 자세한 내용은 먼저 프로파일링 도구(C#, Visual Basic, C++, F#)를 참조하세요.
단위 테스트 실행
단위 테스트는 코드 버그에 대한 첫 번째 방어선입니다. 올바르게 수행되면 코드의 단일 "단위"(일반적으로 단일 함수)를 테스트하고 전체 프로그램보다 디버그하기 쉽기 때문입니다. Visual Studio는 관리 코드와 네이티브 코드 모두에 대한 Microsoft 단위 테스트 프레임워크를 설치합니다. 단위 테스트 프레임워크를 사용하여 단위 테스트를 만들고, 실행하고, 이러한 테스트의 결과를 보고합니다. 변경할 때 단위 테스트를 다시 실행하여 코드가 여전히 제대로 작동하는지 테스트합니다. Visual Studio Enterprise Edition을 사용하면 빌드할 때마다 자동으로 테스트를 실행할 수 있습니다.
시작하려면 IntelliTest를 사용하여 퍼지 테스트를 위한 단위 테스트 생성을 읽어 보세요.
Visual Studio의 단위 테스트 및 더 나은 품질 코드를 만드는 데 도움이 되는 방법에 대해 자세히 알아보려면 단위 테스트 기본 사항을 읽어보세요.