본문 바로가기

사생활 들여다보기/뇌 속 풍경

사흘에 걸친 디버깅의 끝 - 아두이노 Serial.print의 비효율성

 록스타 원칙에 관한 글에서는 멋도 모르고 "스무 시간에 걸쳐 일류 프로그래머가 하는 결과물을 해냈다" 하는 식으로 말을 했지만, 어림도 없지 시연회 망한 후기글에서는 "이 정도면 되었겠지" 하는 방심이 어떤 결과를 낳았는지를 상세히 기술했다. 결국 스무 시간에 걸쳐서도 일류 프로그래머가 할 수 있는 일을 해내지 못한 셈이다. 


Serial.print 함수가 발생시키는 문제점들

 

 시연회 폭망 이후 디버깅 과정에서 발견한 다양한 문제점 중에서, 가장 근본적인 원인은 아두이노의 반응속도가 느려졌기 때문이었다. 가뜩이나 코드가 제대로 작동하는지 확인하지 못하기 때문에 점검을 위해 삽입했던 Serial.print 함수가. 오히려 코드 동작을 느리게 하는 원인이 되었고, 결과적으로 Serial.print 함수를 모두 제거함으로써 해결할 수 있었다. 


 결국 제대로 된 코드 실행을 위해 필요한 시간은, 발표 전날 8 시간 + 발표날 6 시간 + 디버깅 5 시간 = 19시간이 필요했다. 하지만, 이전 글에서도 언급했듯 달라진 코드는 많지 않다. 오히려 Serial.print를 잔뜩 닮으로써 생긴 오류가 코드 수정에 필요한 시간을 대폭 늘린 셈이다. 일류 프로그래머가 내가 걸린 시간의 1/20 인 1시간 정도나 걸렸을지도 의문이다. 아무리 봐도 30분 정도면 해결 가능한 일인 것이다.

 

 대학원에서 공부하기로 마음먹은 이상 20 배 이상 시간을 투입하는 것은 각오해야겠다 - 하고 마음 먹은 상태였지만, 아무리 봐도 20 배 보다는 많은 시간을 요구하는 것으로 보인다. 앞으로의 생존 방향은 계속해서 바뀌어 나가겠지만, 발생하는 이슈들을 꾸준히 모니터링하는 부지런함을 길러야겠다.