티스토리 뷰

디버깅

[디버깅] 개발자와 디버깅

이재원님 2020. 12. 29. 20:14

버그

버그는 게이머나 프로그래머들 사이에는 익숙한 용어로 프로그램 또는 시스템의 오류 또는 오작동을 의미한다. 이는 1945년 9월 9일 Mark.II 컴퓨터의 회로에 나방이 들어가 합선을 일으킨 것을 코볼의 발명자인 그레이스 호퍼가 발견한 것에서 유래됐다고 한다. 이런 버그들을 제거하는 행위를 디버깅(debuggig)이라고 부르며 디버깅을 도와주는 도구를 디버거(debugger)라고 부른다.

소프트웨어공학 관점에서 증상 및 발생원인에 따라 결함, 오류, 버그 등을 명확히 분리하기도 하지만 실제 프로그램을 작성하는 개발자 관점에서는 모든 의도하지 않은 동작을 통틀어서 버그라고 부르기도 한다.

 

 

버그와 스펙

간혹 버그 리포팅을 받아보면 버그와 스펙(요구사항명세)을 구분하지 못한 경우가 많다. 기존에 작성된 스펙이 명확하지 않았거나 테스터의 개인적인 판단으로 기대했던 동작과 달라 버그라고 인지하는 경우 등이 있다.

물론 이런 버그 리포팅도 기존에 누락되거나 잘못된 스펙을 재점검하는 차원에서 의미가 있을 수도 있으나 반드시 버그와 스펙을 명확히 해야 한다. 이런 경계가 모호해질 경우 원래 목적이였던 버그 수정이 어려워질뿐만 아니라 논의되지 않은 엉뚱한 스펙이 적용되어버리는 상황이 발생하여 혼란을 야기하게 된다.

기능개발, 디버깅, 리팩터링 등 서로 다른 작업을 동시에 진행하는것은 혼란의 지름길이다.

 

 

개발자와 디버깅

개발자는 평균적으로 근무시간의 30~70% 정도를 디버깅에 사용한다고 한다. 코드를 작성하는 순간부터 디버깅과 함께 한다고 말해도 과언이 아니다. 시스템이 점점 커지고 복잡해질수록 디버깅에 드는 비용은 커지게 되니 더 좋은 퍼포먼스를 내는 개발자가 되기 위해서는 디버깅을 잘하기 위한 노력은 필수적이다.

 

아래는 디버깅과 관련한 흥미로운 통계들이다.

  1. 평균적으로 개발자는 1000줄의 코드를 작성하는 동안 70개의 버그를 만든다
  2. 이 중 15개의 버그는 고객이 발견한다
  3. 버그를 고치는 일은 코드를 한줄 작성하는 것보다 30배의 시간이 걸린다
  4. 개발자는 75% 의 시간을 디버깅에 사용한다 (일 년에 1500시간)
  5. 미국에서만 매년 1130억 달러가 제품 결함을 확인하고 수정하는 데 사용됩니다

 


 

 

참고자료
https://coralogix.com/log-analytics-blog/this-is-what-your-developers-are-doing-75-of-the-time-and-this-is-the-cost-you-pay/

댓글