1. 버그

프로그래머는 자신만의 속어를 사용하지만 많은 사람들이 전문 용어로 간주합니다. 어쨌든 그것을 알게되는 것을 피할 수 없습니다. 세부 사항에 뛰어들 필요가 있습니다. 그럼 다이빙합시다.

당신이 알게 될 첫 번째 단어 중 하나는 " 벌레 ", 즉 곤충 입니다 . 소프트웨어 개발의 맥락에서 이 단어는 프로그램의 오류 , 프로그램이 뭔가 잘못되었거나 올바르지 않은 경우를 의미합니다. 또는 단순히 이상하게 작동합니다.

그러나 프로그래머가 이상한 동작에도 불구하고 프로그램이 예상대로 정확히 수행되고 있다고 생각하면 일반적으로 "버그가 아니라 기능입니다"와 같은 것을 선언합니다. 많은 인터넷 밈을 낳았습니다.

일반적으로 소프트웨어 결함에는 여러 가지 이유가 있을 수 있습니다. 프로그램 논리의 오류, 오타 및 잘못된 프로그램 아키텍처에서 컴파일러의 문제에 이르기까지 모든 것이 있습니다. 어쨌든 프로그래머는 프로그램의 실제 버그와 기타 "단점"을 모두 수정해야 합니다.

"버그"라는 단어의 역사

"버그"라는 단어의 기원에 대한 가장 일반적인 버전은 일종의 전설입니다.

1945년 9월, 하버드 대학교의 과학자들은 최초의 컴퓨터 중 하나인 Mark II를 테스트하고 있었습니다. 컴퓨터가 제대로 작동하지 않았고 모든 보드를 확인하는 과정에서 전기 기계 계전기의 접점 사이에 나방이 끼어 있는 것을 발견했습니다.

추출된 곤충은 "벌레가 발견된 최초의 실제 사례"라는 문구와 함께 기술 로그에 테이프로 기록되었습니다.

이 재미있는 이야기는 " 버그 " 라는 단어가 오류를 의미하는 데 사용되기 시작한 것으로 여겨지며 " 디버그 " 라는 단어는 버그 제거와 동의어가 되었습니다.


2. 프로그램 디버깅

프로그램의 버그를 수정하기 위해 프로그래머는 디버거 라는 특수 프로그램을 사용합니다 . 이러한 프로그램 중 일부는 기계 코드를 디버깅하는 방법도 알고 있습니다.

Java 프로그래머는 프로그램 디버깅을 위해 IDE를 사용합니다. IntelliJ IDEA, Eclipse, NetBeans 등. IntelliJ IDEA는 지금까지 가장 강력한 IDE이므로 이를 예로 사용하여 디버깅 프로세스를 살펴보겠습니다.

IntelliJ IDEA는 두 가지 모드로 프로그램을 실행할 수 있습니다.

실행 모드 도구 모음 아이콘 단축키
정상적인 실행 Shift+F10
디버그 모드에서 시작 Shift+F9

프로그램 시작, 실행 및 종료와 같은 일반 실행에 이미 익숙합니다. 그러나 디버그 모드에는 많은 놀라움이 있습니다.

디버그 모드

디버그 모드를 사용하면 전체 프로그램을 단계별 로 살펴볼 수 있습니다 . 또는 더 정확하게는 한 줄씩 이동할 수 있습니다 . 또한 프로그램의 각 단계(각 코드 행이 실행된 후)에서 변수 값을 관찰할 수 있습니다. 값을 변경할 수도 있습니다!

프로그램 디버깅에 대한 최소한의 이해도 얻으려면 다음 세 가지를 배워야 합니다.

  • 중단점
  • 단계별 실행
  • 변수 값 검사

3. 중단점

IDE를 사용하면 중단점 이라는 특수 마커를 코드에 배치할 수 있습니다. 디버그 모드에서 실행 중인 프로그램이 중단점 으로 표시된 줄에 도달할 때마다 실행이 일시 중지됩니다.

특정 줄에 중단점을 넣으려면 IDEA에서 줄 왼쪽을 클릭하기만 하면 됩니다. 예:

중단점 IntelliJ IDEA

줄에 중단점이 표시되고 IntelliJ IDEA가 빨간색으로 강조 표시합니다 .

