디버거란 무엇인가?

목차

코드 에러

개발자로서 작업하다 보면 이따금 내 코드가 작동하지 않을 때가 있습니다.

내 코드가 왜 작동하지 않을까….

개발-수정-개발-수정은 개발자에게 일상입니다. 가장 짧은 시간 내에 실패를 최소화하면서 버그를 찾아 수정하는 데 익숙해지는 것이 개발자에게는 매우 중요합니다. 프로그램에 버그가 있으면 보통 자신만의 방법으로 문제를 처리하게 되는데 아마도 디버깅 방법 중 하나 이상을 이미 시도해 봤을 겁니다.

  • 프로그램이 ‘작동해야’ 하므로 프로그램을 다시 실행해 봅니다.
  • 고무 오리 인형에게 문제를 설명합니다.
  • 문제를 찾기 위해 코드를 다시 읽어봅니다.
  • 산책하면서 머리를 식힙니다.
  • 코드에서 몇 개의 Console.WriteLine("here") 메시지를 무의미하게 채웁니다.

이러한 방법은 효과적일 수도 있고 그렇지 않을 수도 있습니다. 일반적으로 가장 효과적인 방법은 디버거를 사용하는 것입니다. 하지만 디버거란 정확히 무엇일까요?

디버거

디버거는 분석 방법으로 프로그램의 실행 흐름을 관찰하고 제어하는 데 사용되는 소프트웨어 도구입니다. 설계 목표는 버그의 근본 원인을 찾고 해결하도록 돕는 것입니다. 디버거는 자체 실행 프로세스에서 프로그램을 호스팅하거나 .NET과 같이 실행 중인 프로그램에 연결된 별도의 프로세스로 실행되는 방식으로 작동합니다.

디버거는 다양한 버전으로 제공되며 명령줄에서 직접 작동하는 경우도 있고 그래픽 사용자 인터페이스와 함께 제공되는 경우도 있습니다. 이 모듈에서는 Visual Studio Code의 통합 그래픽 디버거를 사용합니다.

디버거를 사용하는 이유

디버거를 통해 코드를 실행하지 않는 경우 프로그램에서 발생하는 상황을 ‘추측’하는 것일 수 있습니다. 디버거를 사용할 경우의 주요 혜택은 프로그램 실행을 ‘조사’할 수 있다는 것입니다. 프로그램 실행을 한 번에 코드 한 줄씩 추적할 수 있으며, 이러한 방식을 통해 잘못된 추측을 방지합니다.

모든 디버거에는 고유한 기능 세트가 있습니다. 거의 모든 디버거와 함께 제공되는 가장 중요한 기능 두 가지는 다음과 같습니다.

  • 프로그램 실행 제어. 프로그램을 일시 중지하고 한 단계씩 실행하여 실행되는 코드와 프로그램 상태에 미치는 영향을 확인할 수 있습니다.
  • 프로그램 상태 관찰. 예를 들어 코드를 실행하는 동안 언제든지 변수 값과 함수 매개 변수를 확인할 수 있습니다.
관련 글  C# 프로그램의 구조

숙련된 디버거 사용은 개발자의 중요한 기술이지만 간과되는 경우가 많습니다. 능숙하게 사용하면 보다 효율적으로 코드에서 버그를 추적할 수 있으며 프로그램 작동 방식을 신속하게 파악할 수도 있습니다.

최신글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다