지난 글에서, 딱 디버깅 툴을 키는 것까지 보여드리고 글을 마무리했던 것 같은데요!
본격적으로 "인텔리제이 디버깅툴! 이래서 사기더라!" 하는 부분들을 소개해 드리고자 합니다.
인텔리제이 디버깅툴 기능 1. Variables
인텔리제이 디버깅 툴에서, 제일 많이 마주하게 되는 Variables 창입니다. 어떤 변수가 지금 등록되어 있는지를 보여 주는 창입니다.
기본적으로 디버깅 툴은, 한 줄 한 줄 실행시켜서 변수 값이 어떻게 변화하는지 보는 용도로 자주 사용됩니다. 한 줄 한 줄 실행되고 있으므로, 내 코드가 어떤 방식으로 동작하고 있는지 확인하는 것이 용이합니다.
SWEA 에서 테스트 케이스 숫자를 3, 그리고 내용을 받아서 홀수인지 체크하고 더하는 식으로 코드가 동작하고 있습니다.
한 줄 한 줄 실행시키면서, toPlus 의 값이 얼만지 확인하고, if 문을 잘 통과하는지? sum 에 값은 잘 더해지고 있는지? 직접 한 줄 한 줄 돌려가면서 확인할 수 있는 기능입니다.
그뿐만이 아닙니다. 따로 해당 순간에 원하는 것을 확인할 수 있는 검색창 비슷한 기능도 존재합니다.
원하는 객체에서 원하는 메소드도 실행시킬 수 있는 부분입니다. 바로 아래 result 에서 확인할 수 있습니다.
인텔리제이 디버깅툴 기능 2. 전체 화면에서, 변수 옆에 찍혀 있는 새로운 갱신 값
위의 그림에서, 다시 화면을 보고 있으면 변수 옆에 불투명한 흰색으로 값이 매겨져 있는 부분을 볼 수 있습니다. 노란색으로 표시되는 값들은, 바로 전 줄에서 갱신된 값이라고 생각하시면 되겠습니다.
코드와, 그 결과물들을 굳이 눈을 위아래로 굴려 가면서 볼 필요 없이, 그 자리에서 확인시켜주는 IntelliJ 입니다.
Okay. 이런 기능이 있다는 것은 알겠어. 그럼 조작은 어떻게 해?
조작 기능에는 크게 F7, F8, F9 단축키 기능이 있습니다.
1. F7 : Step Into
F7 은, 기본적으로 다음 줄로 넘기는 기능을 하지만, 디버깅 툴이 함수를 가리키고 있는 상황에서는 해당 함수 내부로 진입하는 역할을 합니다. 정말 자세히 한 줄 한 줄 실행시키고 싶을 때 사용하는 단축키입니다.
2. F8 : Step Out
F8 은, F7 과 마찬가지로 다음 줄로 넘어가는 기능을 담당하지만, 디버깅 툴이 함수를 가리키고 있는 상황에서 해당 함수 내부로 진입하지 않고, 해당 함수 내의 기능을 모두 실행시켜 버린 다음 눈에 보이는 다음 줄로 넘어가는 기능을 담당하고 있습니다. 함수 내부로 진입하지 않고 바로 넘겨버리고 싶을 때 사용하는 기능입니다. 단, 함수를 실행시키는 중간에 "브레이크 포인트" 를 만났을 때는 예외적으로, 다음 브레이크 포인트에서 정지합니다.
3. F9 : Run to Cursor
F9 는, F7 과 F8 과는 달리, 무조건 다음에 만나는 브레이크 포인트로 넘어가는 기능을 담당합니다. 저는 빠르게 다음 브레이크 포인트로 넘어가고 싶을 때 해당 기능을 사용합니다.
F7, F8, F9 를 조화롭게 사용하면서, 함수가 제대로 동작하고 있는지, 내 코드에서 내가 원하는 방식의 그림대로 동작하고 있는지 확인할 때 대단히 유용한 디버깅 툴 기능입니다!
Other Tips
+ Tip 1 : 디버깅 툴을 사용하는 중간에도, 브레이크 포인트의 지정과 해제가 가능합니다! 해제된 브레이크 포인트에서는 F9 를 눌러도 그 자리에서 대기하지 않고, 그 다음 새로운 브레이크 포인트가 나타날때까지 한방에 실행됩니다.
+ Tip 2 : 한번 디버깅이 실행된 함수에서는, 위의 키에서 디버깅 버튼을 누르시면 다시 디버깅을 실행시키실 수 있습니다. 역시 초록색 버그 버튼을 클릭하시면 됩니다.
+ Tip 3 : 정지 버튼도 같이 보이네요! 당연히 정지 버튼을 누르면 디버깅 기능도 정지합니다.
'Java & IntelliJ' 카테고리의 다른 글
[Java] WebClient + Reflection 기능 사용해 공공데이터 API 로 정보 받는 공통 모듈 만들기 (2) | 2024.02.26 |
---|---|
[Java] 반복되는 JDBC 코드를 재활용성 높게 활용하기 (with java.lang.reflect) (0) | 2023.09.17 |
IntelliJ(Java IDE) Debugging Tools 입문 - 1 (0) | 2023.07.11 |