내맘대로 디버깅(Debug)
원래 "디버깅" 이라고 하면 코드의 에러를 찾기 위해 사용하는 걸 의미한다.
하지만 나는 아직 그 정도의 레벨은 훨씬 못 미치고, 그냥 필기하려면 키보드 치워, 노트 꺼내, 하는 게
귀찮기도 하고 하나 하나 손코딩 해보다 숫자 계산이 힘들어지면 바로 디버그를 활용한다..
버그(Bug)의 기원은 초기 개발자가 중 한 명이 고장의 원인을 찾다가 결국 밝혀낸 게
회로 사이에 나방 한 마리가 끼여 있어서 그 이후로 컴퓨터적 오류를 버그(Bug)라고 하고,
이를 고치는 일을 디버그(Debug) 라는 이야기다.
(TMI
나방은 변태 하는 과정 중 애벌레에서 번데기, 성충으로 변태 하게 되는데,
애벌레가 몸이 변형되어서 나방이 되는 것이 아니라 애벌레가 녹아 액체 상태의 단백질로
성체로 재조립 된다고 한다.. 성충이 되어도 애벌레 시절의 기억도 있대... 개 신기해 진짜.)
여튼 디버그 하는 방법은 원래 제대로 모르고 그냥 대충 "Break Point" 를 다 찍어보면서
했었는데,
너무 비효율적인 거 같아서..
공부하는 겸 블로깅 하기 위해서 좀 더 자세하게 알아왔다.
먼저 아까 보여준
"Break Point" 는 디버그 모드로 실행했을 때, 코드가 멈추는 지점을 말한다.
보시다시피 그 코드가 빨간색의 영역에 들어가게 되고, 코드의 숫자 번호 옆을 클릭하면 영역을 설정할 수 있다.
우클릭 시 조건을 걸어 Break를 걸 수도 있는데, 지금은 가능하다고만 알아두자.
"Debug" 는 이렇게 직접 벌레 모양을 눌러도 되고, Shift + F9 단축키를 눌러도 된다.
(main 메서드나 public class 파일에서 우 클릭도 되더라..)
디버그(Debug) 를 실행시키게 되면,
Debugger와 console 창이 따로 나와 각 각 입맛대로 바꿔서 볼 수 있다.
Step Over
다음 번호의 코드로 넘어간다. 그렇지만 method call 안으로 들어가지는 않는다. ( 단축키 F8 )
step Into
현재 대기중인 method call 내부로 진입하게 된다. ( 단축키F7 )
Resume Program
다음의 Break Point 로 이동하게 된다. ( 단축키 F9 )
(나는 처음에 몰라서 Break Point를 모두 다 설정한 후, Resume Program을 계속 찍어보면서 하나씩 봤다..
지금 보니까. 너무 멍청했네 )
Evaluate Expression
멈춘 지점에서 값들을 간편하게 계산할 수도 있고 함수 호출도 가능하다. ( 단축키 Alt + F8 )
이 기능 사용 시 println 하지 않고 다 찍어낼 수 있다.
나는 이 기능이 마음에 들어서 자세하게 설명하자면,
먼저 "Break Point" 를
이 코드로 설정해 주고, 디버깅을 실행하면
이렇게 Evaluate가 뜨면서 내가 직접 코드를 작성할 수 있고, 출력 값을 바로 확인할 수 있어서
엄청 편하고 자주 애용할 것 깉다.
따로 콘솔에 찍어볼 수도 있고, 또 디버깅을 하면서 과정을 따라가다 보면 내가 놓친 부분이 뭔지 또 생각해내지 못한
수식들을 좀 더 직관적으로 알아차릴 수 있어서 디버깅은 꼭 마스터 해야게따..
이것도 중요하지만,, 문법이나 더 많은 문제를 접해봐야 하는데 에휴.. 더 노력해 보자
나무를 보지 말고 숲을 보자 !