중단점으로 표시된

코드 왼쪽에 있는 창을 마우스로 두 번 클릭하면 중단점이 제거됩니다 .

핫키 조합 + 를 사용하여 중단점을 현재 줄에 놓을 수도 있습니다 . 이미 중단점이 있는 줄에서 +를 다시 누르면 중단 점이 삭제됩니다.CtrlF8CtrlF8


4. 디버그 모드에서 프로그램 시작

프로그램에 중단점이 하나 이상 있는 경우 Shift+를 누르 F9거나 "버그 아이콘"을 클릭하여 디버그 모드에서 프로그램을 실행할 수 있습니다.

디버그 모드에서 시작한 후 프로그램은 평소와 같이 실행됩니다. 그러나 중단점 으로 표시된 코드 줄에 도달하는 즉시 일시 중지됩니다. 예:

디버그 모드에서 프로그램 시작

스크린샷의 위쪽 절반에는 두 개의 중단점이 있는 프로그램 코드가 표시됩니다. 파란색 선으로 표시된 5번째 줄에서 프로그램 실행이 중지되었습니다. 5행은 아직 실행되지 않았습니다. 아직 콘솔에 아무 것도 출력되지 않았습니다.

화면 하단에는 디버거 창, 콘솔  창 및 디버그 모드용 버튼 세트와 같은 디버그 창이 표시됩니다.

왼쪽 하단 창에 있는 Resume Program (프로그램 재개) 버튼을 눌러(또는 를 눌러) 프로그램 일시 중지를 해제할 수 있습니다(예: 실행 계속 F9).

디버그 모드 3에서 프로그램 시작

이 버튼(또는 )을 누르면 F9프로그램은 다음 중단점을 만나 거나 종료될 때까지 계속 실행됩니다. 버튼을 클릭하면 다음과 같이 표시됩니다.

디버그 모드 4에서 프로그램 시작

프로그램은 두 번째 중단점에서 중지되었고 단어 Helloand가 and콘솔에 표시됩니다. 이는 화면에 출력을 표시하는 세 줄 중 두 줄만 실행했다는 신호입니다.


5. 단계별 실행

프로그램이 디버그 모드에서 실행 중인 경우 단계별로 실행할 수도 있습니다. 한 단계 는 한 줄 입니다 . 단계별 실행을 위한 두 가지 핫키가 있습니다. F7F8: 각각 현재 코드 행이 실행되도록 합니다. 그러나 먼저 중단점 으로 프로그램을 중지해야 합니다 .

프로그램을 한 줄씩 실행하려면 메서드 시작 부분에 중단점을main() 놓고 디버그 모드에서 실행해야 합니다.

프로그램이 중지되면 한 줄씩 실행을 시작할 수 있습니다. 키를 한 번 누르면 F8한 줄을 실행합니다.

다음은 프로그램이 중지되고 키를 한 번 누른 후의 모습입니다 F8.

디버그 모드에서 프로그램을 시작하십시오.  단계별 실행

main 메서드의 첫 번째 줄은 이미 실행되었으며 현재 줄은 두 번째 줄입니다. 또한 스크린샷 하단에 단어가 Hello이미 화면에 표시되어 있는 것을 볼 수 있습니다.


6. 방법을 단계별로 실행하는 단계별 실행

F7프로그램에 고유한 메서드를 작성했고 디버그 모드에서 메서드 내에서 실행을 원할 경우(즉, "메서드로 단계적으로") 를 누르는 대신 키를 눌러야 합니다 F8.

프로그램을 한 단계씩 진행하다가 이제 4번째 줄에서 중지되었다고 가정해 보겠습니다. 를 누르면 F8IDEA는 단순히 4번째 줄을 실행하고 5번째 줄로 이동합니다.

방법 2를 단계별로 실행하는 단계별 실행

그러나 를 누르면 F7IDEA가 다음 방법으로 들어갑니다 main2().

방법 3을 단계별로 실행하는 단계별 실행

매우 간단합니다. 메서드 내에서 무슨 일이 발생하는지 또는 어떻게 발생하는지 별로 신경 쓰지 않는다면 를 누르십시오 F8. 중요한 경우 F7모든 코드를 누르고 단계별로 실행하십시오.