본문 바로가기

생활코딩/JAVA1

생활코딩) JAVA1 - 10. 디버거

youtu.be/nUSJaO4khdc

 

자 우리 이전 시간에 굉장히 중요한 프로그래밍 이라는 무엇인가 라는 것을 살펴봤습니다. 자동화의 열쇠가 바로 프로그래밍 이라는 걸 잊지 마십시오. 자 그럼 이제 제가 여러분들한테 추가 선물을 좀 드려야죠. 뭐를 해 볼 거냐면 얘기를 살짝 하고 선물을 드릴게요. 자 저는 초급자 중급자 의 차이에 관심이 많거든요 왜냐하면 이런 일을 하고 있으니까요.  중급자는 있죠 어떤 문제가 있을 때 그 문제의 원인을 잘 파악합니다. 그럼에도 불구하고 좋은 도구를 사용해요. 그런데 초심자는 어떤 문제가 있을 때 그 문제의 원인을 파악하는 것을 잘
못해요. 그럼에도 불구하고 도구를 사용하지 않습니다. 바로 이런 점에서 초심자가 겪게되는 어려움은 중급자는 상상도 할 수 없을 만큼 큰 어려운 것 고독함 속에서 초심자는 고통 받습니다.

이 얘기를 조금만 뒤집어서 생각하면 여러분이 지금 처음 단계이기 때문에 굉장한 어려움을 느끼고 있겠지만 여기서 조금만 더 가시면
지금의 여러 분으로서 상상도 할 수 없을만큼 코딩이 편안해집니다. 조금만 버티시면 돼요. 자 그래서 이제 여러분이 코딩이 편해질 수 있는 지름길 중에 하나 바로 디버거 라는 것을 이번 시간에 제가 선물로 드리려고 합니다. 

 


디버거라는 것은 우리가 짠 코드의 어떤 의도하지 않은 문제를 우리가 버그라고 하거든요 그 버그를 잡는 행위를 디버깅 이라고 하고요
디버깅을 할 때 사용하는 도구를 디버거 라고 부릅니다. 어떤 문제가 있거나 또는 이 코드를 제가 분석하고 싶을 때 디버거를 이용할 수 있는데 그 첫 번째 방법은 첫 번째 스텝은 여러분이 이제 프로그램이 실행되는 것을 일단 멈추는 거예요. 그러려면 멈추고 싶은 곳에서 더블클릭을 요렇게 하시면 됩니다

 


그럼 점이 생기는데 저점을 뭐라고 하냐면 브레이크 포인터 라고 부릅니다. 그리고 더블클릭을 또다시 1 없어지구요 또다시 하면 생겨나요 자 그 다음에 이제 한번 실행을 시켜 볼 겁니다 자 이 때의 이 플레이 버튼 그냥 일반적인 실행 이고요.

 


여기 있는 점 벌레 모양의 저 버튼이 있죠 저게 바로 디버거를 통해서 이 프로그램을 실행하는 겁니다 자 눌러 볼게요 자 이것을 누르면 이 위쪽에 있는 이 아이콘이 요거 였다가 저 벌레로 바뀝니다. 저런거 여기 있는 이런 애들을 뭐라고 하냐면 어퍼스펙티브 라고 해요. 퍼스펙티브 는 관점 이란 뜻인데 요건 이제 자바로 개발을 할 때 보기좋게 구성된 관점 이고요. 여기 있는 저 벌레는 디버깅을 할 때 보기 좋은 구성으로 이 화면 구성을 바꿔 주는 일종의 뭐라고 해야되나요, 템플릿 기능같은 겁니다 예 테마 기능 같은 거예요.  자 그래서 제가 여기 있는 벌레를 클릭해 볼게요 클릭. 그럼 보시는 것처럼 퍼스펙티브 를 스위칭 할건지 물어봅니다. 

디버거 로 그러면 스위치 버튼을 클릭하면 여기가 이 벌레 로 바뀌었습니다 그리고 화면 구성이 완전히 바뀌죠. 자 그럼 이제 여기에 저 화살표 보이시죠 업적 화살표 는 현재 실행이 여기에서 중지된 상태로 대기하고 있습니다.

자 그럼 여기에서 여러분이 주목해야 될 것은 일단은 위쪽에 있는 요것들이거든요.

 


여기에 보면은 요렇게 생긴 step over라고 하는 버튼이 있습니다 저 버튼을 클릭하면 명령어 하나만 실행이 되는 거예요 해볼게요. 
애를 클릭하면 요 화살표가 어떻게 되는지 봅시다.

 


