개발자의 덕목, 귀차니즘

by 서초량

대중적으로 직업에서 덕목이라고 하면 성실, 정직, 인내심, 협동심 등을 꼽을 수 있다. 사회에서 말하는 긍정적인 가치. 그러나 저명한 개발자 래리 월(Larry Wall)은 개발자가 갖춰야 할 3가지 덕목을 다음과 같이 소개했다.


‘나태(Laziness), 초조함(Impatience), 자만심(Hubris)’


이 부정적인 단어들이 어찌하여 개발자의 덕목이 되는가. 세 줄 요약하자면 다음과 같다.


‘나태해서 두 번 다시 작업하지 않도록 효율적인 코드를 짠다.’

‘초조해서 미리 다음 단계까지 확장할 수 있는 코드를 짠다.’

‘자만심이 강해서 누가 봐도 완벽한 코드를 짠다.’


실제로 이런 사람이 있을까 싶겠지만, 실제로 있고 꽤 많다. 무서운 사람들.


래리 월의 3가지 덕목은 처음 듣는 것이지만 막상 내용을 보니 익숙하다. 특히, 첫 번째 ‘나태’의 경우에는 우리나라에서는 ‘귀차니즘’이라는 이름으로 더 많이 쓰이고 있는 듯하다. 나도 개발자라면 귀차니즘을 가져야 한다고 들었던 기억이 있다. 개발자와 귀차니즘. 조금 더 자세히 말해보고자 한다.


개발자의 ‘귀차니즘’이라는 건 다른 사람이 보기에 이상한 부분일 수 있다. 귀찮으면 아무것도 안 해야 할 텐데? 귀찮아서 일을 더 한다니 굉장히 이상하지 않은가? 이건 개발 업무의 특성 탓이다. 개발 업무라는 게 필연적으로 반복이 많다. 어떤 기능을 다른 곳에서도 쓰는 일이 자주 있다는 뜻이다. 쉽게 말하자면 같은 코드를 또 쓸 일이 많다. 그러면 개발자는 이렇게 생각할 수도 있다.


‘해야만 하는데 같은 코드 작성을 반복하기는 싫어.’


그래서 반복을 줄이기 위해 시간을 들여 코드를 바꾸는 작업을 한다. 내가 그런 덕목을 갖추고 있냐고 묻는다면 글쎄. 나는 아직 한참 멀었다. 아무래도 너무 성실해서 귀찮음을 덜 느끼는 모양이다. 성실함 빼면 시체인 사람인지라.


‘이 정도 수고는 감수할 수 있지!’


라며 십여 줄의 코드를 반복해서 쓰고 또 쓴다.


나는 아직 초짜 개발자라 귀차니즘이 부족하지만 내가 만난 ‘괴짜’ 개발자는 다들 귀차니즘을 약속이나 한 것처럼 탑재하고 있다. 내 주변 괴짜 개발자 중 한 명인 Y 매니저님. Y 매니저님과 귀차니즘 하면 떠오르는 에피소드가 있다.


입사 초기에 클라우드 이용 비용에 대한 정산 업무 설명을 들었다. 매달 해야 하는 업무인데 확인해야 할 파일이 꽤 많았다. 정산 엑셀 파일의 분량은 하루에 하나씩 한 달 치. 대략 30개의 파일을 분석해야 했다.


‘일단 30개의 파일을 다운받긴 했는데 이제 이걸 어떻게 하나?’


그런 생각이 들던 찰나, 사수님이 프로그램 하나를 주셨다. 그 프로그램은 Y 매니저님이 만든 것이라고 하셨다. 정산 엑셀 파일을 넣으면 알아서 분석해 순식간에 결과 파일을 생성해 주는 마법 같은 프로그램이었다! 덕분에 정산 업무에서 내가 할 일은 파일을 다운받고 프로그램 버튼을 클릭하는 것뿐이었다.


프로그램을 만들 시간에 그냥 정리하고 있는 게 더 빠르겠다고 생각할 수도 있다. 그렇지만 그 일이 매달 반복된다면? 반복 업무로 몇 시간을 허비하는 것이 더 귀찮지 않을까? 그렇게 생각하는 것이 개발자의 덕목이다. 반복하지 않도록 시간을 더 투자해서 자동화하는 것.


귀차니즘은 ‘미루기’를 동반하곤 한다. 그와 달리 개발자의 귀차니즘은 ‘행동’을 수반한다. 귀찮기 때문에, 더 귀찮아지기 싫어서 움직인다. 귀차니즘이라는 말로 우스꽝스럽게 포장했지만 사실 그 속에 담긴 건 깊은 애정이 아닐까.

이전 05화무슨 노트북 써요?