10.1 디버거 시작하기
우리는 IntelliJ IDEA를 기반으로 디버깅 프로세스를 공부할 거야. 이게 논리적으로 맞고 기분도 좋아질 거야. 지금 바로 알게 될거야.
IntelliJ IDEA에서는 (Ultimate Edition 필요) 프로그램을 두 가지 모드로 실행할 수 있어:
| 프로그램 실행 모드 | 패널 아이콘 | 단축키 |
|---|---|---|
| 일반 실행 | ![]() |
Shift+F10 |
| 디버그 모드 실행 | ![]() |
Shift+F9 |
일반 모드에서 프로그램은 그냥 실행되고 끝나지. 하지만 디버그 모드는 많은 놀라움을 줄 거야.
디버그 모드
디버그 모드는 단계별로 프로그램을 실행할 수 있게 해줘. 아니, 더 정확히 말하면, 줄 단위로: 한 줄씩. 이 동안 각 단계에서 변수의 값을 볼 수 있고 심지어 그 값을 변경할 수도 있어!
프로그램 디버깅 기술을 최소한으로 익히려면 세 가지를 알아야 해:
- 브레이크 포인트
- 단계별 실행
- 변수 값 보기
10.2 브레이크 포인트
IDE에서는 코드에 특별한 마커인 브레이크 포인트를 배치할 수 있어. 디버그 모드로 실행된 프로그램이 브레이크 포인트로 표시된 줄에 도달할 때마다 프로그램은 일시 중지돼.
특정 줄에 브레이크 포인트를 설정하려면, IntelliJ IDEA의 왼쪽에서 그 줄을 클릭하면 돼. 예시:
결과적으로 줄이 브레이크 포인트로 표시되고, IntelliJ IDEA는 전체 줄을 빨간색으로 강조해:
코드 왼쪽 패널에서 다시 클릭하면 브레이크 포인트를 제거할 수 있어.
또 브레이크 포인트를 단축키 Ctrl+F8로 현재 줄에 설정할 수도 있어. 이미 브레이크 포인트가 있는 줄에서 Ctrl+F8을 또 누르면 제거돼.
10.3 디버그 모드로 프로그램 실행하기
프로그램에 적어도 하나의 브레이크 포인트가 있다면 디버그 모드로 프로그램을 실행할 수 있어 (Shift+F9 또는 'bug 아이콘').
디버그 모드로 시작하면 프로그램은 일반적으로 실행돼. 하지만 break point로 표시된 코드 줄에 도달하면 멈춰. 예시:
스크린샷의 상단에서 두 개의 브레이크 포인트가 있는 프로그램 코드를 볼 수 있어. 프로그램은 2번째 줄에 멈춰서 있어 – 파란색으로 강조된 줄. 2번째 줄은 아직 실행되지 않았어: 콘솔에는 아직 아무것도 출력되지 않았어.
화면 하단에는 디버그 모드 패널을 볼 수 있어: Thread & variables 패널, Console 패널 (화면 출력), 그리고 디버그 모드를 위한 버튼 세트.
프로그램을 다시 실행하려면 (계속 실행) 왼쪽 하단의 Resume Program 버튼을 누르면 돼 (또는 F9 키를 눌러도 돼).
이 버튼을 누르면 (또는 F9를 누르면), 프로그램은 다음 브레이크 포인트를 만나기 전까지 계속 실행되거나 완료될 거야. 버튼을 누른 후 보이는 화면은 다음과 같아:
프로그램은 두 번째 브레이크 포인트에서 멈췄고, 콘솔에는 Hello와 and가 출력됐어 – 세 개의 출력 줄 중 두 개만 실행된 표시야.
10.4 단계별 실행
프로그램을 디버그 모드로 실행하면 한 단계 – 한 줄로도 실행할 수 있어. 단계별 실행을 위한 두 개의 단축키가 있어: F7와 F8 – 각 키는 현재 코드 줄을 실행해. 하지만 먼저 브레이크 포인트로 프로그램을 멈춰야 해.
프로그램을 줄 단위로 실행하려면, 처음 시작에 있는 코드 줄에 브레이크 포인트를 설정하고 디버그 모드로 실행해야 해.
프로그램이 멈추면 줄 단위로 실행을 시작할 수 있어. F8 키를 한 번 누르면 한 줄이야.
아래는 멈춘 후 F8 키를 한 번 누른 후 프로그램의 모습이야:
첫 번째 줄 - print(“Hello”)는 이미 실행되었고, 현재 줄은 두 번째 줄이야. 스크린샷 하단에서는 Hello라는 단어가 화면에 이미 출력되었어.
10.5. 단계별 실행과 함수 내부 탐색
만약 프로그램에 자체 함수가 있고, 디버그 모드에서 함수 내부로 들어가면서 단계별로 실행하고 싶다면, 함수로 들어가기 위해 F8 키 대신 F7 키를 눌러야 해.
예를 들어, 프로그램을 단계별로 실행하고 있는데 5번째 줄에서 멈췄다고 해보자. F8를 누르면 IntelliJ IDEA는 단순히 다섯 번째 줄을 실행하고 여섯 번째 줄로 넘어가:
하지만 F7을 누르면 Intellij IDEA는 함수 hello()를 단계별로 실행할 거야:
아주 간단하지. 메소드 내부의 동작이 그다지 중요하지 않다면 F8를 눌러, 중요하다면 F7를 눌러서 코드를 단계별로 실행해.


GO TO FULL VERSION