본문 바로가기
기타 IT 정보

소프트웨어 라이선스 정리

by minimax95 2020. 6. 3.

이번 포스팅에서는 소프트웨어 개발에 필요한 라이브러리 적용 시 고려해야 할 라이선스에 대해 알아보겠습니다.

 

라이선스란 무엇일까요?

소프트웨어는 저작권에 의해 자신이 만든 소프트웨어를 다른 사람이 사용하지 못하게 하고 자신만이 사용할 수 있는 권리를 가지게 되며, 원칙적으로 이러한 권리자만이 소프트웨어를 사용, 복제, 배포, 수정할 수 있습니다.

이들 권리자가 다른 사람에게 일정한 내용을 조건으로 특정 행위를 할 수 있는 권한을 부여할 필요가 있는데, 이와 같은 권한을 '라이선스(License, 이용허락권)'이라고 합니다.

 

소프트웨어 라이선스는 소프트웨어 자체에 대한 소유권과는 별개의 개념으로 소프트웨어를 '사용할 수 있는 권리'를 말하며 저작권자로부터 일정한 범위와 조건 안에서 소프트웨어를 사용할 수 있도록 허락받는 것을 말합니다.

그럼 오픈소스 SW 라이선스란 무엇일까요?

일반 상용 소프트웨어와 마찬가지로 오픈소스 SW에도 저작권 등 지적재산권이 존재하며 권리자의 허락없이 함부로 사용 시 소송 위험이 있습니다. 차이점은 많은 사람들이 자유롭게 사용할 수 있도록 광범위한 라이선스를 부여하여 사용자들에게 사용에 대한 권리뿐만 아니라 마음대로 복제 및 배포할 수 있도록 하고, 소스코드까지 제공하여 마음대로 수정할 수 있도록 허락한다는 차이점이 있습니다. 다만 상용 소프트웨어처럼 로열티를 요구하지 않으며 대신 지켜야 할 의무사항을 요구할 뿐이지요.

아래의 표는 오픈소스 SW 라이선스 종류와 분포를 나타내고 있습니다.(OLIS 제공)

 

그럼 라이선스 종류별 세부 내용에 대해 알아보겠습니다.

 

1. Apache License

 아파치 라이선스는 아파치 소프트웨어 재단이 자신의 SW에 적용하기 위해 자체적으로 만든 라이선스로 소스코드 공개 의무 같은 의무사항은 없지만, 아파치 라이선스 소스코드를 수정해 배포하는 경우 아파치 라이선스 버전 2.0을 꼭 포함시켜야 하며 아파치재단에서 만든 소프트웨어임을 밝혀야 합니다.

적용 사례로는 안드로이드(v2.0), 하둡(v2.0) 등이 있습니다.

 

2. GPL {GNU(Gnu is Not Unix) General Public License}

 자유 소프트웨어 재단에서 만든 라이선스로 GNU 프로젝트로 배포하는 소프트웨어(Emacs, GNU 디버거(GDB), GNU 컴파일러 모음(GCC) )에 적용하기 위해 리처드 스톨만이 만들었습니다. 

 가장 큰 특징은 자유소프트웨어 재단답게 가장 강력한 제약 조건을 포함하고 있는 카피레프트 조항으로 GPL 프로그램은 어떤 목적으로도, 어떤 형태로든 사용할 수 있지만 사용하거나 변경된 프로그램을 배포하는 경우 무조건 동일한 라이선스 즉, GPL로 공개해야만 합니다.

 적용 사례로는 모질라 파이어폭스(v2.0), 리눅스 커널(v2.0), (v2.0), 마리아DB(v2.0), 워드프레스(v2.0) 등이 있습니다.

 

3. GNU Affero GPL(AGPL)

 GPL을 기반으로 만든 라이선스로 버전 1, 2는 아페로가, 가장 최신 버전인 버전 3은3 자유 소프트웨어재단에 의해 개발되었습니다. 수정한 소스코드를 서버에서만 사용하는 개발자가 그 프로그램을 배포하지 않을 경우 사용자는 소스코드를 가질 수가 없는 문제를 해결하기 위해 마련되었지요. 

 서버에서 프로그램을 실행해 다른 사용자들과 통신하면, 실행되고 있는 프로그램의 소스코드를 사용자들이 다운로드할 수 있게 해야 한다는 독특한 조항을 담고 있습니다. 적용 사례는 몽고몽고 DB(v3.0) 등이 있습니다.

 

