10초에 한 번씩 컴파일하다 혼난 이야기
2009년도쯤 이야기입니다. 아마 Visual Studio 2008을 이용해서 C++ 로 뭔가 하고 있었을 겁니다. 요즘 언어와 도구들은 정적 언어라 할지라도 자동으로 빌드가 되는 것 같지만 당시에 제가 쓰던 도구는 Ctrl+Shift+B 를 눌러서 빌드를 했습니다. 저는 뭔가를 고치기 위해 이것저것 해보고 있었고 팀장님은 제 옆에서 모니터를 바라보며 함께 문제를 찾아주고 계셨습니다. 몇 글자 고치고 Ctrl+Shift+B 앗 컴파일이 안되네. 또 몇 글자 고치고 Ctrl+Shift+B 컴파일됐다! 이제 Ctrl+F5로 실행. 젠장, 잘 안 고쳐졌잖아? 또 몇 글자 고치고 빌드. 제 왼손은 언제라도 Ctrl+Shift+B 를 누를 준비가 되어있었습니다. 팀장님이 옆에서 가만히 보고 계시다가 한마디 했습니다. “왜 자꾸 그렇게 서둘러서 컴파일을 해요?” “빨리 고치고 싶어서요.” 팀장님은 신사다운 분이셨습니다. 그런다고 잘 되지 않을 거예요. 자꾸 습관적으로 손이 나가지 말고 머릿속으로 찬찬히 컴파일을 해보세요. 빌드를 하고 싶은 마음을 참아내고 최대한 많이, 할 수 있는 만큼 코드를 짜 보세요. 그리고 진짜 다 됐다 싶을 때 빌드를 해보는 거예요. 그렇게 하면 훈련 효과도 있을 거예요. 막 신입사원을 벗어나 자신감에 가득 차 있던 저는 크게 부끄러움을 느꼈습니다. 제가 전형적인 초보 프로그래머의 행동을 하고 있었다는 생각이 들었거든요. 이 일 이후 제 성급한 손을 경계하려고 노력했습니다. 커밋한 후 곧바로 ‘오타 수정’ 이라고 다시 커밋하는 실수들을 하게 되면 저는 스스로를 많이 질책했던 것 같습니다. “이 바보 녀석, 또 성급했잖아. 너는 아직도 초보야.” 뛰어난 두뇌 능력, 무거운 엉덩이는 프로그래머에게 중요한 능력 요소입니다만 신중함, 꼼꼼함 또한 그에 못지않게 중요한 것 같습니다. 실수 없이 일을 마무리해내는 것은 실력입니다. 이렇게 일하는 사람은 믿음이 갑니다. 실수가 잦은 사람에게 중요한 일을 맡길 수 없습니다. 은퇴 후 맘 편하게 혼자 코딩을 하다 보니 요즘 다시 이런 초보적인 실수를 하고 있습니다. 좀 혼나 봐야 정신차릴 텐데 이제 옆에서 혼내줄 사람이 없어서 슬프네요.