개발자에게 중요한 자질은 여러가지가 있겠지만, 내 기준에서는 3가지라고 본다.

첫번째는 전체를 아울러 볼 수 있는 시선.

두번째는 디테일을 확인할 수 있는 시선.

세번째는 편견없이 다양한 오류를 받아드릴 수 있는 여유.

다 중요한 내용이지만, 이 중,특히 디버깅 작업에서는 세번째 자세가 필요하다고 본다. 
디버깅을 하려면 다양한 시점으로 확인을 해야하는데, 최소한 나와 같이 작업하는 사람들 대부분은 스스로에 대해서는 매우 관대하여 심하면 완전무결을 기준으로 생각한다는 점이다. 최소한 자신이 직접 관여하거나 만든 코드 부분에서는 문제가 없다고 가정하고 생각한다. 그러다보니, 매번 문제를 간과하거나 이상한 곳을 기준으로 진행하는 경우를 많이 보았다. 

물론 자신의 코드가 이상이 없다는 생각에서 출발해야, 덜 피곤할 수 있다. 문제가 있는지 없는지를 증명하는게 이게 장난 아니다. 있지도 않은 문제점을 찾아 증명하는게 시작도 문제고 진행과정도 문제다. 편한 길을 찾아보는게 역시 자신의 코드를 기준으로 남의 코드의 흉을 보는 것이다. 남의 코드를 보면 매사가 의심증 자체다 보니, 조금만 자신과 다르면 다 오류로 감지할 수 있다. 또 그 의구심을 그대로 쏟아보면 진짜 오류 같기도 하다. 여기에 한 술 더떠 디버깅 중인 사람이 권력자(설계 담당자, 상위 직급 등등)인 경우라면 이건 완전히 Hell 이된다.

그래서 난 항상 디버깅을 이야기 할 때, 스스로를 의심하라는 것이다. 과연 진짜 스스로의 코드가 옳은가? 흐름상으로는 맞을지 모르지만, 혹시 나비효과의 나비 날갯짓 짓거리를 하고 있는 것은 아닐까? 혹은 내가 만든 코드를 복사한데서 다르게 동작한 것은 아닐까? 의도치 않게 호출되는 순서가 바뀐건 아닐까? 정말 안전하게 디자인되어 구현되어 있나?

일단 스스로를 좀 엄격하게 대하고, 확인하는 습관을 들였으면한다.

이번에도 스스로의 코드 부분에서는 당연히 문제 없다고 간주하고 이야기를 하다가 결국 나와 이야기가 잘 정리가 안되서 결국 한소리를 하고 난 뒤 쓴다. 

728x90

+ Recent posts