[공부] 디버깅이란?
목표
디버깅이란 무엇인지 알아보고 잘 사용할 수 있는 방법을 찾아본다.
디버깅
코드에서 정확하게 어디에서 문제가 생겼는지 확인한 다음에 범위를 좁혀가면서 버그를 고쳐나가는 행위. 즉, 우리가 원하는 목표는 무엇이고 지금 현재 나타나는 버그가 어떻게 어떤 형태로 나타나고 있는지 확인한 다음에 목표와 현재의 문제 간의 GAP을 채워나가는 행위이다.
중요점
문제를 정의 하는 법
- 어떤 버그 인가
- 어떤 오류 인가
- 예상 되는 문제는?
Interactive debugging - Debugger
Debugger에서 breakpoint 설정
Controller에서는 다음과 같은 버튼 들이 있다.
continue: 시작
step over: 한줄씩 확인
step into: 함수 안으로 들어가기
step out: 함수 밖으로 나가기
Interactive Debugging
Watch상태에서 값을 변경을 하면서, 내가 의심되는 부분에 브레이크 포인트를 잡아서 해당하는 부분에 값을 내가 원하는 상태 값으로 변화한다음에 인터렉티브 하게 디버깅이 가능하다.
인터엑티브 디버깅 팁
특정 부분에서 특정 조건을 두면은 일일이 continue를 누를 필요 없이, Edit Breakpoint 버튼을 눌러서 특정 조건에서 디버깅을 진행할 수 있다.
CALL STACK을 통하면 해당 함수나 위젯이 어디서 호출이 되었는지도 확인을 할 수 있다.
간단하게 정리를 하였지만 디버깅을 제대로 배우는 것이, 막무가내로 코드를 추가하거나 삭제하는 것보다 더 효율적이라는 생각이 들어서 디버깅을 조금 더 잘 배워보고자 한다.
출처
드림코딩, 코딩의 시작과 끝, 디버깅 |실력있는 개발자의 필 수 무기
https://www.youtube.com/watch?v=IwC-BVM2_YQ
드림코딩, 개발자와 리뷰어의 기나긴 싸움
https://www.youtube.com/watch?v=bUY3wNjcVMk
드림코딩, 개발자 망하게 하는 사고방식 (개발팁 5가지)