[IntelliJ] 초심자를 위한 디버깅 시작하기

내가 초심자이기 때문에 내가 이해할 수 있는 글을 써보려고 한다...

출처 : https://codegym.cc/ko/groups/posts/ko.243.intellij-ideaui-dibeoging-choboja-gaideu

예제 코드 : https://github.com/romankh3/debug-presentation

ㄴ 이 코드를 자기 레포지토리로 포크해준다.

 

※ 그리고 의존성 버전을 업데이트해줘야한다. ※

pom.xml 을 열어서 lombok 버전을 30으로 올려준다.

 

 

처음 코드를 받고 디버그 버튼과 실행 버튼이 없어서 당황했는데...

src폴더의 main 메서드가 있는 곳으로 이동해주면 자동으로 생기더라...

 


중단점

중단점이란 프로그램의 실행 흐름을 마킹할 수 있는 표시이다.

이 중단점을 토대로하여 프로그램의 흐름을 파악할 수 있다.

 

중단점은 응용 프로그램 상태에 따라 응용 프로그램 실행을 중지하려는 위치를 나타내는 특수 마커입니다. 왼쪽 패널을 마우스 왼쪽 버튼으로 클릭하거나 코드 위치를 클릭하고 Ctrl+F8을 눌러 중단점을 설정할 수 있습니다 . 줄 중단점, 필드 감시점 및 메서드 중단점의 세 가지 유형의 중단점을 살펴보겠습니다. 다음과 같이 표시됩니다.

메서드에 걸면 다이아모양, 메서드 본문에 걸면 원형인듯...

 

 

이걸 누르면 모든 중단점이 취소된다는 모양이다.

 



RuntimeException을 모두 디버그해버리는 중단점을 추가해보자.

 

1. ctril + shif + 8을 눌러 디버깅 설정 창을 연다.

또는 디버깅 패널에서 아래처럼 동그라미 두개가 겹쳐진 버튼을 누른다.

여기에서 암시적 중단점을 추가하여 예외 또는 특정 예외를 발생시키기 전에 프로그램이 중지되도록 할 수 있습니다.

 

2. 

Java예외 중단점 선택

확인하고자하는 Exception을 검색해준다.

 

이 외에도 각 파일을 찾아가서 '줄 중단점'을 추가해주자.


 

프로젝트 구조는 아래와 같다.

  • 벌 — 평범한 일벌
  • BeeQueen — 여왕벌
  • BeeHive — 벌집
  • HoneyPlant — 과즙을 수집하는 꿀 식물(과즙 공급원)
  • public static void main()Main — 실행이 시작되는 메서드인 를 찾는 곳입니다 .

이제 디버깅을 시작해보자... 일단 이 프로젝트를 실행해보면 제대로 안 굴러간다는 것을 알 수 있는데...

 

이런 젠장 걍 안 굴러가는 프로젝트였다

어쩌란거임

lombok 버전 수정하면 굴러간다

 

정보만 정리해보겠다

 

 

결과적으로 예외가 발생하기 직전에 프로그램이 중지되고 다음 아이콘이 표시됩니다.

 

이런 코드가 있다면 23라인을 실행 전에 프로그램이 중단된다는 의미다.

이 때 디버깅 창에는 프로그램이 기억하고 있는 모든 변수의 값을 보여준다.

 

하단에는 실행 중인 애플리케이션에 대해 사용 가능한 모든 정보를 표시하는 디버그 섹션이 표시됩니다. 이미 언급한 대로 변수 창에는 응용 프로그램의 이 부분에서 사용할 수 있는 모든 변수와 개체가 포함되어 있습니다.

창에는 애플리케이션이 진행 중인 단계가 표시됩니다. 이전(프레임) 단계를 보고 모든 로컬 데이터를 볼 수 있습니다. 프로그램을 계속 실행하려면 F9 아니면 아래와 같은 화살표를 누른다.

 

 

응용 프로그램을 디버그 모드에서 다시 시작 하려면 이 아이콘을 누른

 


  • F8 — 메서드를 실행하지 않고 코드를 실행합니다.
  • F7 — 코드를 단계별로 실행하고 메서드를 단계별로 실행합니다.

우리의 경우 F7 키를 눌러 메서드를 시작해야 합니다 beeHive.populateHoney().

 

이제 F8을 사용 하여 이 메서드를 단계별로 실행하고 그 안에서 일어나는 일을 설명합니다.

  • 25행 — Stream API는 모든 꿀벌로부터 꿀을 수집하는 데 사용됩니다.
  • 26행 — 새로 생성된 꿀이 기존 꿀에 추가됩니다.
  • 27행 — 꿀 2단위가 여왕에게 할당됩니다.
  • 28행 — 이 두 단위는 총 꿀 양에서 제거됩니다.
  • 29행 — 여왕이 이 꿀을 먹습니다.

https://jojoldu.tistory.com/149

(break가 된 상태에서만 사용 가능하다)

 

 

 

'【 개발 이야기 】' 카테고리의 다른 글

[kotlin] infix function  (0) 2025.06.17
[Spring&kotlin] try catch와 exception 예외와 오류 그리고... throw  (2) 2025.06.16
IV  (0) 2025.06.02
[git] rebase 이해하기  (0) 2025.06.02
볼만한 개발 블로그..  (0) 2025.05.30