2017.02.01
안녕하세요.
개발에 관심있는 학생입니다.
다름이 아니라 제가 주로 관심이 있는 JAVA 언어와 R 언어의 라이선스에 대해서 알아보다보니 궁금한 것이 생겼습니다만, 아무리 찾아봐도 내용이 너무 어려워서 시원하게 해결이 되지 않아 글을 남깁니다 .
제가 조사한 바에 따르면 Java와 R 모두 GNU GPL 라이선스 정책을 따르고 있는 것으로 알고 있습니다. 우선 모든 항목의 가정은 제가 개발한 응용소프트웨어를 상용화할 때를 가정합니다...
1. Java와 R 모두 개발을 위한 언어인데, GPL 라이선스를 따른다고 하면, 두 언어를 사용하여 개발된 모든 프로그램은 GPL 라이선스 정책에 따라, 개발한 소프트웨어의 코드가 모두 공개되어야 하는건가요?
2. 특히, R의 경우는 패키지에 대해 GPL 라이선스가 적용되어 있는 것 같습니다. 만약 제가 개발한 응용 소프트웨어에서 R의 패키지를 사용하기 위한 코드가 들어있다면, 이것도 역시 1번 항목과 같이 제가 개발한 응용 소프트웨어의 코드를 모두 공개해야하는지요?
3. 마지막으로... R 코드를 실행하기 위해 R과 제가 개발한 응용프로그램을 상용화하여 판매한다고 가정하면, 제가 개발한 응용소프트웨어의 코드까지도 고객사가 아닌 대중에게도 모두 오픈해야 하는게 맞는지요?
위와 같이 제가 궁금한 사항을 몇가지 정리해 보았습니다...
너무 기초적인 내용이라 수고스러우실지라도 답변주시면 감사하겠습니다.
------ 댓글 -------
안녕하세요.
문의하신 내용에 대한 답변입니다.
Java와 R언어는 프로그래밍 언어로서 C언어 등과 마찬가지로 이 언어들을 이용하여 개발하였다고 해서 개발한 SW에 특정 라이선스가 적용되는 것은 아닙니다.
다만, Java를 개발하기 위해서는 환경을 구축해야 하는데 일반적으로 많이 사용하고 있는 Oracle JDK는 사유/독점(Proprietary) 라이선스 입니다.
Oracle JDK는 기본적으로 무료 다운로드 및 사용을 허용하고 있으나 이중에는 유료 기술이 포함되어 있으므로 이를 활용하여 개발한 경우에는 상용 라이선스의 구입이 필요합니다.
그런데 오라클사에서는 사유 라이선스인 Oracle JDK를 배포하는 동시에 오픈소스 버전인 Open JDK도 함께 배포하고 있습니다.
Open JDK는 GPL v2 Classpath Exception으로 배포되고 있기 때문에 무료로 사용이 가능합니다.
Open JDK의 라이선스는 GPL v2 Classpath Exception으로 기본적으로 GPL 라이선스를 따르지만 이를 활용해 개발한 제품에 대해서는 GPL 라이선스를 적용시키지 않는 예외 조항을 가지고 있습니다.
현재 두 버전(Oracle JDK와 Open JDK)의 코드는 대부분 동일하지만 Oracle JDK는 추가적인 상용 라이브러리/콤포넌트/플러그인 등을 포함하고 있기 때문에 더 많은 기능을 제공하고 있습니다.
결론적으로 Oracle JDK(JAVA SE) 기본 기능만을 사용하는 경우나 Open JDK를 사용하여 개발한 경우에는 특별한 이슈는 없는 것으로 보입니다.
그러나 Oracle JDK의 경우 유료 기능을 사용하게 되면 별도의 상용 라이선스 구입이 필요합니다.
상세 내역은 아래 사이트를 참고하시기 바랍니다.
[참고 사이트]
http://www.oracle.com/technetwork/java/javaseproducts/overview/index.html
https://docs.oracle.com/javacomponents/index.html
http://www.oracle.com/technetwork/java/javase/terms/products/index.html
http://www.oracle.com/us/corporate/pricing/technology-price-list-070617.pdf
R의 경우 일반적으로 R Studio를 많이 사용하여 개발을 하는데, R Studio는 AGPL 3.0 라이선스를 따릅니다.
이용하는 것은 무료이나 이를 통해 개발한 프로그램에 AGPL 3.0 라이선스가 적용된 소스코드, 라이브러리, 플러그인 등이 포함되면 AGPL 3.0 라이선스가 적용되는 것입니다.
AGPL 3.0은 직접적인 배포 없이 네트워크를 통한 접속만으로도 소스코드 공개의무가 발생하기 때문에 특히 주의가 필요합니다.
한편 GPL 라이선스의 패키지를 활용하여 프로그램을 개발하였다면 연결 방식에 따라 GPL 라이선스의 적용을 받을 수도 있고 그렇지 않을 수도 있습니다.
일반적으로 GPL 패키지를 내가 만든 프로그램에 링크하거나 믹스해서 개발하는 경우 내가 만든 프로그램은 전체적으로 GPL 라이선스의 적용을 받습니다.
다만, 파이프, 소켓, 명령행인자(Commandline argument) 방식등 GPL과 내 프로그램을 완전 독립적으로 작동하도록 설계하는 경우 GPL 라이선스의 영향을 받지 않을 수 있습니다.
그런데 GPL 라이선스가 적용된다고 하더라도 소스코드 공개 등 라이선스 의무사항은 수취자(고객, 구매자 등) 에게만 제공하면 되는것으로 모든 사람들에게 공개의무가 있는것은 아닙니다.
감사합니다.
※ 법적 분쟁 발생시 본 답변은 법률적 해석이나 논리로 활용될 수 없습니다.
댓글 0
댓글 작성
댓글을 작성하려면 게시글 작성 시 입력한 이메일과 패스워드를 입력해주세요.