4. GNU Lesser GPL(LGPL)

 자유 소프트웨어 재단의 강력한 철학이 담긴 GPL의 카피레프트 조항을 보완하기 위해 만든 라이선스로 GPL은 단순히 소프트웨어를 사용하기만 하더라도 해당 소스코드를 GPL로 공개해야 하는 부담감 때문에 상용 소프트웨어로 쓰기 부담스럽다는 단점이 있었습니다. 이에 비해 LGPL은 좋은 자유 소프트웨어 제품이 더 많이 쓰이고 표준이 되도록 유도하기 위해 단순한 라이브러리·모듈 링크를 허용한 라이선스로 만들었습니다. 원래는 한정된 라이브러리에만 적용하려는 의도로 ‘Library GPL’이라는 이름을 붙였으나, 모든 라이브러리에 적용된다는 오해로 인해 Lesser GPL’로 변경되었습니다.

적용 사례는 모질라 파이어폭스(v2.1)가 있습니다.

 

5. MIT License

 MIT 라이선스는 미국 매사추세츠공과대학교(MIT)에서 해당 대학 SW 공학도들을 돕기 위해 개발한 라이선스로 라이선스와 저작권 관련 명시만 지켜주면 되는 라이선스입니다. 가장 느슨한 조건을 가진 라이선스 중 하나로 꼽힙니다.

적용 사례로는 부트스트랩 , Angular.js, Backbone.js, jQuery 등이 있습니다.

 

6. Artistic License

 프로그래밍 언어를 사용하던 래리 월이 표준 펄 기능을 위해 만든 라이선스입니다. 이 단어의 어원은 문학에서 문법상 틀린 표현이라도 시적인 효과를 위해 허용한다는 걸 의미하는 Articstic License'(시적 허용)를 참조해 만들어졌습니다.

 적용 사례로는 NPM(Node Package Manager)(v2.0)가 있습니다.

 

7. Berkeley Software Distribution(BSD) License

 버클리의 캘리포니아대학에서 배포하는 공개 SW 라이선스입니다. BSD 자체가 공공기관에서 만들어낸 것이므로 공공의 몫으로 돌려주자는 의미가 강하므로 라이선스 자체에는 아무런 제한 없이 누구나 자신의 용도로 사용할 수 있습니다.

라이선스 및 저작권 표시 조건 외엔 제약이 없는, 굉장히 자유로운 라이선스 중 하나입니다.

적용 사례로는 Nginx(The BSD 2-Clause License)가 있습니다.

 

8. Mozilla Public License(MPL)

 모질라 공용 허가서는 과거 넷스케이프 웹브라우저의 소스코드를 공개하기 위해 개발된 라이선스입니다.

초기 1.0버전은 넷스케이프 커뮤니케이션의 변호사였던 밋첼 베이커가 작성했고 1.1과 2.0버전은 모질라재단이 작성하였습니다. MPL의 특징은 소스코드와 실행파일의 저작권을 분리했다는 점으로 수정한 소스코드는 MPL로 공개하고 원저작자에게 수정한 부분에 대해 알려야 하지만, 실행파일은 독점 라이선스로 배포할 수 있습니다. 즉 사용한 MPL 소프트웨어와 수정한 MPL 소프트웨어에 대한 공개 의무만 가지며, 별도의 소스코드와 실행파일은 독점 라이선스를 가진다는 특징이 있습니다. 적용 사례는 모질라 파이어폭스(v1.1), 모질라 썬더버드(v1.1)가 있습니다.

 

이밖에도 다양한 라이선스가 있으며 그중 재미있는 라이선스로 'Beerware'는 허락 조건이 맥주 사주기로 제약조건이 가장 낮은 라이선스도 있습니다. 믿거나 말거나죠......

 

이상 라이선스에 대해 정리해 보았습니다.

감사합니다.

 

댓글