우리가 인터넷을 통해 찾는 모든 정보는 누군가의 피와 땀이다. 대학시절 리포트를 제출할 수 있었던 것은 누군가가 대가없는 정보를 제공해주었기 때문이었다. 내가 컴퓨터 관련 대학원에 진학하면서 가장 큰 도움을 받은 것은 오픈소스 프로젝트다. 프로그래머들은 자기 희생을 일삼는 독특한 공유 문화를 가지고 있는데, 그 끝판왕이 바로 오픈소스다. 그들의 공유가 없었다면 나는 진즉에 학위 취득을 포기했을 것이며, 현재와 같은 소프트웨어 산업의 발달 또한 없었을 것이다.

오픈소스 소프트웨어(open source software)는 소스 코드를 공개해 누구나 특별한 제한 없이 그 코드를 보고 사용할 수 있는 오픈 소스 라이선스를 만족하는 소프트웨어를 말한다. 오픈소스 역사에 획을 긋는 사건은 리누스 토발즈(Linus Tovalds)라는 프로그래머의 등장이다. 그는 자신이 개발한 운영체제 커널을 GPL 라이선스(General Public License)로 공개했다. 이것이 그 유명한 리눅스(Linux)이다. 당시의 오픈소스는 소수 해커들만 참여하는 마이너한 문화였지만, 리눅스의 등장으로 판도가 뒤바꼈다. 누구나 소스코드를 확인하고, 수정한 코드를 보낼 수 있었다. 수정한 코드가 받아들여지면 그 사람은 컨트리뷰터(Contributor)가 되어 다음 버전에 이름이 올라갔다. 이러한 구조는 개발자들의 과시욕을 충족시켰고, 대가없는 버그 수정과 기능 추가에 매달리게 만들었다. 리눅스는 점점 더 정교해지고, 현재는 서버와 모바일에서 가장 많이 쓰이는 운영체제가 됐다.

무보수 프로그래머들이 오픈소스에 기여하는 것이 단순히 사회 공헌을 위해서만은 아니다. 오픈소스 기여는 개발자들에게 좋은 이력이 된다. 공개되지 않는 상업적 프로젝트와는 달리, 오픈소스에 대한 기여는 명확하게 기록되고 공개된다. 게다가 오픈소스에 자신이 작성한 코드가 들어갔다는 것 자체가 개발자의 실력을 입증하는 일이다. 오픈소스 소프트웨어의 높은 질이 유지되는 것은 우연이 아니다.
 
GPL은 가장 대표적인 오픈소스 라이선스지만 가장 엄격하기도 하다. GPL이 적용된 소스 코드를 수정한다면 해당 소스 코드를 반드시 공개해야 한다. 가장 유연한 것은 BSD 라이선스(Berkeley Software Distribution)이다. BSD 라이선스는 미국 정부 예산으로 운영되며, 사용상 제한이 거의 없다. 국가 재정지원을 받고 개발된 소프트웨어를 공중에 되돌려준다는 매우 바람직한 취지다.
 
국내에서 정부출연금으로 진행한 프로젝트들을 공개하는 경우는 흔치 않다. 정부가 소프트웨어 산업에 대한 투자를 하지 않는 것도, 상업적인 용도로 프로젝트를 진행하는 것도 아니다. 숨기고 싶은 결과물이 아니라면 공개하지 않을 이유는 딱히 없어 보인다. 사실 국민 세금으로 운용되는 비영리사업은 결과물 공개를 의무화해야 한다는 것이 나의 생각이다. 특히 학문 연구에 관한 것이라면 더더욱 그렇다. 오픈소스 생태계의 아름다운 성장과 같은 모습이 국내 학술계에서도 나타나길 기대한다. 
▲ 강상용(정보보안협동과정 박사과정)
저작권자 © 전대신문 무단전재 및 재배포 금지