한국의 소프트웨어 개발 문화 – Lorentz 2.0을 릴리즈하며

어제 짬을 내 Lorentz 2.0을 릴리즈하고, TheServerSide.com, JavaService.net, OKJSP.pe.kr에 발표했다. 만 하루가 지난 지금 JavaService.net 과 OKJSP.pe.kr 에 달린 답글은 0, TheServerSide.com 에 달린 답글은 내 것을 제외하고는 8개다. 이 작은 숫자의 차이는 한국의 오픈 소스 문화, 나아가 소프트웨어 개발 문화의 현재와 미래를 보여준다.

창조라는 것은 아이디어를 구체화하는 구체적인 프로세스다. 아이디어를 구체화하는 데 필요한 것은 아이디어의 지속적인 검증 (피드백) 과 보완 (피드백의 반영) 이다. 즉, 창조가 이루어지기 위해서는 아이디어를 적극적으로 실현하고자 하는 사람과, 참여하지는 않더라도 그 과정에 영향을 미쳐 실현 과정을 옳은 방향으로 이끌어 가고자 하는 사람이 모두 필요한 셈이다. 전자가 없다면 아이디어는 시작조차 되지 않으며, 후자가 없다면 어떤 좋은 아이디어라도 더 많은 두뇌의 합산을 통한 창발을 겪지 못한 채 도태될 수 밖에 없다.

술자리에서 사람들은 아쉬움 섞인 목소리로 자신이 몇 년 전에 생각했던 아이디어가 이렇게 저렇게 실용화되어 대 성공을 거두었다고 이야기하곤 한다. 아, 그때 그걸로 어떻게 잘 해 보는 거였는데 하는 수 많은 후회들. 그것은 정말 아무 의미도 없이 허공으로 흩어지고 있는 각자의 시간 외에는 아무 것도 의미하지 않는다. 머릿속에 백일몽처럼 스쳐 지나간 수 많은 아이디어들 중 어느 하나라도 누군가와 공유하고, 머릿속에서라도 논리적으로 시험해 본 적이 있는가? 시도해 보지 않았다면 멋져 보이는 아이디어라는 것이 처음에는 얼마나 공허한지를, 그것을 현실 세계까지 데려오는 데 얼마나 많은 노력이 필요한지를 모르는 것은 아닌가? 그렇다면 그 노력을 인정할 준비는 되어 있는가? 아니면 그저 부러워하고 이유 없이 시기할 따름인가?

아이디어는 실행되어야 한다. 그리고 활발한 상호작용을 통해 끊임없이 개선되고 조정되어야 한다. 마지막으로 그 노력이 정당하게 인정받거나 비평받아야 한다. 이 세 단계 없는 백일몽과 술자리의 잡담은 우리 현실을 풍족하게 만들어 줄 리 만무하다.

나는 종종 생각한다. 내가 지금 하고 있는 일들이 어쩌면 정말 수십억 인류의 행복을 앞당기는 데 도움이 되고 있다고. (훌륭한 소프트웨어는 한 나라의 IT 환경을 더 빨리 개선할 수 있도록 돕는다.) 아니면 적어도 지금도 밤샘을 하고 있을 수천 수만의 개발자들의 환경을 한 걸음 한 걸음 개선해 나아가고 있다고.

컴퓨팅 환경을 개선하고자 하는 이런 작은 노력들이 얽히고 섥혀 이론에 불과했던 RDBMS , Garbage Collection, Common Language Runtime 등 수 많은 개념이 구현되었다. 자꾸만 생기는 비슷한 문제를 해결하기 위해 미들웨어도 탄생했다. 디자인 패턴이라는 책이 세상을 뒤흔들었다. 여러분은 언제까지 각개격파만 하고 Boilerplate 에만 의존할 것인가? 지금 우리에게 당면한 공통된 문제는 무엇인가? 내가 무엇을 해결할 수 있는가? 나의 능력을 어떻게 하면 전 인류와 공유할 수 있을까? 그런 고민과 사명감이 우리를 우리의 아이디어에 헌신하게 만들고, 우리 스스로의 힘을 넓히고, 희열 넘치는 성공을 불러온다.