Jersey License: CDDL 1.1 & GPL 2

2010년 10월 21일에 http://devtainer.blogspot.kr/ 에서 섰던 글입니다. 추억 팔이로 옮겨 놓습니다. 2010년 추억 속으로…. - 원문: http://devtainer.blogspot.kr/2010/10/jersey.html


RESTFul를 구현할때 Jersey를 많이 사용합니다. 아무래도 JAX-RS 중에서 문서화나 프레임웍 완성도가 가장 높은것은 Jersey라고 생각합니다. (Grizzly 서버와 테스팅 통합 기능이 굉장하죠…)

그러나 약간 사용하기 애매했던 부분은 라이센스 였습니다. Jersey의 라이센스에 대해서는 Jersey 홈페이지(https://jersey.dev.java.net/)에 다음과 같이 명시하고 있습니다.

We also use the same two licenses - CDDL 1.1 and GPL 2 with CPE - so, you can pick which one suites your needs better.

처음에는 GPL 2와 CDDL 1.1을 라이센스로 하기 때문에 Jersey를 사용할 경우 소스코드를 모두 공개해야 한다고 생각했습니다. 아무래도 GPL이라는 단어가 나오면 무서워서요. 그럴경우 Jersey를 사용하기 어렵고 개발혹은 학습 용도로 사용할 수 밖에 없다고 생각했습니다.

그런데 위 라이센스를 잘 보시면 GPL2와 CDDL 1.1을 선택적으로 사용할 수 있다라고 되어 있습니다. GPL과 CDDL 라이센스 중에서 사용자가 원하는 라이센스를 선택하도록 되어 있습니다.

즉 Jersey는 독점점 제품 개발용도로 사용할 수 있습니다. 단 CDDL 라이센스라는 것은 명시만 한다면 문제는 없을 것 같습니다. CDDL에 대한 해석은 Sun Developer Network에서 근거를 찾아 볼 수 있습니다. http://blog.sdnkorea.com/blog/419의 포스팅에 다음과 같은 구절을 찾을 수 있습니다.

저의 독점적인 제품에 CDDL 하에 배포되는 코드를 사용한다면 제 소스 코드를 반드시 공유해야 합니까? 그렇습니다. CDDL 하에 라이센스된 어떠한 소스 파일들이나 이러한 파일들을 수정한 부분들을 전부 공유해야 합니다. 그러나 여러분의 독점적인 소스 파일들은 공유할 필요가 없습니다.

이런 상황을 조합해 보면 RESTFul 프레임웍으로 Jersey를 사용하는 것은 라이센스 측면에서 어떤 제약 조건도 없습니다. 심지어 Jersey가 상용 WAS의 REST 구현체로 들어갈 계획에 있다구 하더군요. Jersey는 GPL과 CDDL 라이센스의 선택권을 사용자에게 위임함으로서 개발조직을 보호하는 정책을 지원하는것 같습니다.

김태완 avatar
작성자: 김태완
1999년 부터 Java, Framework, Middleware, SOA, DB Replication, Cache, CEP, NoSQL, Big Data, Cloud를 키워드로 살아왔습니다. 현재는 빅데이터와 Machine Learning을 중점에 두고 있습니다.
E-mail: taewanme@gmail.com