본문 바로가기

코딩공부/JAVA

[9] 디버거

입문자일수록 개념을 적게, 도구는 많이 사용해야 합니다. 중급으로 나아갈수록 지식의 양이 기하급수적으로 늘어납니다. 이때 스스로 모르는 것을 찾아내기 위해서는 도구가 필요합니다. 정말 유용한 도구인 디버거를 소개합니다.

 

▶ 초급자와 중급자의 차이 ?

중급자 - 문제가 발생한 원인을 파악하고, 좋은 도구를 사용한다.

초급자 - 문제의 원인을 잘 파악하지 못하면서, 도구를 사용하지 않는다.

 

디버거

bug : 우리가 짠 코드의 의도하지 않은 문제

debugging : 버그를 잡는 행위

debugger : 디버깅을 할 때 사용하는 도구

 

그래서 현대적인 개발 도구들은 내부적으로 디버거를 다들 가지고 있다.

코드에 문제가 있거나 코드를 분석하고 싶을 때 디버거를 이용할 수 있다.

 

STEP 1.  프로그램이 실행되는 것을 일단 멈춘다.

멈추고 싶은 위치에서 더블클릭하면 브레이크 포인터가 생긴다. (다시 더블클릭하면 없어진다.)

 

STEP 2. 벌레 아이콘(Debug XXXX) 을 클릭해서 실행한다.

디버거를 통해서 프로그램을 실행한다.

 

Perspective 를 디버깅 모드로 전환할 건지 물어보는 창이다. 'Switch'를 클릭하면 Perspective 가 전환된다.

 

Perspective 아이콘이 벌레 모양으로 바뀌는 것을 볼 수 있다.

( * Perspective 는 '관점'이란 뜻으로 '자바'를 개발할 때 보기 좋게 구성된 관점과 '디버깅'을 할 때 보기 좋은 화면의 구성으로 바꿔 주는 일종의 '템플릿' 기능과 같다. ) 

 

화살표 표시는 "현재 실행이 여기에서 중지된 상태로 대기하고 있다"는 의미이다.

 

[Step Over] 를 클릭하면 한 줄만 명령을 실행한다.

 

화살표가 한 줄 아래로 내려와 다음 명령에서 멈춰있다.

동시에 [Variable] 탭에서 우리가 실행하고 있는 프로그램의 "id"라고 하는 변수가 "JAVA APT 507"이라는 값으로 세팅되었다는 것을 알 수 있다.

 

디버거를 이용하면 프로그램을 한 줄 한줄 실행시킬 수 있고, 실행되는 그 순간에 애플리케이션 내의 변수의 상태를 하나하나 체크할 수 있다.

 

한 번 더 [Step Over]로 한 줄을 실행시켜보자

myElevator 라는 변수가 생성될테니까 [Variable] 탭에 myElevator 라는 변수가 추가된 것을 확인할 수 있다.

myElevator 변수 내부적으로 id라는 변수에는 "JAVA APT 507"이라는 값이 셋팅되어 있다.

 

한줄한줄 코드를 실행하지 않고, 다음 멈추고 싶은 부분에 브레이크 포인트를 설정하고, Run(실행) 버튼을 클릭하면, 다음 브레이크 포인트가 나올 때까지 한 번에 코드를 실행시킨다. 실행되는 과정에서 mySecurity라는 변수가 셋팅되었기 때문에 [Variable] 패널에 변수가 추가된 것을 확인할 수 있다.

01

 

on(),off() 메소드가 실행되면, 콘솔에 문자열이 찍히게 되는데 어떤 원인(동작 과정)으로 찍히는지 궁금하다면 ? 

일단 [Step Over] 로 hallLamp.on(); 명령까지 내려 온다. 그 다음에 [Step into] 을 클릭하면, 메소드가 어떻게 되어있는지 확인할 수 있다.

 

on()이라는 메소드는 다음과 같은 코드로 이루어져 있고, 이 코드를 실행시킨 결과가 콘솔에 출력되게 된 것이다. 

 

좌측에는 우리가 실행하고 있는 파일과, 파일의 몇 번째 줄이 현재 실행되고 있는지를 보여주고 있다.

 

[Step Return] 으로 해당 함수를 빠져나올 수 있다.

 

[Terminate] 로 디버거를 마친다.

 

 

 

'코딩공부 > JAVA' 카테고리의 다른 글

[11] JAVA 직접 컴파일하기(1) - 실습소개, 실행환경(javac, 환경변수)  (0) 2019.10.18
[10] 입력과 출력  (0) 2019.10.18
[8] 프로그래밍 이란?  (0) 2019.10.17
[7] JAVA 변수  (0) 2019.10.16
[6] JAVA 문자열 다루기  (0) 2019.10.16