<CIO Korea> 오라클 vs. 구글 : 자바 API는 누구의 것인가?
http://www.ciokorea.com/print/12359 “프랑스어, 또는 스와힐리어에 대한 저작권이 여러분에게 있다면 어떨까? 자바 언어 및 자바에 연결된 API에 대한 저작권을 소유했다는 오라클의 주장은 본질적으로 이와 같다. 오라클의 주장이 받아들여진다면, 향후 소프트웨어 개발 분야에 영구적인 변화가 일어나게 된다.”
<CIO Korea> 오라클 vs. 구글 : 자바 API는 누구의 것인가?
http://www.ciokorea.com/print/12359 “프랑스어, 또는 스와힐리어에 대한 저작권이 여러분에게 있다면 어떨까? 자바 언어 및 자바에 연결된 API에 대한 저작권을 소유했다는 오라클의 주장은 본질적으로 이와 같다. 오라클의 주장이 받아들여진다면, 향후 소프트웨어 개발 분야에 영구적인 변화가 일어나게 된다.”
http://etinow.tistory.com/1 “가장 명확하게 이해해야 할 부분은 구글이 Java API를 이용한 방식입니다. 구글은 Java API 를 무단으로 사용했기 때문에 문제가 된 것이 아니라, 37개의 Java API와 똑같은 API를 안드로이드 SDK에도 만들었기 때문에 문제가 된 것입니다. 도서관의 예로 설명하면, 구글은 Java API라는 선반 위의 책들을 무단으로 가져다 쓴 것이 아니라, 똑같이 생긴 선반을 자신들의 Android SDK라는 도서관에 만든 것입니다. 구글의 주장에 따르면 이는 Java 개발환경에 익숙한 개발자들이 안드로이드를 개발할 때, 클래스나 메소드를 새로 익힐 필요가 없도록 똑같은 개발 환경을 제공하기 위해서 였다고 합니다. 이에 구글은 37개 API에 포함된 600개의 클래스와 6000개의 메소드의 이름을 똑같이 사용했습니다. API는 크게 메소드의 이름이나 형식 등을 정의하는 ‘선언부(declaring code)’와 그 구체적인 기능을 구현하는 부분인 ‘구현부(implementing code)’로 나눌 수 있습니다. 구글은 이 37개의 API를 안드로이드 버전으로 새롭게 만드는 과정에서, 선언부는 Java의 것을 그대로 복사해 쓰고 구현부는 자체적으로 새롭게 개발합니다.”
http://etinow.me/2 “오라클은 자바 API의 구조, 순서, 구성(Structure, Sequence, Organization, SSO)와 API 선언부에 대해 저작권을 주장했습니다. SSO는 쉽게 말하면 API의 각 클래스와 메소드들 간의 참조 관계입니다. 이에 대해서 재판부는 이는 일종의 명령 체계로 저작권 보호 항목이 될 수 없다고 봤습니다. 반면 선언부는 표현 방식에 해당하니 저작권 대상이 될 수 있다고 판단했습니다. 구글은 이에 대해 문법(syntax)이 명확한 프로그래밍 언어의 경우 Java 언어와 호환이 가능하게 선언할 수 있는 방법은 오직 한 가지 뿐이라며 변호했으나, 재판부는 이것은 저작권 대상인지 아닌지를 판별하는 기준에 개입할 수는 없다고 보았습니다. 결국 이에 따라 분쟁의 2단계에서 구글이 Java API의 선언부를 그대로 갖다 쓴 것이 저작권 침해가 인정이 되었습니다.”
프로그래밍에서 대개 API는 상위 소프트웨어의 기능이나 데이터를 하위 소프트웨어에서 가져다 쓰는데 사용됩니다. 예를 들면 일반 프로그래머가 작성하는 프로그램은 화면에 글자를 출력하고 싶으면 자기가 직접 출력하는 것이 아니라, 운영체제라는 상위 소프트웨어에 있는 ‘화면에 글자를 출력하는 API’를 통해서 운영체제에 “화면에 이러이러한 글자를 출력해 주세요.”라는 요청을 합니다. 이렇게 하면, 운영체제에서 글자를 어떤 식으로 처리해서 출력하든 의도한 대로만 나오면 일반 프로그래머는 신경쓸 필요가 없습니다.
안드로이드 운영체제의 API는 자바 프로그래밍 언어의 그것을 쏙 빼닮았습니다. 물론 세부적으로 들어가면 몇몇 차이(https://en.wikipedia.org/wiki/Comparison_of_Java_and_Android_API 참조)가 있고, 또 API 아래에서 실제 작동하는 부분은 완전히 새로 만들어진 것이지만요. 이렇게 하면 자바 프로그래머들은 새로운 API를 배울 필요가 없이 거의 곧바로 안드로이드 앱을 만들 수가 있습니다. 그리고 자바라는 언어는 메이저하기 때문에 다룰 줄 아는 사람이 수없이 많지요. 안드로이드의 설계자들은 바로 이 점을 노렸던 것입니다.
문제는 안드로이드가 처음으로 발표된 지 1년 정도 뒤, 자바 프로그래밍 언어를 개발한 선 마이크로시스템즈 사가 오라클이라는 대기업에 인수된 것입니다. 선 마이크로시스템즈 사는 흔히 말하는 “대인배”였던 반면, 오라클은 “법무법인”이라고 불릴 정도로 소송을 많이 하는 회사입니다. 많은 사람들이 이 점에 대해 걱정했고, 결국 오라클은 선 마이크로시스템즈를 인수한 지 반년만인 2010년 8월에 구글 안드로이드를 저작권법 위반으로 고소했습니다.
이 문제에서 쟁점은 크게 2가지로 압축됩니다.
1. API는 공개된 것인데도 저작권이 성립할 수가 있는가?
2. API를 가져다 쓰는 것은 ‘공정 이용’(fair use)에 속하는가?
1번 쟁점에 대해서는 2013년에 [API에도 저작권이 성립한다]는 판결이 나왔습니다. 이에 구글에서는 오픈소스 소프트웨어에서 API를 가져다 쓰는 것은 공정 이용에 해당한다는 주장을 펼쳤지요. 자바 언어도 일단은 오픈소스고, 안드로이드 운영체제도 오픈소스니까요. 이 주장은 2016년 판결에는 먹혔지만, 요번에는 통하지 않은 모양입니다.
그럼 이렇게 해서 오라클이 돈을 뜯어내면 뭔 일이 생길 수가 있느냐 하는 건 꽤 큰 주제라서 그냥 생략할게요. 직접 생각해보세요.