공개소프트웨어의 등장 배경 : 공개소프트웨어(OSS, Open Source Software)는 소프트웨어가 하드웨어인 컴퓨터와 분리되어 상품화 되어가는 과정에서 반작용적으로 등장한 개념이다. IT 역사의 시간을 거슬러 올라가면 소프트웨어는 컴퓨터 등장 이후 하드웨어에 부수적으로 뒤따르는 존재로 등장했다. 1970년대까지만 해도 소스코드 프로그래밍한 사람 이외에도 필요하다면 소스코드를 확보하는 것이 불가능한 것만은 아니었다. 그러나 소프트웨어가 독립적으로 상품성이 있음에 눈뜨게 된 이후 소프트웨어는 산업으로써의 길을 걷는다. 이 시기 미국의 저작권법도 이러한 방향으로 개정되었다. 상업화되는 과정에서 소스코드는 기업의 영업비밀이자 생명줄이 되어 철저히 비공개화 된다. 실제 오늘날 우리가 구매하는 것은 소프트웨어의 실체라기보다는 소프트웨어를 제한적으로 사용할 수 있는 권리를 구매하는 것일 뿐이다. 최근 삼성전자와 애플이 스마트폰 관련 지적재산권으로 세기의 소송을 벌이고 있음에서 보듯이 IT산업분야에서 지적재산권은 기업의 독점적 지위를 높이고 시장을 독차지 할 기회를 제공하기도 하지만 IT산업의 전반적인 기술혁신을 가로막는 장애물로 작용하기도 한다. 소프트웨어 분야에서는 이미 상용화의 길을 걷기 시작한 초기부터 이에 대한 우려의 시선이 있었다고 할 수 있다.
소프트웨어가 상업화되어가면서 소스코드 비공개로 전환되는 것에 대한 반발로 자유소프트웨어 운동이 일었는데 리처드 스톨만(Richard Stallman)의 주도로 1983년 GNU프로젝트가 시작되었고 1984년에는 자유소프트웨어재단(FSF, Free Software Foundation)이 설립된다. 오늘날 지적재산권을 상징하는 의미의 '카피 라이트(Copy Right)'에 반대적인 입장인 '카피 레프트(Copy Left)' 운동의 핵심이면서 공개소프트웨어 라이선스의 대표격인 일반공중사용허가서(GPL, General Public License)는 1989년에 발표된다. GNU 프로젝트는 컴파일러, 편집기, 디버거, 빌드 도구 등 프로그래밍과 컴퓨터 운영에 필요한 다양한 도구를 개발하면서 진행되다가 실질적인 결실은 리누스 토발즈(Linus Torvalds)의 리눅스 커널과의 결합에 의해 완성된다. 리눅스 커널은 1994년 1.0버전이 출시되면서 상업용 운영체제와 경쟁 가능성을 보이게 된다.
한편 공개소프트웨어 개발 모델의 강점을 역설하는 최초의 글은 에릭 레이먼드(Eric Raymond)가 1997년 발표한 ‘성당과 시장(The Cathedral and the Bazaar)’이다. 성당 모델은 상용소프트웨어 개발 모델에 비유되며 시장 모델이 다수의 개발자가 참여할 수 있는 공개SW개발 모델에 비유된다. 다수의 사람에 의해 버그를 잡아낼 가능성이 높기 때문에 시장 모델이 우수한 개발 모델이라는 주장이 담겨 있다. 공개소프트웨어에 대한 정의는 '공개(Open)'에 담긴 의미를 정의하는 것이기도 하다. 공개의 실체가 소프트웨어의 본질인 ‘소스코드’이고. 공개되었다는 상태는 누구나 사용할 수 있다는 것을 의미한다. 컴퓨터 하드웨어 상에서 동작하는 프로그램이 상품으로 변화되면서 소프트웨어라 불리기 이전인 프로그램으로 불리는 시대로 되돌아가는 것이라고 볼 수도 있다. 자유소프트웨어의 ‘자유(Free)’와 공개소프트웨어의 ‘공개(Open Source)'는 그 접근에 있어 다소 상이하던 시기가 있어 나뉘어 불리기도 했으나 최근에는 FOSS(Free & Open Source Software)로 지칭되면서 양자가 갖는 특징을 포괄하는 방향으로 안착하고 있다.
자유라는 의미는 비용을 지불하지 않는다는 의미보다는 소스코드에 대한 변경 등의 접근권한이 최초 제작자와 동일하게 누구에게나 주어진다는 의미가 더 강하다. 이로 인해 소프트웨어 상용화의 여지가 없어 보인다. 실제 자유소프트웨어 운동은 소프트웨어의 상용화를 반대하기도 했기 때문에 적절한 표현이었을 수도 있다. 자유라는 표현이 갖는 무비용의 인식을 바꾸기 위해 레이몬드는 ‘오픈소스’라는 표현을 사용하게 되는데 이것을 국내에서는 공개소프트웨어로 칭하게 된다. 이로써 공개소프트웨어는 소스코드라는 실체를 대상으로 정의할 뿐 비즈니스 모델에 대해서는 상업성을 가질 여지를 남긴다. 물론 오픈소스라는 표현이 등장하기 이전에 이미 1994년에 레드햇은 설립되었고 커널 1.0 기반의 리눅스를 활용하여 비즈니스를 시작했기 때문에 어쩌면 ‘자유’와 ‘오픈소스’의 구분은 처음부터 큰 의미가 없는 헤프닝이라고 봐도 좋을 듯하다.
정리하자면 공개소프트웨어는 소프트웨어의 내용을 프로그래밍 언어로 나타낸 ‘소스코드’를 공개하여 누구나 개량·재배포할 수 있는 소프트웨어이다. 이에 대해 좀 더 상세하게 체계를 세운 정의로 OSI(Open Source Initiative)에서 제시하고 있는 다음의 10가지 조건으로 공개소프트웨어의 정의를 대신하고 있다.
① 자유 배포(Free Redistribution)
② 소스코드 공개(Source Code Open)
③ 2차적 저작물(Derived Works) (허용)
④ 소스코드 수정 제한(Integrity of The Author's Source Code)
⑤ 개인이나 단체에 대한 차별 금지 (No Discrimination Against Persons or Groups)
⑥ 사용 분야에 대한 제한 금지 (No Discrimination Against Fields of Endeavor)
⑦ 라이선스의 배포 (Distribution of License)
⑧ 라이선스 적용상의 동일성 유지 (License must not be specific to a product)
⑨ 다른 라이선스의 포괄적 수용 (License must not contaminate other software)
⑩ 라이선스의 기술적 중립성 (License must be Technology-Neutral)
이 10가지 조건은 다양한 공개소프트웨어 라이선스를 결정하는 기준이 되기도 하므로 공개소프트웨어 라이선스 전반에 걸쳐 있는 철학이라고 이해할 수도 있겠다.
- 출처 : 공개소프트웨어 백서, 2012