본 글을 천청향로님의 글을 참고하여 작성되었으며 저에게 필요한 부분만 기록해보려 합니다.
Break Point
라인 넘버 오른쪽에 클릭하면 빨간색 버튼이 하나 생기는데요. 그것이 Break Point입니다. 이건 아마 많은 분들이 알고 계실텐데요. 이 빨간색 버튼 위에 오른쪽 마우스를 누르면 특정 조건에서 break를 설정할 수 있습니다. 예를들어 변수 == 3
라면 그 변수가 3일 때 멈추게 되는 것이죠.
디버깅 버튼
resume : 다음 break point로 이동합니다
step over : 현재 break 라인 모두 실행 후 바로 다음 라인으로 이동합니다.
step into : 현재 break 라인에서 따로 실행하고 있는 메서드가 있다면 그곳으로 이동하게 됩니다. 그러니까 해당 break 라인 그 안으로 들어가는 것이죠.
force step into
command + shift + a
를 통해 stepping을 찾아 그 설정으로 간 후 skip simple getters를 체크해봅시다- 이 상태에서 기존 break line에서 step into와 force step into를 동시에 돌아가면서 해봅시다.
- 잘보면 step into는 getter메서드는 그냥 바로 넘어갑니다. 하지만 force step into는 getter메서드까지 이동을 하는데요. getter, 생성자의 경우 굳이 확인이 필요하지 않은 경우가 많기 때문에 설정을 따로 한 후 그 경우에 대해서 step into 또는 force step into를 사용할 수 있습니다.
step out : 해당 라인을 실행 후 이 곳을 호출한 곳으로 거슬러 올라갑니다. 보통 step into로 파고 들어간 곳에서 실행한 다음 위로 다시 거슬러 올라갈 때 사용합니다.
drop frame : step out과 유사하게 호출한 곳으로 거슬러 올라갑니다. 하지만 step out과 다른 점은 실행하지 않고 돌아간다는 점입니다. 그래서 계속 올라가면 최초 그곳을 호출한 곳까지 가게됩니다.
- run to cursor : 커서(포커스)가 있는 라인에서 break가 잡히게 됩니다. 보통 break point 잡지 않고 단발성으로 걸고 싶을 때 사용한다고 하네요.
Evaluate vs Watch
Evaluate
- 아까 디버깅 버튼 옆에 Evaluate 버튼이 있습니다. 그리고 버튼을 누르면 작은 창이 하나 뜹니다.
- 여기선 해당 break line에서 접근 가능한 변수의 값들을 계산해볼 수 있습니다. 만약 해당 변수가 있고 저는 -3 된 값을 알고 싶다면 해당
변수 - 3
을 하면 계산된 값을 보여줍니다.
Watch
- 저 같은 경우 초록색 선글라스처럼 생긴 것이 Watch 버튼입니다.
- 이것은 Evaluate와 유사한데 다른 점이 있다면 변수를 등록시키고 그 변수를 디버깅 동안 계속 추적할 수 있다는 것입니다. Evaluate는 매번 창을 띄우서 확인했어야 했잖아요.
- 저의 경우 최근 프로젝트에서 특정 배열의 값을 계속 확인해야 하는 상황이 있는데 이렇게 등록하면 쉽게 볼 수 있으니 좋을 것 같다는 생각이 드네요.
최근에 프로젝트 진행하면서 설계가 많이 뒤집히면서 테스트코드를 제대로 돌리기 힘든 경우가 있었습니다. 이 경우 버그가 생길 때 종종 디버깅을 써봤는데 코드가 어떻게 돌아가고 있는지 옵저버처럼 확인 가능하더라구요. 하나하나 확인하면서 번거러운 점도 있었지만 재미있었습니다. 그런데 디버깅 버튼의 용도를 정확하게 알지 못해 특정 버튼만 사용하다보니 아쉬워 이번 기회에 정리하였습니다. 혹시 디버깅 기능을 제대로 활용해보지 못했다면 이번 기회에 한번 사용해보길 추천드립니다.
'TIL' 카테고리의 다른 글
Today's Dev Notes(2019-03-10) (0) | 2019.03.11 |
---|---|
Today's Dev Notes(2019-03-09) (0) | 2019.03.10 |
Today's Dev Notes(2019-02-07) (0) | 2019.02.07 |
Today's Dev Notes(2019-01-23) (0) | 2019.01.23 |
서버 N대 성능개선 (0) | 2019.01.22 |