우선 이 책을 읽는 내내 매우 부끄럽고 정곡을 찔리는 느낌이 들었음을 고백한다. 작가가 프로그래머들에게 지적하는 부분 부분들이 죄다 나에게 던지는 충고라고 느껴지는 순간 난 개발자로서 그 동안 엉터리였음을 깨닫게 되었다.

하나, 깔끔한 코딩!
어떤 프로그램이든지 개발자라면 한눈에 봐도 깔끔하다는 인상을 주는 프로그램을 짜야 한다. 주석을 다는 것은 필수요소이고 누가 봐도 처음부터 끝까지 이해할 수 있도록 체계적으로 코딩을 해야 한다. 솔직히 나는 평소에 주석 다는 것을 무척 귀찮아 했었다. ‘내가 짠 프로그램이니 나만 알아볼 수 있으면 되지.’ 라는 생각이 베이스에 깔려있었던 것 같다. 작가의 표현을 빌자면 내가 바로 ‘핵폭탄’이었던 것이다. 하지만 이제부터는 변화할 것이다. 내가 무슨 프로그램을 짜고 있는지 전혀 모르는 사람이 와서 본다 해도 고개를 끄덕일 정도로 체계적이고 논리적으로 코딩을 하려고 노력할 것이다. 이제까지 정진보 차장님께서 왜 그토록 ‘끝순 정렬’을 강조하셨는지 깨닫게 된 순간이었다.

둘, 끝없는 테스트!
프로그램을 다 완성했다고 끝이 아니다. 여러 번의 테스트를 거치며 오류가 없는지 검토하고 또 검토해야 한다. 그런데 우리나라 프로그래머들은 대충 자기가 자신 있는 테스트만 몇 개 해보고 이 프로그램은 완벽하다며 사용자들에게 공개한단다. 생각해보니 나도 그런 경향이 있는 듯 했다. 늘 ‘만약의 사태’와 ‘예외의 상황’에 민감해야겠다는 생각이 들었다. 100% 오류가 없는 프로그램은 불가능하겠지만 항상 99.9%의 완벽을 위해 테스트, 또 테스트 해야 할 것이다.

셋, 설계의 중요성!
정말 유능한 프로그래머들은 프로젝트를 맡았을 때 80%를 설계에 투자한다고 한다. 나머지 20%가 코딩이라는 얘긴데 이 말에는 100% 동감이다. 학교에서 과제가 주어졌을 때에도 완벽한 알고리즘을 구현한 뒤 코딩을 하는 것과 주먹구구식으로 코딩에 뛰어드는 것에 소비되는 시간의 차이가 현격한데 하물며 기업에서 하는 프로젝트는 말해서 무엇 하랴. 여기저기서 발생하는 오류들을 수정하느라 진땀 빼는 것 보다 처음부터 오류가 없도록 완벽하게 설계를 하는 것이 백배는 중요하며 이것이 또한 업무로 인한 스트레스를 절반으로 줄이는 비법인 것이다.

이 밖에도 이 책을 읽으며 컨설팅의 가치와 영어의 중요성을 느낄 수 있었다. 영어 때문에 미국 시장에 우리나라 프로그래머보다 인도 프로그래머들이 훨씬 많다는 얘기를 듣고 약간 자존심이 상하기도 했다. 생각해보니 영어를 잘하는 실력 있는 프로그래머라면 정말 완벽한 인물이 아닐 수 없다고 여겨졌다. Toeic 시험 후 한동안 손을 놓고 있었던 영어 공부에 다시 의욕이 생겼다.

대한민국의 개발자. 이게 내 직업이다. 어디에 가서든 내 직업을 떳떳하고 당당하게 얘기할 수 있도록 지금부터 끝없이 노력할 것이다. 난 머지않은 미래에 유능한 프로그래머가 되겠다!

- 여기까지 회사에 제출한 독후감. -_-;;
by 위대한 정미나 2007. 3. 28. 12:53