유튜브 리뷰 - 코딩의 실 아샬(03/10)

디버거를 안 쓰는 개발자가 있다고?

  • 디버거를 안쓰는 이유
    • 디버거에서 가장 많이쓰는 기능이 중단점을 두고 그 중단점에서 문제 상황을 보고 해결하는 기능이다. 그렇게 해서 해결할 수 있는 문제가 있고, 해결하기 어려운 문제가 있다.
    • 전체적인 구조를 보지않는다. step 단위로 계속 파고드는 과정이기 때문에 순차적으로 프로그램을 따라 들어가는 느낌인데, 대부분의 문제는 순차적으로 파고들어 파악하는것보다 전체적인 구조를 봐야하는 경우가있다.
    • 프로그램이 실행되는것을 통해서 원인을 파악하는것이 아니고, 어느 부분이 문제가 된것일까? 생각해보고 찾아보는 방법이 있는데, 단위 테스트가 있으면 이러한 문제를 찾는것이 매우 쉽다.
      • 단위 테스트를 잘 만들어 놓으면 문제가 되는 부분은 즉시 파악이 가능하다.
      • 단위 테스트들이 어떤 의도로 만들어졌는지 알고있다면 문제가 생겼을때 어떠한 논리적인 흐름에 따라 문제가 생겼을까 생각할 수 있고, 테스트 코드에 버그를 재현하는 테스트 코드를 작성할 수 있다. (가설이 맞다면 문제가 생길것이고 그렇지않다면 다른 부분을 찾는다.)
  • 무작정 디버거를 쓰지 말고 왜 이런일이 발생했을까 생각해보고 추적하는것이 더 논리적으로 도움이 된다.
  • 단위 테스트가 없다면 이러한 방법이 매우 어렵다.

  • 코드워즈 문제를 풀 때 단위 테스트를 먼저 만드려는 노력을 한다. 실제로 테스트 코드를 통해 내가 생각한 방법으로 문제를 해결할 수 있나 파악하기 쉽다.
  • 그런데 내가 생각한 로직을 구현해서 테스트 코드를 실행해보면 틀리게 나오는 경우가 있다. 그러면 내가 구현한 로직이 틀렸다고 파악이 가능한데 어느 부분에서 오류가 난 것인지 파악을 바로하기는 어렵다. 그래서 결국 테스트 코드도 디버깅을 해본다.
  • 그래서 단위 테스트를 잘 만들어 놓으면 디버거가 필요없다고 말이 이해는 되지만, 실제로 그렇게 하려고 하면 잘 안된다. 결국 디버거를 쓰긴 쓰는데.. 아직은 쓸 필요가 없다라고 까지는 느끼지 못하겠다.

댓글남기기