CS(Computer Science)

오픈소스 소프트웨어(OSS)

jwns 2022. 3. 9. 21:59

오픈소스 소프트웨어 란?

- 수정 가능한 소스코드와 함께 배포되는 컴퓨터 소프트웨어

 

우리가 잘 알고 있는 C, C++, LINUX, MYSQL, REACT, Apache, PHP, PYTHON 등등

많은 프로그램들이 오픈소스 기술 기반으로 개발되었다.

 

많은 개발자들이 오픈소스를 활용하여 개발하고, 오픈소스가 열려 있기에 협업, 실력 향상 등 많은 부분에서

편리성과 효율성이 높아져 가고 있다.

 

오픈소스란 결국엔 다른 사람이 만든 소스를 오픈하여 많은 사람이 사용 할 수 있게 제공 한다는 것인데, 오픈소스도

저작권자에 의한 라이선스 규정이 있을 수 있으며, 이를 준수해야 한다.

 

즉, 오픈소스 라이선스는 우리가 오픈소스를 사용하는데 저작권 같은 느낌이라고 생각하면 될 것 같다.

 

 

오픈소스 소프트웨어 라이선스

- 오픈소스 소프트웨어 개발자와 이용자 간에 이용 방법 및 조건의 범위를 명시한 계약

 

특징

- 소스코드 변경시에 변경한 내용과 방법이 포함되어야 함

- 수정된 소프트웨어는 무료로 제공되거나/ 제공되지 않을 수 있다.

 

 

OSS 라이선스의 종류 

- GPL

- LGPL

- BSD

- Apache

- MIT

...

가장 대표적인 5가지 라이선스 이다.

다섯가지 라이선스의 특징에 대해 달달 외우기 보다는 간단하게 정리하는 식으로 쓰겠다.

대표적인 5가지 라이선스 종류가 있다는 정도만 알면 된다.

 

GPL

- GPL 코드 일부라도 사용하여 개발된 프로그램은 GPL 적용을 받는 라이센스

(GPL 유료판매 가능하지만, 외부 공개/배포 시 전체 소스코드 무료 공개해야 함)

- 배포하려는 프로그램 특정 부분이  GPL 코드에서 파생된 것이 아닌 독립적인 저작물인 경우?

(독립 저작물의 개별적인 베포에는 GPL 적용 X,

프로그램 전체 배포에는 GPL 적용)

 

ex) 리눅스 커널, 모질라, Git, 워드프레스 등

 

LGPL

- GPL 보다 훨씬 완화된 조건의 공개SW 라이선스

LGPL 코드를 static , dll 라이브러리를 사용한 프로그램을 개발하여 판매/배포 하는 경우?

-> 소스코드 공개하지 않아도 됨, LGPL 코드를 사용했음을 명시만 하면 됨

LGPL 코드를 수정하거나 파생된 라이브러리를 개발/ 배포의 경우

- 전체 코드를 공개해야 함

 

 

BSD

- 수정가능, 수정본의 재배포 가능

- 소스코드 공개 의무 없음

- 라이센스 관련 정보를 고지해야 함

ex) Nginx 웹서버

 

MIT

- 라이선스와 저작권 관련 명시만 하면 됨

- 소스코드 공개 의무 없음

ex) 부트스트랩, Backbone.js, jQuery

 

Apache

- 수정, 배포의 경우 Apache 라이선스 명시

- 소스코드 공개 의무 없음

ex) Android, Hadoop