Opensource
오픈소스 소프트웨어란
오픈소스 소프트웨어 란 소스코드가 공개되어 있는 소프트웨어를 말하며,일반적으로 자유롭게 사용, 복제, 배표, 수정할 수 있습니다. 오픈소스 소프트웨어의 대표적인 예로는 Linux 커널, 아파치 웹서버, FireFox 웹 브라우저, MySQL 등이 있습니다.
오픈소스 소프트웨어 라이선스 배경
1980년대 소프트웨어 시장이 커짐에 따라, 지적재산권 및 라이센스 계약을 통해 소프트웨어의 사용, 복제, 배포, 수정을 제한하려는 움직임이 나타나게 되었습니다. 이러한 움직임에 반대하며 Richard Stallman은 FSF(Free Software Foundation)을 설립하고 자유(Free)소프트웨어 운동을 시작하였습니다. 이는 Free Software 운동이었지만 자유(Free)라는 단어가 사용자들에게 '무료'로 인식되고, 엄격한 조항 때문에 많은 기업들이 참여를 꺼려하자 에릭 레이먼드, 브루스 페런등은 '오픈소스(Open Source)' 라는 새로운 용어를 제안하고 사용하기로 시작하였습니다.
1998년, OSI(Open Source Initiative)가 결성되고, 오픈소스 소프트웨어가 활성화되면서 지금까지 여러 오픈소스 라이센스가 사용되고 있습니다. OSI는 해당하는 라이센스의 최소한의 기준을 정의(Open Source Definition, OSD)해놓고 이정의에 따라 인증, 관리 및 촉진시키는 일을 하고 있습니다.
오픈 소스란
어떤 소프트웨어 프로그램을 개발하는 과정에 필요한 소스 코드나 설계도를 누구나 접근해서 열람할 수 있도록 공개하는 것입니다. 보통 소스가 공개된 소프트웨어를 '오픈 소스 소프트웨어' 라고 하고, 소프트웨어 말고도 개발 과정이나 설계도가 공개되는 경우 하드웨어에도 오픈 소스 모델이 적용 할 수 있으며, 글꼴과 같은 데이터에도 오픈 소스 개발 모델이 적용되는 경우가 있습니다. 오픈 소스를 채택했다고 해서 무료 프로그램일 필요는 없습니다. 오프소스 프로그램을 유료 프로그램으로 판매도 가능합니다.
단순히 소스를 공개만 하는 것이 아니라, 이를 2차 창작하는 것을 허용하기도 하고, 나아가 조건 없이 상업적 용도로까지 사용할 수 있게 하는 경우가 있습니다. 물론 공개만 하고 2차 창작이 안되는 경우도 있기는 하지만 이 경우는 보통 '오픈 소스' 라고 부르지 않습니다.
오픈소스 소프트웨어 라이선스
오픈소스 소프트웨어 라이선스에대해서 일반적으로 사용하는 라이선스와 사용할 때 주의해야하는 라이선스에 대해서 간략하게 정리해보았습니다.
일반적으로 사용하는 라이선스
BSD
- 소스코드를 공개하지 않아도 되는 대표적인 라이선스
- 저작권 명시(고지문)
MIT
- MIT에서 해당 대학의 SW 공학도들을 돕기 위해 개발한 라이선스
- 라이선스 및 저작권 명시(고지문)
Apache
- 아파치 재단의 모든 SW에 적용되는 라이선스
- BSD 의무사항 + 특허권(GPL2.0으로 배포되는 코드와는 결합 불가능)
주의해야 할 라이선스
LGPL
- 수정한 소스코드 LGPL로 공개 (Static Linking으로 사용하면 전체 코드 공개)
- 라이선스 및 저작권 명시
GPL
- GPL 소스코드를 이용한 소프트웨어 전체 GPL로 공개
- 라이선스 및 저작권 명시
AGPL
- AGPL 소스코드를 이용한 소프트웨어 전체 AGPL로 공개. 웹서비스 포함!
- 라이선스 및 저작권 명시
#include <isotream>
using namespace std;
int main(void) {
cout << "This is opensource";
return 0;
}
제가 이렇게 간단하게 c++로 코드를 작성해 보았는데요. 이를 라이선스 적용을 시켜 Github 같은 곳에 라이선스 주의 사항에 따라 올리면 이것도 오픈소스가 된답니다!!