옐그's 코딩라이프

[TOPCIT][01] XIII. 오픈소스 소프트웨어 동향 (에센스 정리 요약) 본문

TOPCIT

[TOPCIT][01] XIII. 오픈소스 소프트웨어 동향 (에센스 정리 요약)

옐그멍이 2023. 3. 26. 21:20

학습 목표

1. 오픈소스 소프트웨어의 개념과 라이선스에 대하여 설명할 수 있다.

2. 오픈소스 소프트웨어 라이선스 준수사항을 이해하고 활용할 수 있다.

 

 

핵심 키워드

- 오픈소스 소프트웨어 개념, 오픈소스 소프트웨어 라이선스

- 오픈소스 소프트웨어 라이선스 준수사항

 

01 오픈소스 소프트웨어 개념

오픈소스 소프트웨어 정의

- 사용하기 위한 라이선스 비용이 없으며 소스코드가 공개되어 있어 제작자의 권리르 지키면서 누구나 자유롭게 사용, 복제, 수정할 수 있는 소프트웨어

- 1980년대 소프트웨어에 제한을 가하려는 흐름에 반대하고 자유 사용의 권리를 지키기 위하여 리차드 스톨만이 자유소프트웨어재단을 설립하여 자유소프트웨어 운동을 전개한 것이 기원이 됨

- 대표적인 오픈소스 소프트웨어는 서버 소프트웨어 아파치웹서버, PHP, MySQL, Hadoop, Openstack 등과 개발도구 Eclipse, gdb 등과 운영체제 Linux 등이 있음

 

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

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

- 대표적인 라이선스로는 GPL(General Public License), LGPL(Lesser Gerneral Public License), BSD(Berkeley Software Distribution), MPL(Mozila Public License) 등의 라이선스가 있음

 

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

오픈소스 소프트웨어 라이선스 적용범위

- 내부에서 사용시에는 의무사항의 적용을 받지 않음

- 외부에 배포 및 판매할 경우에 한하여 의무사항을 적용받음

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

- 무료 이용가능

- 배포 허용가능

- 소스코드 취득 가능

- 소스코드 수정가능

 

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

1.GPL(GNU General Public License) 2.0 

- 현재 가장 많은 오픈소스 소프트웨어가 채택하고 있는 라이선스

- 자유소프트웨어재단에서 만들고 배포됨

- 다른 오픈소스 소프트웨어 라이선스에 비해 매우 엄격한 편임

 

2.GPL 3.0 

- GPL 2.0과 비슷하지만 DRM 관련 내용, 소프트웨어 특허문제, 양립성 문제 등이 추가됨

 

3.LGPL(Lesser General Public License)

- 일부 라이브러리에 대해 GPL보다 소스코드의 공개정도를 다소 완화된 형태로 사용할 수 있도록 만든 라이선스

- GPL과 같은 엄격한 라이선스를 적용하게 되면, 라이브러리를 사용하는 소프트웨어의 소스코드를 공개해야하기 때문에 사용을 꺼려하는 상용소프트웨어 개발자들을 위한 라이선스

 

4. BSD(Berkeley Software Distribution) License

- 소프트웨어의 소스코드를 공개하지 않아도 되는 대표적인 공개 소프트웨어 라이선스

- BSD라이선스로 배포되는 프로젝트가 미국정부에서 제공한 재원으로 운영되었기 때문에 허용범위가 넓음

 

5. Apache License

- 아파치 웹서버를 포함한 아파치 재단의 모든 소프트웨어에 적용되는 라이선스로 BSD라이선스와 비슷하여 소스코드 공개 등의 의무가 발생하지 않음

- "Apache"라는 이름에 대한 상표권을 침해하지 않아야 함

 

6. MPL(Mozila Public License)

- Netscape 브라우저의 소스코드를 공개하기 위해 개발된 라이선스로 공개하여야 할 소스코드의 범위를 좀 더 명확하게 정의함

- MPL 코드 자체의 수정부분은 다시 MPL에 의해 배포가 필요함

- 다른 코드와 결합되거나 새로운 코드가 작성된 경우에는 공개하여야 할 의무가 발생하지 않음

 

오픈소스 소프트웨어 라이선스 활용의 장단점

장점

- 웹 상에서 무료로 다운로드 및 소스코드 수정, 재배포가 가능한 특징으로 초기 개발 비용이 적게 요구됨

- 최신 기술 정보 및 문제점과 해결책이 커뮤니티를 통해 공유되므로 기술발전 속도가 빠르고 유연한 개발이 가능

- 주로 오픈 포맷 또는 프로토콜을 사용하기 때문에 서로 다른 소프트웨어 간 상호 연동성이 보장됨

- 개발과정에서 수많은 우수한 개발자가 참여하기 때문에 독점 프로그램에 비해 비교적 안정적

 

단점

- 상용 프로그램에 비해 체계적인 문서를 갖고 있지 못한 단점이 있음

- 자발적 참여를 바탕으로 웹 상에서 자유롭게 개발되는 특징으로 개발 로드맵이 체계적이지 않음. 오픈소스 소프트웨어 활용을 위해서는 해당 소프트웨어의 향후 개발 계획 등의 고려가 필요함

- 일반적으로 특허에 대한 사용료 없이 배포할 것을 요구함

 

728x90