[코딩의 신 아샬] 디버거를 안 쓰는 개발자가 있다고?
내용 요약
- 디버깅을 할 수 없는 코드도 존재한다.
- 단위 테스트가 잘 만들어져 있으면, 발생한 문제를 발견하기 쉽다.
- 간단한 프로그램 일 때는 손으로 혹은 디버깅으로 문제를 발견하기 쉽지만, 복잡한 프로그램일 경우에 단순히 디버깅으로 해결되지 않을 수도 있고, 해결하는 과정이 복잡할 수 있다
느낀점
- 이 영상을 예전에 처음 봤을 때, 내용에 좀 놀랬었다.
- 학교 다닐 때, 늘 들었던 말 중에 하나가 “ 잘 안되면 혹은 왜 오류가 나는지 모르겠으면, 디버깅을 해봐라” 라는 조언을 여기저기서 많이 들었기 때문이다.
- 그렇기 때문에 디버깅은 오류를 찾기 위해서 필수적인 스킬로써, 익혀야하는 것으로 생각 하였다.
- 그러나, 이 영상의 요지는 디버깅 보다는 단위 테스트를 꼼꼼이 작성하는데 집중하자 라는 것이다.
- 프로그램의 오류를 찾을 때, 작은 프로그램 일 때는 디버깅으로 어느정도 커버 할 수 있지만, 프로그램이 크고, 의존 범위가 많을 때는 단순히 디버깅 만으로 하기에는 매우 비효율적이란 얘기를 한다.
- 처음 이 영상을 보았을 때는 동의하지 못했었다. 왜냐하면.. 그땐 테스트를 안짰으니까..
- 그러나, 지금은 매우 동의한다.
- 위의 내용에서는
Sentry
같은 오류 로그를 보여주는 툴을 이용하여서, 오류에 대해서 추측 및 관련 테스트를 보면서, 추측한 후, 에러를 재현할 수 있는 테스트를 만들고, 그것을 패스할 수 있는 코드를 작성하는 방식으로 버그를 수정하는 것을 말한다. - 물론 디버깅으로도 똑같이 재현하여 확인할 수 있지만, 에러를 재현하는 테스트를 통과하는 코드를 작성함으로써, 무엇보다도, 버그 픽스에 대한 자동 문서화 및 테스트를 실행하는 것으로 버그 발생하는 것을 테스트하고 검사 할 수 있는 것은 디버깅을 하는 것 보다 매우 큰 장점 이라고 생각한다.
- 그렇다고 해서 디버깅을 할 필요가 없다고 생각하진 않는다. 분명히 디버깅도 절대로 알아야만 하는 스킬 중의 하나이고, 디버깅을 더 잘 활용함으로써, 더 테스트를 잘 작성할 수 있다고 생각한다.
- 무튼 간에, 디버깅/단위 테스트 모두 오류 해결을 위한 도구로써 잘 활용하자