클릭 그럼 보시는 것처럼 애가 여기 있다가 이렇게 한 칸 내려가고 그러면서 동시에 Variables. 즉 우리가 실행하고 있는 프로그램의 id 라고 하는 변수가 JAVA APT 507 이라고 하는 값으로 세팅되었다는 걸 보여줍니다. 즉 우리가 디버거를 이용하면 프로그램을 한줄 힌줄 실행시킬 수 있구요. 그리고 실행되는 그 순간에 우리 애플리케이션의 이에 변수의 상태를 여러분이 하나하나 체크할 수 있는 엄청난 기능을 준단 말이에요.

 


123 자 보시는 것처럼 한칸 움직였고 myElevator라는 변수가 추가된걸 볼 수가 있습니다.

자 그리고 이제 여러분이 쭉 여기 있는 코드가 1억 줄이면 하나하나 다 실행시키는 것 너무 귀찮아요 그래서 만약 여러분이 내가 여기 있는 시큐리티 부분은 생략하고 바로 라이팅 부분까지 한번에 실행을 시키고 라이팅 홀에서 멈추고 싶다 며 기서 다시 더블클릭하시면 됩니다 그리고 나서 여기 있는 저 플레이 버튼을 누르면 이제 한 칸 한 칸 실행되는 것이 아니라 그 다음 브레이크 포인트가 나올때 까지 한번에 주르륵 실행시킵니다.

 


자 그리고 On이 라고 하는 저것이 실행이 되게 되면 보시는 것처럼 이 밑에 이렇게 콘솔에 뭔가 찍히게 되는데 도대체 어떤 원인에 의해서 찍히는 지 궁금할 수 있거든요. 그럴 때는 여러분이 일단 한칸 내려가서 원까지 가요 그리고 나서 여기에서 그냥 step over 를 클릭하면 이 여기로 데려 올 거에요 23번째 줄로 근데 그게 아니라 step into 라고 하는 버튼을 누르면 여기 있는 On 이런거 이제 그냥 제가 지금까지 명령어 라고 했는데 정확히는 메소드에요. 자 메소드가 어떻게 되어 있는지를 볼 수 있습니다.  눌러 볼게요

 


그러면 보시는 것처럼 On이라고 하는 메소드는 이렇게 생긴 코드로 이루어져 있고 리는 저것을 실행 시킨 거예요. 그렇게 해서 나온 결과가 요 밑에 찍히는 거죠. 자 그리고 왼쪽에 보시면 지금 우리가 실행하고 있는 파일과 그 실행하고 있는 파일의 몇 번째 줄을 현재 우리가 보고 있는가 정확하게는 몇 번째 줄이 현재 실행되고 있는가를 또 보여주는 화면이 이쪽에 있는 화면(왼쪽)입니다. 

그럼 여러분이 On에서도 step over를 통해서 한줄 한줄 실행을 시킬 수가 있고요. 그러다가 여기서 빠져나가서 이전으로 돌아오고 싶을 때는 여기 있는 step return 이라고 하는 버튼을 클릭하시면 됩니다. 그럼 바깥쪽으로 나가게 되는 거예요 그리고 모든 작업이 끝날 때는 여기 있는 빨간색 버튼 터미네이터 를 클릭하면 디버거가 끝나게 됩니다. 

터미네이트


그리고 이전에 여러분이 잡아 작업을 하던 그 퍼스펙티브 로 돌아갈 때는


저 버튼(JAVA perspective)을 클릭하면 자바로 코딩할 때 편리한 화면으로 돌아가게 되는 겁니다. 그럼 이거 완전 대박 기능이죠. 이걸 모르고 코딩을 하는 건 정말 힘든 일이에요. 이걸 알게 되면 훨씬 더 문제를 파악하기가 좋습니다 여러분 디버거를 사용할 수 있게 된 것 축하 드립니다.

 

 

 

1. Resume: 디버깅할 때 더블클릭으로 체크해놓은 곳까지 프로그램을 주르륵 실행시킴

2. Terminate: 디버깅 종료

3. Step into: 그 라인의 메소드에 대한 내용을 볼 수 있는 화면으로 이동

4. Step over: 코드를 한 줄씩 실행시키는 기능

5. Debug: 디버깅하기 편한 화면으로 전환

6. JAVA: java 코딩하기 편한 화면으로 전환

 

반응형