오픈 소스 소프트웨어
(이하 오픈 소스)는 소스 코드를 공개해 누구든지 코드를 보고 사용할 수 있는 라이선스를 가진 소프트웨어를 의미합니다.
1985년, 리처드 스톨만
은 소프트웨어의 정보(소스 코드)를 누구나 자유롭게 공유하고 볼 수 있도록 자유 소프트웨어 운동
을 시작했습니다. 자유 소프트웨어 운동
를 시작하며 GNU(GNU is not Unix)프로젝트를 발표했습니다. 이 프로젝트는 초기 개발의 협업 정신의 부활, Copyleft를 선언하는 내용이 있습니다.
copyleft
는 저작권인 copyright
에 대항해 만들어진 단어로, 누구든지 자유롭게 코드를 실행/복사/수정/배포 할 수 있으며, 아무도 그 권리를 제한할 수 없다라는 개념입니다.
그래서 자유 소프트웨어
는 사용자가 소프트웨어에 대한 실행/복제/수정/배포에 대한 자유와 소스 코드에 접근하여 학습과 수정/개선에 대한 자유를 의미하고 있습니다.
오픈 소스
는 자유 소프트웨어
와 비슷하다고 생각 될 수도 있지만, 오픈 소스
는 소스 자체를 중시하고 자유 소프트웨어
는 소프트웨어를 중시한다는 점에서 조금은 다릅니다.
오픈 소스
는 특정한 라이선스가 주어지고, 그 라이선스에따라 원작자의 권리를 지키며 소스 코드가 공개되게 됩니다.
소프트웨어 라이선스는 다음과 같이 나뉩니다.이 중에서 비FOSS(Free-Open Source Software) 라이선스
는 오픈 소스가 아니니 넘어가기로 하고 FOSS 라이선스
밑의 것들을 알아보겠습니다.
반환 의무
란 해당 라이선스가 포함된 소스 코드를 이용할 때 반드시 코드를 공개해야 하는 것을의미합니다.
그러면 위 그림에 소개된 라이선스들 중 주요한 라이선스 몇 가지만 알아보겠습니다.
MIT
라이선스는 라이선스와 저작권만 명시하면 됩니다. 상업적 이용, 배포/수정, 개인적 사용과 특허 출원 및 2차 라이선스까지 모두 허용합니다. 동시에 소스 코드 공개 의무도 없기에 가장 자유로운 라이선스입니다.
Apache
라이선스는 라이선스와 저작권, 변경 사항을 명시해야합니다. 이 외에선 MIT와 동일하게 이용이 가능합니다.
BSD
라이선스는 라이선스, 저작권을 명시하면 됩니다. 상업적, 배포/수정, 특허, 개인적 사용 모두 허용되지만 2차 라이선스는 허가되지 않습니다.
LGPL
은 코드를 라이브러리 이용 외 목적으로 사용할 경우 소스 코드를 공개해야하는 라이선스입니다. 라이선스와 저작권, 변경사항을 명시해줘야합니다. 상업적, 배포/수정, 특허, 개인적 사용을 허가하고 있습니다.
GPL
은 코드를 수정하거나, 사용해서 소프트웨어를 만들면 소스 코드를 GPL
로 공개해야합니다. 이 역시 라이선스와 저작권, 변경사항을 명시해야합니다. 이 역시 상업적, 배포/수정, 특허, 개인적 사용을 허가하고 있습니다.
오픈 소스 소프트웨어
는 소스코드를 얻고 사용하는데엔 문제가 없습니다. 하지만 그에 딸려오는 라이선스를 잘 확인하고 라이선스 별로 존재하는 요구사항/허가사항에 맞춰서 이용하는 책임감 있는 개발자의 모습이 필요합니다.