개발자의 하루 하루는 꽤나 피곤합니다. 해야 할 일들은 잔뜩 쌓여 있고, 무엇을 만들어야 할 지도 모를 때에 결정 된 숨막힐 정도로 타이트한 개발 일정은 가슴을 답답하게 만듭니다. 야근을 밥 먹듯이 하는 것이 당연해지고, 몸은 점점 지쳐 갑니다.
게다가 작성해야 할 문서는 수십 가지에 이르고, 상사는 툭하면 글자 크기와 폰트 등이 마음에 안 든다고 투덜댑니다. 고객은 어제 말한 것과 오늘 말하는 것이 틀린 경우가 허다하며, 하루에도 수십 가지의 문제들이 해결해 달라며 아우성을 칩니다.
소프트웨어를 찍어내는 기계가 된 개발자
개발자로서 사회에 첫 발을 내 딛을 때 가졌던 포부와 열정은 어느 순간 기억에서 사라져 버립니다. 이제는 그저 지치고 피곤해서 쉬고 싶을 뿐이며, 가능하다면 업계를 떠나 산에서 조용히 숯이나 구우며 살고 싶다는 생각이 들게 됩니다.

[그림 1 : 버그를 잡다 탈진해 버린 개발자가 연상되지 않습니까?]
위의 글에는 조금 과장이 섞여 있기는 합니다만 유사한 경험을 하고 있는 개발자가 꽤 많을 것이라 생각하고 있습니다. 그리고 위의 내용 중 일부는 현재의 저에게도 해당이 됩니다.
무언가 창조적이고 생산적인 일에 몰두할 때, 우리는 즐거워하게 되며 자신의 일에 애착을 가지게 됩니다. 이럴 때 비로서 열정적으로 일에 몰두할 수도 있고 새로운 아이디어를 자유롭게 반영할 수도 있습니다. 그리고 문제를 해결하는 일도 기쁜 마음으로 진행할 수 있지요.
하지만 안타깝게도 대부분의 경우 이렇게 몰두할 수 있는 환경에서 일하기란 매우 힘듭니다. 특히 지적 노동의 가치가 그다지 인정받지 못하는 대한민국에서는 말이죠.
결과적으로 개발자들은 어느 순간 자신의 에너지를 완전히 소진해 버리고, 영혼을 잃은 사람처럼 소프트웨어를 기계적으로 찍어내게 되곤 합니다.
개발자로서 영혼을 유지하려면
참 비극적인 일이죠. 이렇게 되지 않기 위해서 어떻게 해야 할까요? 일단 최고의 선택은 생산적으로 일에 몰두할 수 있는 환경으로 자신을 옮기는 것일 겁니다. 생각이 맞는 사람들과 좋은 환경에서 일한다는 것은 생각만 해도 즐거운 일이죠.
하지만 이러한 결정을 내리는 것은 쉽지도 않을뿐더러, 여러 사정상 불가능한 경우도 많이 있을 겁니다. 이런 환경을 찾는 것부터 사실 매우 어렵죠.
이런 경우라면 어느 정도 회사의 일과 자신의 생활을 분리시켜야 할 필요가 있습니다. 가능하다면 자신의 시간을 확보해야 하고, 그럴 수 없다면 심리적으로라도 불필요한 스트레스를 덜어낼 방법을 찾아 내야 됩니다.
사람은 기계가 아닙니다. 게다가 끊임 없이 무언가를 고민하여 해답을 찾아내는 개발 업무에서 휴식은 매우 중요합니다. 그러한 휴식을 통해 복잡해진 머리를 비우고, 새롭게 문제에 매달릴 수 있는 에너지를 충전하기 때문입니다.
그리고 가능한 처음에 소프트웨어 개발을 시작하면서 느꼈던 그 느낌, 초심을 기억하는 시간을 종종 가져야 합니다. 문제를 풀면서 느꼈던 희열, 새로운 지식을 쌓아가던 그 흥분을 말이죠.
그러한 느낌을 되살릴 수 있는 일에는 어떤 것들이 있을까요?
새로운 언어나 기술을 공부해 보는 것이 좋은 방법일 수 있습니다. 당장 회사 일에 사용하지는 않을 것들로 말이죠. 순전히 자신이 원해서 공부하는 것과 일을 위해 공부하는 것은 느낌이 완전히 다르죠. 그렇기 때문에 자신이 흥미를 느끼는 분야를 선택하는 것이 좋습니다.
만약 특별히 흥미가 가는 부분이 없다면, 재미 있는 문제 풀이를 해 보는 것도 좋을 겁니다. 철저하게 자신의 재미를 위한 프로그래밍을 해 보는 것이죠.
예를 들어 신문의 만화를 즐겨 보는 사람이라면, 웹 사이트에서 만화 이미지만 받아내는 프로그램을 만들어 볼 수 있을 겁니다. 사진을 좋아하고 자기 나름대로의 원칙을 적용해서 관리하고 있다면 이러한 일을 도와 줄 수 있는 사진 관리 프로그램을 작성해 보는 것도 좋겠죠. 아니면 아주 엉뚱한 장난을 치는 프로그램들을 만드는 것도 좋습니다. 중요한 것은 자신이 만들고 싶은 소프트웨어를 자신을 위해 만드는 것이죠.
그러한 점에서 저는
Coding For Fun과 같은 사이트를 매우 좋아합니다. 굉장히 엉뚱하면서도 재미 있는 아이디어가 넘치는 곳이죠. 그리고 꽤 많은 부분에서 소스도 공개되고 있어서, 나도 한번 해 보고 싶다는 생각이 절로 들게 되죠.
만우절 장난을 위해 원격 제어로 고무공들을 떨어뜨리는 소프트웨어라던가, 레고 NXT 로봇과 위의 컨트롤러를 결합해서 볼링 게임을 하는 로봇을 만든다거나 하는 식이죠. 만약 마음 가는 내용이 있거나, 다른 아이디어가 떠오른다면 그러한 프로그램 작성에 몰두해 보는 겁니다.
그러면 왜 내가 이 길을 택했을까 하는 의문에 앞서, 내가 이 길을 선택했었던 이유를 재발견 하는 데에 분명히 도움이 될 겁니다.

[그림 2 : 레고 NXT와 Wii 컨트롤러를 연결하여 볼링 게임을 하는 로봇]
마치며
초심을 지키며, 열정을 유지하는 것은 힘든 일입니다. 척박한 환경에서는 더더욱 그렇습니다. 그렇기 때문에 자신의 에너지를 보존하고, 유지하기 위한 노력이 필수적입니다. 결국 자신의 일을 즐길 수 있는 방안을 찾고, 자신을 리프레쉬해야 합니다.
안타깝게도 세상은 너무나 빨리 변하고 있고, 그러한 세상에서 혼을 잃은 개발자의 앞길이 어떠할 것인지는 분명하기 때문입니다. 개발자 여러분의 건승을 빕니다.