출처: http://yoon-talk.tistory.com/114 [윤디자인 블로그]
여러분, 오픈 소스가 무엇일까요? ‘요리할 때 쓰는 양념을 말하는 건가?’라고 생각하시는 분들도 있겠지만(^^;), IT 전공자 또는 컴퓨터를 사용하는 사람이라면 어디선가 한번쯤은 들어본 용어일 거예요.
‘오픈 소스(open source)’란 IT용어로, 무상으로 공개된 소스코드 또는 소프트웨어를 뜻하는데요. 오늘은 최근 들어 IT업계에서 중요한 이슈로 떠오른 오픈 소스에 대해 알아보는 시간을 가져보도록 하겠습니다.
오픈 소스가 뭐지?
먼저 위키백과에서 오픈 소스의 정의를 찾아볼까요?
오픈 소스(open source/OSS) – 위키백과 (바로 가기)
오픈 소스는 소프트웨어 혹은 하드웨어 제작자의 권리를 지키면서 원시 코드를 누구나 열람할 수 있도록 한 소프트웨어 혹은 오픈 소스 라이선스에 준하는 모든 통칭을 일컫는다. 어원에 대해서는 History of the OSI 자료에 따르면, 1998년 2월 3일에 넷스케이프 브라우저의 원시 코드에 대해 어떠한 형태로 공개할까 하는 전략회의에서 붙여진 새로운 용어라고 설명되어 있다.
<전 세계 모든 개발자가 이용할 수 있는 오픈 소스!>
리눅스(Linux) 운영체제가 대표적인 오픈 소스 사례로, 누구나 무료로 이용할 수 있는데다 공개된 코드를 기반으로 프로그램을 마음대로 변형할 수도 있는데요. 인터넷을 이용하는 다수의 기술자가 소프트웨어를 공동으로 개발할 경우, 보다 나은 소프트웨어를 단기간에 개발할 수 있다는 개념에서 추진되었답니다.
위키백과의 설명을 살펴보면, 오픈 소스는 소프트웨어뿐만 아니라 하드웨어에도 적용이 된다는 사실을 확인할 수 있습니다. 실례로 캐나다의 한 단체에서 오픈 소스로 개인용 비행기를 제작하는 프로젝트를 진행하고 있다는 기사(관련 기사 보기)도 접할 수 있어요.
오픈 소스, 아무렇게나 이용 가능할까?
소프트웨어에서의 오픈 소스는 소스코드를 자유롭게 열람하거나, 수정∙배포할 수 있으면서도 원 제작자의 권리를 지키는 것이 중요한 사항인데요. 이러한 원칙은 포괄적인 무료의 개념과는 다르게 이해해야 합니다. ‘무료=자유’라고 생각하기 쉽지만, 무료로 제공되는 오픈 소스는 몇 가지 원칙을 지켜야 하는 라이선스 입니다. 이런 원칙에 대한 표준을 ‘Open Source Initiative(바로 가기)’에서 제시를 하고 있습니다.
Open Source Initiative(OSI)에서 말하는 오픈 소스에 대한 정의에 대해서 소개해드릴게요. 라이선스 인정 요청을 받은 라이선스들을 이런 정의에 따라 검토한 후 오픈 소스 라이선스를 부여하고 있습니다.
<공개SW 활성화와 인증을 담당하는 OSI(Open Source Initiative) 홈페이지 / 출처 : Open Source Initiative 홈페이지>
1. 자유로운 재배포
오픈 소스를 이용하여 제작한 소프트웨어의 자유로운 배포를 허용해야 합니다. 그리고 사용된 오픈 소스에 대한 어떠한 비용도 받지 않아야 합니다.
☞ 이와 같은 원칙이 지켜지지 않는다면 오픈 소스를 개발하는 사람들의 개발의지가 꺾일 것이며, 이로 인해 장기적인 이익도 기대할 수 없기 때문입니다.
2. 원시 코드
오픈 소스는 원시코드(Source Code)가 포함되어야 하며, 최소의 실비만으로도 원시코드를 구할 수 있도록 하여야 합니다. 또한 원시코드는 고의로 알아보기 어렵게 만들어지지 않아야 합니다.
☞ 오픈 소스는 기본적으로 소스의 수정과 변형을 전제로 하기 때문에 최대한 이용하기 쉽게 작성되도록 노력해야 합니다.
3. 파생 저작물
개작과 파생 저작물을 허용해야 합니다. 그리고 이렇게 파생된 저작물에는 원본 오픈 소스에 적용된 라이선스를 똑같이 적용할 수 있도록 해야 합니다.
☞ 이 원칙은 1번 원칙과 비슷하게 파생 저작물 역시 빠르고 혁신적으로 발전할 수 있는 바탕이 됩니다.
4. 저작자의 원시 코드 원형 유지
바이너리(2를 기반으로 하는 숫자 체계, 컴퓨터에서 데이터를 표현하기 위해 사용됨)를 생성할 시점에서 프로그램을 수정할 목적으로 패치 파일의 배포를 허용한 경우에 한해, 변경된 원시 코드의 배포를 제한할 수 있습니다. 그러나 변경된 원시코드가 아닌 그것을 통해 만들어진 결과물의 배포는 허용해야만 합니다. 파생 저작물에 대해서는 원본 오픈 소스와 다른 이름이나, 버전을 적용하도록 할 수 있습니다.
☞ 이러한 조치는 소스코드의 원작자와 수정인의 정보를 나눔으로써 사용자가 피드백이 필요한 부분에 대한 의견을 누구에게 문의할지 명확하게 해줍니다.
5. 개인이나 단체에 대한 차별 금지
라이선스는 특정 개인이나 단체를 차별하지 않아야 합니다.
☞ 개인 또는 단체 모두 오픈 소스의 개발과 발전에 큰 보탬이 될 수 있으므로 그 누구도 차별하지 않고, 오픈 소스를 이용할 수 있어야 합니다. 일부 국가에서는 특정한 종류의 소프트웨어에 대하여 수출 금지를 하고 있지만 그것에 대한 법률을 준수해야 한다는 경고를 하는 수준에 그치고 있고, 라이선스 자체에 금지 규정을 싣지는 않고 있습니다.
6. 사용분야에 대한 차별 금지
라이선스는 소프트웨어가 특정 분야에서 사용되는 것을 금지해서는 안됩니다. 예를 들어, 영리기업이나 유전학 연구에 프로그램을 사용할 수 없다는 등과 같은 제한을 설정해서는 안됩니다.
☞ 상업적 영역에서도 오픈 소스가 사용될 수 있도록 하여야 합니다.
7. 라이선스의 배포
프로그램에 첨부된 권리는 별도의 라이선스를 적용하지 않고, 재배포를 하는 프로그램의 이용자에게도 동일하게 적용되어야 합니다.
☞ 비공개 동의를 요구하는 것처럼 간접적인 방법으로 소프트웨어를 제한하는 것을 방지합니다.
8. 특정 제품에만 유효한 사용 허가의 금지
프로그램에 첨부된 권리는 특정한 소프트웨어의 배포에 일부분일 경우, 한정적이어서는 안됩니다. 만약 배포된 프로그램의 라이선스 내에서 추출∙이용∙배포되더라도, 재배포 받은 이용자는 원본 프로그램의 라이선스와 같은 권리를 가집니다.
☞ 다른 종류의 라이선스를 방지 합니다.
9. 다른 소프트웨어에 대한 제한 금지
라이선스는 다른 라이선스를 가진 소프트웨어에 대한 제한을 포함해서는 안됩니다. 예를 들어 함께 배포되는 모든 소프트웨어가 오픈 소스 라이선스여야만 한다고 강제할 수 없습니다.
☞ 오픈 소스 소프트웨어의 배포자는 자신들의 고유한 소프트웨어 선택권이 있기 때문입니다.
10. 라이선스는 기술 중립적이어야 합니다.
라이선스의 조항은 개인적인 기술이나, 인터페이스 스타일에 국한될 수 없습니다.
☞ 이 조항은 사용 허가자와 사용자 사이에 명시적인 동의가 필요한 특별한 라이선스를 목적으로 합니다. 라이선스 동의를 클릭방식으로 강제하는 조항은 FTP 다운로드나, CD-ROM 배포 방식이나, 웹미러링(파일 동기화의 일종) 등의 방식과 충돌을 일으킬 수 있으며, 코드 재사용을 방해할 수도 있습니다. 라이선스는 웹이나, 팝업 GUI(그래픽 사용자 인터페이스)등을 지원하지 않는 환경에 대해서도 고려를 해야 합니다.
전체적으로 볼 때 오픈 소스가 지속적으로 발전할 수 있도록 강제하는 조항들로 이루어져 있습니다. 위에 소개한 조항들은 기본적인 조항들이지만 궁극적으로 지켜져야 하며, 오픈 소스가 지향하는 목표들 입니다. 이런 원칙들을 기본으로 오픈 소스 인증을 받은 라이선스들 중 주요 라이선스에 대한 비교를 표로 보여드릴게요.
- GPL : General Public License. 저작권은 개발자에게 귀속되지만 소프트웨어의 복사, 수정 및 변경, 배포의 자유를 제3자에게 허용.
- LGPL : GNU Lesser General Public License. GPL을 변형해 더 허가된 형태로서, 소프트웨어 라이브러리를 염두에 둔 것.
- MPL : 모질라 공용 허가서(Mozilla Public License). 모질라 애플리케이션 스위트, 모질라 파이어폭스, 모질라 선더버드 및 그 외의 모질라 소프트웨어들에 적용.
- BSD license : 유닉스(Unix) 의 양대 뿌리 중 하나인 버클리의 캘리포니아 대학에서 배포하는 공개 소프트웨어의 라이선스. GPL보다 훨씬 개방적인 4개항의 간단한 문구로 되어 있음.
- Apache license : 아파치 소프트웨어 재단에서 자체적으로 만든 소프트웨어에 대한 라이선스 규정. 누구나 해당 소프트웨어에서 파생된 프로그램을 제작할 수 있으며 저작권을 양도, 전송할 수 있는 라이선스 규정을 의미.
현재 OSI에서 인증을 받은 라이선스는 무려 70개이며 앞으로도 늘어날 전망입니다. 오픈 소스이기 때문에 수익성이 없을 거라고 생각하지만, 오히려 오픈 소스의 장점을 살리고 먼저 그 가능성을 선점해 오픈 소스를 활용한 기술표준을 이끌어가는 위치에 오른다면, 그 수익성은 이루 말로 할 수 없을 만큼 클 것이라 생각합니다. 오픈 소스이기 때문에 표준이 될 가능성도 충분하다고 보는데요. 이렇게 보니 앞으로는 오픈 소스가 선택이 아닌 필수가 될지도 모르겠네요. ^^
오픈 소스의 정의를 중심으로 알아보았는데요. 오픈 소스에 대한 더 자세한 정보를 확인할 수 있는 사이트 ‘공개 SW 포털(바로 가기)’과 '한국공개소프트웨어협회(바로 가기)'를 함께 알려드리면서, 글을 마치도록 하겠습니다!