본문 바로가기
공부/Java

IntelliJ 디버깅 해보기

by JERO__ 2022. 5. 6.

배경

금요일 게더에 현직 개발자께서 오셔서 특강을 해주셨다. 많은 명언들과 꿀팁들도 들을 수 있는 좋은 기회였다.

  • 개발자는 스포츠선수와 직장인 사이에 있다! 스포츠선수가 선수만 뛴다고 실력이 느는가? 아니다. 개인연습 및 훈련이 필요하다. 개발자도 마찬가지이다. 회사에서 협업만 하다보면 뒤처질 때가 분명히 온다. 모르는 부분이 있다면 개인학습이 꼭 필요하며, 추가적인 학습도 꾸준히 되어야 할 것이다.
  • 신입개발자 절반 이상이 디버깅을 하지 않는다. 대부분 출력문을 이용해 검증한다.

여러 말씀을 듣는 와중 매우 뜨끔하였다. 나또한, 대부분 검증을 출력으로 진행했기 때문이었다. 디버깅이 필요한 이유와 사용방법을 정리해보고자 한다!

디버깅

1. 디버깅이란?

  • 개발 단계 중 발생하는 시스템의 논리적인 오류나 버그를 찾아내 원인을 밝히는 과정
  • 프로그램 작동 시 발생한 여러 에러의 원인인 버그를 잡는다!

2. 장점

  • 에러 조건을 알려준다. → 길게 쓰여진 코드를 일일히 다 읽을 필요가 없다.
  • 데이터 구조 정보를 제공해 이해에 도움
  • 개발자에게 불필요하지만 주의를 끄는 정보를 줄인다
  • 개발시 소모되는 비용을 아낀다.

1. 디버깅 사용

1. Break Point

1. 라인 넘버과 코드 사이의 여백을 클릭

2. 어플리케이션이 debug 모드일 때, 해당 Break Point가 지정된 라인이 실행되는 시점에서 멈춤

3. 우클릭 시, 조건으로 break 걸 수 있다.

  • boolean값으로 넣어주면 해당값이 true일때, break된다.

2. 디버깅 이동하기

1. resume(F9) : 다음 break point 이동

  • 다음 break point로 이동

2. step over(F8) : 다음 줄 이동

  • break된 라인에서, 다음라인 이동

3. step into(shift + F7) : 내부로 이동

  • break된 라인에서, 실행되고 있는 라인으로 이동 → 선택

4. step out(shift + F8) : 뒤로가기

  • break된 라인에서, 호출한 곳으로 이동

5. Drop Frame : 뒤로가기(실행 전)

  • break된 라인에서, 호출한 곳으로 이동 → 해당 라인이 실행되기 전으로 돌아감

6. Run to Cursor : 해당 커서로 이동

  • 원래라면, break point를 찍고 resume해야 하지만 바로 해당 커서로 이동할 수 있다.

3. 디버깅 사용하기

1. Evaluate : 해당 위치에서 원하는 메서드 사용

  • 해당 위치에 이동 후 팝업이 실행되는데, 확인하고 싶은 코드를 입력 후 실행하면 결과를 확인할 수 있다!!!

2. Watch : Evaluate와 기능 비슷

  • 기능을 활성화하기

  • 우측에서 설정한 값을 계속해서 활용가능하다.

결론

: 이동을 잘한 후, Evaluate를 잘 활용하자.

  • step over를 하다보면 자바 내부 핸들러로 들어와 내가 잘 이해하지 못할 때가 많을 것이다.
  • 에러가 발생한 해당 코드에 돌어와 evaluate에서 코드를 다시 실행하면 자세히 알 수 있다.

댓글