Mar 26 2007
나를 위한 코딩을 해 보자.
포스트 내용이 구구절절 공감이 된다.
프로그래머로 사회생활을 시작한 지 1년 반 정도 되었는데, 종종 코드들을 돌아보면 엄청난 양의 중복이 존재함을 깨닫는다.
하지만 그 놈의 ‘귀차니즘’이 뭔지, 퇴근이 뭔지…
최대한 시간을 줄이기 위해 소스를 통째로 찾아서 갖다 붙이는 작업을 하게 된다.
그 때 당시에는 라이브러리로 만드는 것보다 시간이 덜 걸린다. 하지만 그걸 여러 번 반복하게 되니 이 작업 자체가 만만하지 않음을 깨닫는다.
프로그램을 모두 뒤져가면서 소스 떼어내고, 컴파일 에러 나는지 확인하고, 컴파일 에러를 고치기 위해 또 소스를 뒤져서 붙이거나 필요없는 소스를 제거하고, 또 에러 확인하고…
입사때 부터 이걸 깨닫고 조금만 고생해 두었으면 지금쯤 라이브러리 조합만으로도 엄청난 코딩을 줄일 수 있었을텐데… 내일부터 시간 날때마다 정리를 해 둬야겠다.
라이브러리와는 조금 다른 이야기이지만, 비슷한 이야기를 하나 더…
대학교 연구실 교수님께서 자주 하시는 말씀이 있다.
“매크로 작업이 있으면, 손으로 할 때 걸리는 시간과 프로그램을 만드는 시간을 예상해 보고, 손으로 하는 게 빠르면 손으로 하고, 비슷하기라도 하면 프로그램을 만들어라.”
학생 때는 나도 매크로 작업이 필요할 때는 되도록이면 간단한 유틸리티라도 작성해서 사용했는데, 입사하고 나면서 점점 귀찮아지면서 ‘손으로 하고 말지’ 라는 생각이 앞서는 것 같다.
(물론 회사 입사 이후로도 몇 가지 만들긴 했는데, 엄청 귀찮아하면서 만들었다.)
그런데 작업을 하다 보면 매크로 작업은 한 번 하면 보통 나중에도 여러 번 하게 되는 것 같다.
그래서, 교수님 말씀에 개인적인 생각을 한 가지 더 추가해야 될 것 같다.
“두 번 이상 사용할 것 같다면 프로그램을 만들어라.”
정리하자면, 자신을 위해 이런 작업은 ‘귀차니즘’을 극복하고 긴 안목을 두고 해야 되지 않을까 싶다.
(생각해보니 역으로 생각하면 ‘귀차니즘’을 위하여 해야 되는 것일 수도 있네…)
1. 라이브러리화 할 수 있는 것들은 모두 라이브러리화 하고 API 스타일의 문서를 만들자. 그리고 추가되는 클래스를 잘 분류해서 라이브러리를 자주 업데이트하자.
2. 매크로 작업을 유틸리티로 작성하자.
라이브러리야 뭐 회사에서 사용하는 언어를 따라가면 되니…
리팩토링과 클래스 디자인, 디자인 패턴, 그리고 ‘귀차니즘’을 공부해야 할 것 같다.
매크로 작업은 C/C++로 코딩하기에는 좀 비효율적인 것 같고… 스크립트 언어를 하나 공부해보면 좋을 것 같다. 미뤄두고 있는 파이썬 언어를 시간날 때 마다 공부해보아야겠다.
공부할 게 무궁무진하구나…
