프로그램 개발 과정에서 발생하는 오류나 버그를 찾아내고 수정하는 과정을 말하며, 이러한 과정을 '디버깅(debugging)
'이라고 하며, 프로그래밍에서 매우 중요한 부분이다.
유래도 있는데, 대충 '어느 날 컴퓨터 오류가 발생해서 원인을 찾아보니 부품에 끼어있던 나방 벌레가 오류의 원인이었다' 는 이야기.
디버깅의 주요 목적은 프로그램의 문제점을 찾아내고 해결하여, 프로그램이 의도대로 정확하고 효율적으로 작동하도록 하는 것이다.
1) 오류 탐지: 프로그램 실행 중 발생하는 오류(버그)를 탐지합니다. 이는 프로그램이 예상과 다르게 동작하거나, 오류 메시지를 출력하는 것을 통해 발견될 수 있습니다.
2) 문제 분석: 발견된 오류의 원인을 분석합니다. 이를 위해 코드를 검토하고, 문제가 발생하는 상황을 이해하려고 합니다.
3) 디버깅 도구 사용: 디버깅 과정에서는 다양한 도구를 사용할 수 있습니다. 이러한 도구는 코드의 실행을 단계별로 추적하고, 변수의 값이나 메모리 상태 등을 확인하는 데 도움을 줍니다.
4) 오류 수정: 문제의 원인을 파악한 후, 적절한 수정을 통해 오류를 해결합니다.
5) 테스트 및 검증: 수정 후에는 프로그램을 다시 테스트하여 오류가 완전히 해결되었는지 검증합니다.
: 중단점, 프로그램 실행을 특정 지점에서 일시 중지하고, 그 시점에서의 변수 값이나 프로그램의 상태를 검사할 수 있습니다.
코드를 한 줄씩 실행하며, 각 줄에서 프로그램의 동작을 확인할 수 있다.
정의: 현재 줄에 있는 코드를 실행하고 다음 줄로 이동
사용법: 함수나 메서드 호출이 포함된 코드 줄에서 사용할 때 유용하다. 스텝 오버를 사용하면, 함수 내부로 들어가지 않고 해당 함수가 실행되는 것만 확인.
적용: 함수의 내부 로직보다는 전체적인 실행 흐름을 확인하고 싶을 때 사용.
정의: 현재 줄의 코드를 실행하는데, 만약 함수나 메서드 호출이 있다면 그 함수나 메서드의 내부로 진입.
사용법: 함수나 메서드의 내부 구현을 세부적으로 확인하고 싶을 때 사용.
적용: 함수나 메서드의 정확한 동작 방식을 이해하고자 할 때 유용하다.
디버그 - 성능 프로파일러 (Alt + F2)
CPU, GPU, 메모리 등 보고 싶은 데이터를 선택하여 분석할 수 있다.
시간에 따른 그래프가 나오고, 함수 명을 클릭하여 CPU Usage 등의 정보를 볼 수도 있다.