내가 프로그래밍을 처음 공부하던 시기였던 97년 즈음에 자료를 구할 곳이라고는 책과 PC통신 (하이텔, 나우누리), 인터넷(넷츠고를 통한)이 다였다.
그 즈음해서, 자료를 구하기한 쉬운 문제가 아니었고, 그 자료도 소수의 훌륭한 개발자 분들이 공개해주신 자료에 근거했고, 꽤나 다수는 대학교 교제의 틀을 크게 벗어나지 못했다.
공개되는 자료에 온전한 모듈이나, 완성된 프로그램으로써의 자료는 극히 드물었으며, 다양한 기능에 대한 코드를 많이 보유하고 있는 것이 개인의 경쟁력으로 여겨지던 시기라고도 할 수 있었다.
꽤나 다수의 기능은 습작이나, 샘플 코드에 다름이 없었음에도 그 교류는 흔치 않았는데, 남들도 공유하지 않는데 공유하면 나만 손해라는 생각이 어느정도 국내 개발자 사이에서 형성 되었던 것은 아닌가 싶다.
해외로 눈을 돌리면 애초에 리눅스가 오픈 소스였기에, 관련 코드 다수는 공개되어 있었고, sourceforge 등지에서의 코드 공유는 이루어지고 있었으나, 국내에서 자유롭게 접근하고 사용할 정도는 아니었다. 특히나 국내 개발자들에게 공감대가 크지 않았으므로, 가져와서 사용하는 경우는 존재했어도 오픈 소스 라이선스에 맞게 변형한 코드를 재 공개 해야 되는 케이스에서 마저, 그렇지 않은 경우도 종종 봤다.
이는 저작권 의식 부족과, 코드 공유는 손해라는 인식이 합쳐진 문제였다는 생각이 든다.
정확히 언제쯤 인지는 모르겠으나, 국내에서도 github를 기반으로한 코드 공유 움직임이 커졌다.
웹쪽에서 특히 spring이나 rails, django, node.js 같은 오픈 소스 기반 웹 프레임워크와 그 프레임워크들에서의 패키지가 github에 공개되어있는 만큼 오픈 소스로 접하게 되는 모듈들에 고마움을 느끼면서 그에 대한 보은(?)하려는 움직임으로 변한 걸지도 모르겠다는 생각이 들 만큼, 지금은 꽤나 많은 개발자 분들이 github를 이용하고 있음을 느낄 수 있다.
바퀴를 재발명하는 것이 합리적이지 않고, 잘 돌아가고 뛰어난 스펙의 자동차를 혼자 만드는 일은 즐겁기 보다는 고통과 인고의 시간이라는 것을 모두가 알고 있는 것처럼, 다른 사람이 작성한 기능을 니즈에 맞게 가져다 쓰면서, 자신이 필요한 커스텀 로직에 집중해 구현함으로써 차별화와 목적 달성을 동시에 이루는 것. 그것이 합리적이라는 공감대가 형성 된 것이라고 본다.
오픈 소스로 큰 모듈이나 차별화된 기능, 프로덕트로써 만드는 모든 코드를 공개하는 것은 당연히 어렵다.
하지만 개인적인 연구 주제나, 공부하는 자료, 또는 다른 오픈소스에서의 작은 아쉬움을 개선한 코드는 공유 했을 때에 얻는 것도 많다고 생각한다.
Pull request가 받아들여 졌을 때의 짜릿함, 내 프로젝트에 별이 많이 늘어났을 때의 짜릿함은 개발자로서의 자기 증명의 수단 중 하나라고 생각한다.
이런 저런 이유로 파이썬 보급률이 국내에 크게 높아진 걸 느낄 수 있다. 그리하여, 여러 유틸리티성 프로젝트나, 개인의 고찰이 묻어나는 습작들을 다수 접할 수 있는데, 꽤나 많은 인사이트도 얻을 수 있었고, 배울 것도 많았다.
직접 코드를 공개하는 것이 아직 두렵다면 시작은 오픈 소스 코드 읽고 배우기부터라도 시작하는 것은 어떨까 싶다. 그렇게 시작하고 나면, Pull Request를 통한 기여, 작은 샘플 코드 공개를 통한 기여, 많은 이에게 보탬이 될 모듈 개발을 통한 기여로 이어질 수 있게 되고, 그를 통해 많은 프로그래머들에게 도움이 되는 개발자가 될 수 있을 것이다.