반응형

모든 소프트웨어 코드들은 특정한 권한과 의무를 가지고 있다.

 만약 여러분들이 코드를 작성할 때 여러분들을 코드를 재사용하고 code snippets, 라이브러리, 함수들, 프레임워크들, 그리고 전체 애플리케이션들을 포함할 것입니다.

 모든 소프트웨어 코드들은 특정한 권한(rights) 그리고 지켜야할 의무(obligations)를 가지고 있습니다. 만약 여러분들이 여러분들 코드베이스에 추가할 때 말이죠.

 프리 그리고 오픈 소프트웨어 (FOSS)는 정말 말그대로 공짜입니다. 하지만 여러분들이 그것을 여러분들 마음대로 사용할 때에는 그건 공짜가 아니게됩니다. 심지어 Stack Overflow로 부터 복사한 라이센스가 없는 (unlicensed) 코드 스니펫들도 재사용을 위해 지켜야할 의무를 가지고 있습니다. 하지만 공식적으로 개발된 코드들은 보통 구체적인 소프트웨어 라이센스를 가지고 있습니다.

 

소프트웨어 라이센스 타입마다 다른점

보통 소프트웨어 라이센스 모델에 대해 5개의 타입이 있습니다.

 여기서 4개는 재사용이 가능한 예시이고, 하나는 어떤 재사용도 허락하지 않습니다.

 

1. 퍼블릭 도메인 Pulbic Doamin 타입

 가장 자유로운 타입입니다. 어떤 제한없이, 누구나 코드를 수정할 수 있고 사용할 수 있습니다. 하지만 여러분들은 항상 보안에 신경 써야합니다. 주의해야할 것은, 코드가 아무런 라이센스가 없다고해서 자동적으로 퍼블릭 도메인 타입으로 되는 건 아닙니다. (원래는 원작자한테 물어봐야합니다.) 이것은 여러분들이 인터넷에서 찾은 코드들이 포함됩니다.

 

2. GPL 타입 (Copyleft 타입)

소스코드 공개 필요 O, 동일한 라이센스 적용 O, 상업적이용 O

 (모든 걸 공유한다. 이 라이센스를 사용했다면 똑같이 이 라이센스 적용해야한다. (몰래 쓰는 건 됨))

 Copyleft 라이센스는 상호 라이센스 혹은 제한 라이센스 (reciprocal licenses 또는 restrictive licenses)로 잘알려져 있습니다. 가장 잘 알려진 copyleft 혹은 상호 라이센스의 예는 GPL입니다.

 이 라이센스는 우리가 그 라이센스를 가진 코드를 수정하고 그 소스로 기반하여 재 배포하는 걸 가능하게 해줍니다. 하지만, 우리가 같은 라이센스 하에 어떤 새로운 작업물들을 혹은 수정품들을 똑같이 배포할 때 가능합니다.

 예를 들어 컴포넌트의 라이센스가 오직 개인 용도로 무료로 사용 및 배포할 수 있다고 명시되어 있을 수 있습니다. 따라서 우리가 생성한 어떤 파생 작업물도 개인용도로 제한됩니다.

 

 회사 내에서 조용히 쓰고 있는 건 문제 안됩니다. 하지만, GPL이 들어간 제품을 팔거나 무상으로 배포를 하기 시작할 때, GPL을 명시를 해야하고, 우리가 작성한 코드들은 모두 공개해야합니다.

 

3. LGPL 타입

 LGPL의 코드로 만들어진 동적라이브러리 사용시 : 소스코드 공개 필요 X, 동일한 라이센스 적용 O, 상업적이용 O

 LGPL의 코드를 수정해서 라이브러리 만들어서 사용시 : 소스코드 공개 필요 O, 동일한 라이센스 적용 O, 상업적이용 O

 (이 라이센스로 빌드된 바이너리를 포함한 앱은 너가 원하는 라이센스로 명시 가능하다.)

 GNU Lesser General Public License의 줄임말로, 이 라이센스는 해당 라이센스를 가진 오픈소스 라이브러리를 우리의 소프트웨어에 링크하는 것 까지는 그냥 허용해준다는 의미이다.

 만약 우리가 LGPL 라이센스를 가진 라이브러리를 우리의 코드와 함께 컴파일하거나 링크한다면 우리는 우리의 앱을 우리가 원하는 라이센스로 배포할 수 있다. 즉, 마음대로 사용할 수 있다는 것이다.

 (주의) 하지만, 만약 우리가 직접 라이브러리를 수정하거나 당신의 코드에 그것의 일부분을 복사 붙여넣기 한다면, 우리는 우리의 앱은 LGPL 라이센스 용어로 작성하여 배포해야하만 한다.

 

4. 퍼미시브(Permissive) 타입    (e.g. Apache 라이센스, BSD 라이센스, MIT 라이센스)

소스코드 공개 필요 X, 동일한 라이센스 적용 O or X (선택), 상업적 이용 O

 (상용하던, 혼자쓰던, 마음대로 쓰던 상관없다. 다만 이 것을 썼을 때 이 라이센스를 썼다는 것만 명시해라)

 이 타입의 라이센스는 Apache 스타일 혹은 BSD 스타일로 알려져 있습니다. 이 타입은 최소한의 요구사항만 포함합니다. 어떻게 소프트웨어를 수정할 수 있고 재배포를 할 수있을지에 관해서 말이죠. 이 타입은 아마 프리 그리고 오픈 소스 소프트웨어에서 사용되는 가장 유명한 라이센스입니다. 

  (퍼미시브는 한국말로 관대한이란 뜻이다.)

 

5. 프로프라이어터리(Proprietary, 소유권) 타입

 (이건 내 소프트웨어이다. 어떤 재사용도 허락하지 않는다.)

소프트웨어 라이센스의 모든 타입중에, 가장 제한적인 타입입니다.

 이 타입에서는 모든 권한이 보존됩니다. 이것은 보통 소유권을 가진 소프트웨어를 위해 사용됩니다. 그 소유권 가진 소프트웨어에서 저작물을 수정하거나 재배포할 수 없습니다.

 

 

 

출처

시놉시스 홈페이지

https://www.synopsys.com/blogs/software-security/5-types-of-software-licenses-you-need-to-understand/

 

포프 - 오픈소스 라이센스에 관해서

https://www.youtube.com/watch?v=Z_fT6wX2DRk&t=657s 

 

리눅스마스터 : 오픈소스 SW 라이선스

https://jhnyang.tistory.com/134

 

오픈소스 라이센스 정리

https://selfish-developer.com/entry/%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4-%EB%9D%BC%EC%9D%B4%EC%84%BC%EC%8A%A4-%EC%A0%95%EB%A6%AC

 

공개SW 라이선스 - 공개 SW포털

 https://www.oss.kr/oss_license

 

반응형