#review 초보 개발자를 위한 오픈 소스 라이선스 길잡이

2 minute read

특허는 … 알고리즘이 같다면 어떤 컴퓨터 언어로 표현되었는지에 상관없이 침해로 규율할 수 있기 때문이다. … 그러나 출원 및 등록유지 비용이 든다는 점이 단점이다.

이에 비해 저작권은 알고리즘이 표현된 것을 보호하므로 보호받는 범위가 좁고 프로그램 저작물을 의도적으로 보고 베꼈다는 것도 따져봐야 한다는 단점이 있다.

특허법에서는 연구 또는 시험 목적으로 사용하거나 비사업적으로 사용하는 것이면 설령 특허와 동일한 것을 사용해도 침해가 되지 않는다. 이와 비슷하게 컴퓨터 프로그램 보호법에서도 특정 교육 기관의 수업용 또는 교과서 게재, 개인적 사용 등의 경우에는 저작권 침해가 되지 않는 것으로 규정하고 있다.

저작권은 알고리즘을 컴퓨터 언어로 표현된 것을 보호하는데, 컴퓨터 프로그래밍 언어로 표현된 소스코드만을 보호하는 것이 아니라, 상기 소스코드를 0과 1로 구성되는 기계어로 표현한 실행 코드도 당연히 보호 대상이 된다.

특허가 걸려있는 알고리즘을 연구, 비사업적 목적으로 사용하면 침해가 되지 않는다. 그래픽스 그림자 알고리즘인 Trapezoidal Shadow Maps(TSM)은 알고리즘 특허가 발명한 대학에 있는데, 상업적인 목적이 아니면 자유롭게 연구, 시험해 볼 수 있다. 게임에 넣으려면 문제지만…

저작권은 연구고 뭐고 없다. 닥치고 지켜줘야 하는 권리이다.

오픈 소스 소프트웨어가 이와 같은 라이선스를 만들어 운영하는 이유는 만약 오픈 소스 소프트웨어에 라이선스가 없다면 오픈 소스 소프트웨어를 가지고 무단으로 상용 소프트웨어를 개발하는 데 사용하고 해당 소스코드를 공개하지 않을 수 있기 때문에 법의 테두리 안에서 소스코드 공개를 강제할 수 있도록 하기 위한 것이다. 만약 오픈 소스 소프트웨어 라이선스를 위반할 경우에는 상용 소프트웨어와 마찬가지로 법적인 제재를 받게 된다.

우리나라에서는 아직 제대로 된 판례가 없다. GPL 라이선스가 관련된 엘림넷과 하이온넷 사건이 있었는데, 이건 GPL 라이선스가 끼어들긴 했지만 제대로 된 판례가 되기 어렵다고 생각한다. 핵심 소스를 인계하지 않고 경쟁회사로 넘어가면서 법정 분쟁에 말리게 되는데, 이때 어떻게든 죄를 덜어보려고 “사실은 GPL 라이선스 코드를 바탕으로 만든 코드입니다.”라고 말한 사건이다.

오해 5. 오픈 소스를 사용해 만든 제품은 전체 소스를 모두 공개해야 한다

이런 오해를 많이 하고 이 오해가 오픈 소스 사용을 꺼리는 이유가 되는데, 라이선스마다 소스를 공개하는 범위가 다르니 라이센스를 잘 보고 소스를 공개하면 된다. 정적 라이브러리 링크를 할때에만 제한을 가하는 일도 있고 해당 라이브러리 단위만 공개해야 하는 경우가 있는데, 이때는 모듈을 분리해서 공개하면 된다. 소스 코드 공개를 하지 않아도 되는 BSD 스타일의 라이선스도 있으니 잘 살펴보고 선택하면 된다.

오해 8. 외주 업체에서 개발한 소프트웨어의 오픈 소스 라이선스는 내가 검토할 필요가 없다

배포할 때 라이선스가 발생하므로 배포하는 업체에서 책임을 져야 한다. 만약 외주 업체와 같이 일한다면 이게 가장 골치 아프고 껄끄로울 것 같다. 이런 이유로 소스 코드에서 오픈 소스 코드를 찾아내는 소프트웨어를 파는 기업이 나오는 거지.

오해 10. 내부 목적으로 사용하더라도 소스코드를 외부에 공개해야 한다

일반적으로 오픈 소스 소프트웨어의 소스코드 공개 의무는 개발 시점이 아니라 배포 시점에 발생한다.

배포 시점에 발생한다는 걸 이 글을 통해서 알게 됐다. 난 소스 코드 공개 의무가 사용하는 순간부터 발생하는 줄 알았는데, 지금 생각해 보면 말도 안 되는 거 같다. 또한, 배포 시점에 발생하므로 사내에서 사용하거나 개인적으로 사용한다면 소스 코드를 공개한 의무는 없다.

소프트웨어 규모가 커져서 이제 라이선스에 대한 지식이 선택이 아닌 필수가 되었다. 라이선스 전반에 대한 설명이 좋아서 읽으면서 한번 정리하기에 좋았다. 또한 라이선스 문서가 복잡하고 어려워 존재만 알고 있었던 GPL, LGPL, BSD, MPL 라이선스에 대한 간략한 설명으로 라이선스를 검토할 때 좋은 참고가 될 것 같다.

링크