intelliJ 디버깅

Sangwoo Park·2022년 6월 4일
0

개발을 하다보면 디버깅을 해야하는 순간이 오기 마련이죠.

많은 개발자들이 System.out.println("data = " + data); 와 같이 로그를 출력하는 방식으로 디버깅을 합니다.

저는 intelliJ를 사용해서 개발을 하다가 디버깅 툴을 사용하는 법을 배운 순간부터 디버깅하는 시간이 상당히 단축되었습니다.

그 이유를 살펴보자면

로그 출력으로 디버깅하기
1. 로그를 출력하는 코드를 삽입
2. 빌드
3. 코드 실행
4. 출력된 로그로 값 확인
5. 로그 출력코드 삭제
6. 다른 값을 확인하고싶다면 1번부터 반복

디버깅툴로 디버깅하기
1. break point 설정
2. 코드 실행
3. 원하는 값 확인 (거의 모든 값을 한번의 break에서 확인 가능)

이렇듯 디버깅 툴을 이용하면, 빌드를 다시 할 필요도 없고, 원하는 다양한 값들을 한번에 확인 할 수 있습니다. 그래서 저는 항상 Debug 모드로 애플리케이션을 실행합니다.

그럼 intelliJ를 이용하여 디버깅하는 방법에 대해 알아보겠습니다.

1. 애플리케이션을 디버깅 모드로 실행

디버깅 모드로 실행했을때 break point를 지나는 코드가 실행되면, 해당 라인에서 정지하며 디버깅 모드가 활성화됩니다.

2. 디버그 할 라인에 break point 설정 📌

코드 라인 넘버들이 있는 좌측 부분을 클릭하면 해당 라인에 break point가 설정됩니다. 이제 디버깅모드에서 해당 라인이 실행되면 코드 진행이 정지됩니다.

3. 코드 실행

애플리케이션 구동상태에서 테스트를 할 수도 있지만, 이 포스팅에서는 편의를 위해 메소드를 디버깅 모드로 실행시키겠습니다.

4. 디버깅 🚩


break point에서 정지된 화면입니다.
코드 라인들 오른쪽에 회색으로 해당 변수들에 대한 정보들이 나타나 있으며, 하단 디버깅 탭의 Variables에서는 현재 사용되고있는 변수들과 그 값들까지 자세히 볼 수 있습니다. 그럼 몇가지 디버깅 기능들에 대해 살펴보겠습니다.

Resume Program ✅


break point에서 정지되었을 때, resume program을 실행하면 다음 break point로 이동합니다. 더이상 break point가 없다면, 정지가 풀리고 코드가 끝까지 실행됩니다.

Step Over 🚶‍♂️


step over를 실행하면, 현재 정지되어있는 라인이 실행되며, 바로 다음 라인에서 정지됩니다. (단축키는 F8)

Step Into 🔬


step into를 실행하면, 현재 정지되어 있는 라인에서 실행되는 메소드로 이동하게 됩니다. 말 그대로 안으로 들어가서 살펴보는 것이죠.
만약 실행하는 메소드가 여러개라면, 어떤 메소드로 들어갈지 선택할 수 있습니다.
만약 실행하는 메소드가 없다면, 다음 라인으로 이동합니다.
(단축키는 F7)

위의 사진은 한 라인에서 여러개의 메소드가 실행될 때 입니다. step into 할 수 있는 부분들이 분홍색으로 표시되며, 마우스로 클릭하여 원하는 메소드로 이동할 수 있습니다.

Evaluate Expression 🔎


제가 제일 좋아하는 기능입니다. 현재 상태에서 원하는 변수값, 메소드 실행 결과 등을 직접 출력해볼 수 있습니다.

버튼을 클릭하면 위와 같은 창이 나옵니다. Expression 부분에 원하는 변수나 메소드를 실행하면 그 값을 즉시 볼 수 있습니다.

break point에 조건 걸기 🏁


반복문을 디버깅하는 상황을 예시로 들면, 특정 값을 확인하기 위해서는 해당 값까지 반복문을 실행해야 하는 상황이 발생할 수 있습니다.
하지만 break point에 조건을 걸게 되면, 해당 조건을 만족할 때만 정지하게 됩니다. 방법은 break point에 오른쪽 클릭을 하고, 원하는 Condition을 적으면 됩니다.

Run to Cursor 🛵


원하는 라인에 커서를 놓고 클릭하면 커서가 있는 라인으로 즉시 이동합니다.

Mute Breakpoints 🤫


mute breakpoints는 on/off 할 수 있는 기능입니다. on 하게 되면 모든 break point 들이 회색으로 변하고, break point를 지나가더라도 정지되지 않습니다.

View Breakpoints 🧐


view breakpoints를 누르게 되면 현재 설정된 breakpoint들이 모두 표시된 창이 나옵니다. 여기에서 어떤 클래스에 break point가 있는지 확인하거나 해제할 수 있으며 조건을 설정하는 등 기타 기능을 이용할 수 있습니다.

마치며

intelliJ의 편리하고 강력한 디버깅 툴에 대해 알아보았습니다. 디버깅 할 때 조금이라도 도움이 되기를 바랍니다. 읽어주셔서 감사합니다.

profile
going up

0개의 댓글