ack 및 module 디버깅하기
프로그램 디버깅은 코드에서 오류를 찾고 수정하는 과정입니다. 이는 개발자의 코드가 의도대로 작동하지 않을 때, 문제가 무엇인지 파악하고 해결하는 데 필수적인 과정이자 기술입니다.
디버깅 과정은 매우 어렵습니다. 단순히 지식을 암기하거나 책을 읽는 것만으로는 디버깅을 잘 할 수 없습니다. 디버깅은 경험을 통해 배울 수 있는 기술이며 문제에 대한 성숙도와 개개인의 직관에 따라서 해결 방안이 달라지기 때문입니다.
일반적으로 디버깅은 다음과 같은 과정으로 진행됩니다.
- 프로그램 이슈 또는 장애 인지
- 원인 및 문제 파악
- 대상 소스 코드 위치 확인
- 논리적 오류 확인
- 비슷한 오류 발생 가능성 점검
- 소스 코드 오류 대응 수정
- 오류가 발생한 조건으로 재현
- 프로그램 테스트 및 검증
- 프로그램 배포 및 모니터링
- 변경사항 및 오류 기록 관리
그래서 고급 개발자로 나아가기 위해 그리고 팀 전체의 성공을 위해 시니어 개발자는 자신의 경험과 지식을 공유하여, 주니어 개발자가 디버깅 기술을 향상시키는 데 도움을 줘야 합니다.
이 문서는 .NET 8.0 기반으로 개발된 HandStack 솔루션의 ack 프로그램과 module 프로그램을 디버깅하는 방법을 설명합니다. 이 문서는 Visual Studio 2022를 기준으로 작성되었으며, .NET Core 에 대한 경험이 있어야 합니다.
사전 요구 사항
HandStack 솔루션에서 서버 프로그램을 담당하는 ack 프로그램은 .NET Core 8.0 기반으로 개발 되었습니다. .NET Core 프로젝트는 Windows, macOS, Linux 에서 개발 할 수 있으며 주어진 상황에 따라 다음과 같은 개발 도구 들로 개발 가능합니다.
- Visual Studio: Windows에서 웹, 클라우드, 데스크톱, 모바일 앱, 서비스, 게임등 모든 유형의 .NET 애플리케이션을 빌드하기 위한 완전한 기능을 갖춘 IDE 이며 가장 권장됩니다.
- Visual Studio Code: Linux, macOS 또는 Windows에서 개발하여 플랫폼 간 웹 사이트 및 서비스를 동일한 경험으로 개발 할 수 있습니다.
- OmniSharp: Atom, Brackets, Sublime Text, Emacs 및 Vim과 같은 편집기에서 플랫폼 간 .NET 개발을 지원합니다.
- JetBrains Rider: IntelliJ 및 ReSharper 기술을 사용하여 빌드된 플랫폼 간 .NET IDE로, 모든 플랫폼에서 동일한 개발 경험을 제공하는 완전한 기능을 갖춘 IDE 입니다.
이러한 도구들과 .NET SDK와 함께 제공되는 .NET CLI: CLI (명령줄 인터페이스)는 다양한 유형의 애플리케이션을 효과적으로 개발할 수 있도록 지원합니다.
마이크로소프트는 Visual Studio 버전으로 개발에 필요한 대부분의 기능을 학생, 오픈 소스 참여자 및 개인에게 무료로 제공합니다. 자세한 내용은 Visual Studio 다운로드를 참고하세요.
Visual Studio 설치시 개발 워크로드 선택
ASP.NET Core 개발을 위해 Visual Studio 에서 선택해야 하는 워크로드는 다음과 같습니다:
-
ASP.NET 및 웹 개발 워크로드: 이 워크로드는 ASP.NET Core 웹 애플리케이션 개발에 필요한 모든 기능을 제공합니다. 이 워크로드는 웹 애플리케이션, REST API, 실시간 통신을 위한 SignalR, 그리고 웹 프론트엔드 개발을 위한 기능을 포함하고 있습니다.
-
.NET Core 크로스 플랫폼 개발 워크로드: 이 워크로드는 .NET Core를 사용하여 Linux, macOS, 그리고 Windows에서 실행되는 애플리케이션을 개발하는 데 필 요한 도구를 제공합니다.
참고로, Visual Studio 설치 관리자를 사용하여 언제든 워크로드를 추가하거나 제거할 수 있습니다. 워크로드를 선택한 후, '수정'을 클릭하여 필요한 워크로드를 설치합니다.
프로그램 디버그 준비
디버깅을 시작하기 전에, 코드가 어떤 동작을 해야 했는지, 실제로 어떤 동작을 했는지를 명확히 이해해야 합니다. 예외가 발생했다면, 디버거는 코드에서 예외가 발생한 정확한 위치를 찾아주고 가능한 수정 방안을 제시해줄 수 있습니다. Visual Studio 2022에서 .NET Core를 디버깅을 하면 다음과 같이 이점이 있습니다.
- 코드 단계별로 실행하기: 디버거에서 코드를 단계별로 실행하면, 변수의 각 변경 사항을 검사하여 정확히 언제 어떻게 잘못된 값이 할당되는지 발견할 수 있습니다.
- 변수 검사하기: 데이터 팁과 디버거 창에서 변수를 검사할 수 있습니다.
- 호출 스택 검사하기: 호출 스택을 검사하여 함수 호출의 순서와 위치를 확인할 수 있습니다.
일반적으로 ack 프로그램은 크게 2가지 방법으로 다운로드 하여 실행합니다.