[광 to the 고] 바이라인네트워크가 주최하는 이벤트들, 참 좋은데...

오는 3월 미국 대법원에서 IT업계에 엄청난 후폭풍을 일으킬지도 모르는 재판이 시작된다. 오라클과 구글의 자바API 저작권 전쟁 최종전이다. 미국 연방 대법원은 3월부터 자바API가 공정이용 대상인지 판단하기 위해 심리에 들어간다. 이번 소송이 구글이 자바 저작권을 침해했는지 여부를 가리는 재판은 아니다. 이미 연방 대법원은 지난 2015년 오라클의 손을 들어줬다.

구글이 마지막으로 잡고 있는 지푸라기는 공정사용이다. 공정사용은 저작권이 있는 저작물이라고 해도 일정 조건 아래 저작권자의 허락없이 이용해도 용인하는 제도다. 저작권 침해 소송은 끝났지만, 자바 API가 공정사용에 해당되는지 여부는 아직 최종 결정되지 않았다. 3월부터 연방대법원 심리가 시작된다.

구글을 비롯해 마이크로소프트와 IBM 등 글로벌 IT업체들은 자바 API에 저작권이 존재한다고 해도 공정사용의 영역이라고 주장하고 있다. 그러나 분위기는 구글에 불리하다. 2심 법원인 연방순회항소법원은 자바API 가 공정사용 대상이 아니라고 봤다. 만약 연방대법원이 2심의 결정을 그대로 수용한다면, IT업계는 대혼란에 빠질 지도 모른다.

API 저작권을 침해했다는 사실의 의미

컴퓨터 프로그래밍 언어의 API란 프로그램 개발을 쉽게 개발할 수 있도록 미리 코딩해 놓은 블록(라이브러리)을 이용할 수 있도록 연결하는 규약(선언)을 이르는 말이다. 개발자들은 일반적으로 라이브러리의 코드블록을 조합해 코딩을 한다. 라이브러리를 사용할 수 없다면 처음부터 끝까지 일일이 코딩을 해야하기 때문에 생산성이 떨어진다.

이런 점에서 API는 프로그래밍 언어 그 자체라고 여겨지기도 한다. 프로그래밍 언어를 배운다는 것은 라이브러리를 활용하는 방법을 배우는 것이기 때문에, 결국 API를 배운다는 의미와 크게 다르지 않기 때문이다.

예를 들어 프로그래밍을 처음 배울 때 가장 먼저 하는 것이 화면에 “Hello, World”를 입력하는 코드를 짜는 것인데, 자바의 경우 System.out.println()라는 메소드를 활용하게 된다. 즉 프로그래밍을 시작하자마자 가장 먼저 배우는 것이 API인 셈이다.

단어에 몇글자가 있는지 알려주는 자바 메소드로 ‘java.lang.string length()’이라는 것이 있다. 이 메소드에 문자열을 입력하면 몇 글자인지 숫자로 값을 리턴한다. 구글은 글자수를 세는 기능을 하는 코드블록은 직접 코드를 썼지만, 메소드의 이름과 4단계(java, lang, string, length)로 된 구조는 자바의 것 그대로 이용했다. 그렇게 해야 기존 자바 개발자들이 본인이 알고 있는 코딩 문법 그대로 이용해서 안드로이드용 앱을 개발할 수 있기 때문이다. 구글이 같은 기능을 하는 API 이름과 구조를 sumatra.character.long()이라는 식으로 만들 수도 있었겠지만, 이렇게 하면 기존 자바 개발자들은 새로운 API를 습득하기 위해 시간을 들여야 한다.

자바API 저작권 소송, 10년의 역사

이 소송은 10년을 이어왔다. 구글이 안드로이드를 인수하고, 오라클이 썬마이크로시스템을 인수한 것이 세기의 재판을 불러왔다. 지난 10년간의 과정은 아래와 같다.

API 저작권 소송 일지

2005년 8월 – 구글은 안드로이드 인수

2010년 1월 – 오라클 썬마이크로시스템즈 인수

2010년 8월 – 오라클 소송 제기. 7개의 자바 특허와 저작권을 침해 주장

2012년 5월 – 저작권 소송 1심에서 구글 승리. 판사는 API 저작권 불인정. 오라클은 항소.

2014년 5월 – 1심 판결 뒤집힘. 항소법원은 API도 저작권이 있다고 인정. 다만 공정이용 여부를 심리하도록 1심으로 환송.

2015년 6월 – 연방대법원 구글의 항소 신청 기각. 오라클 승

[광 to the 고] 웃긴데 알찬 유튜브 채널 '스튜디오 바이라인'에 놀러오세요


API 공정이용 소송

2016년 5월 – 1심 법원 API의 공정이용 인정. 구글 승리. 오라클 항소

2019년 3월 – 연방순회항소법원 API 공정이용 불인정. 오라클 승리. 구글 항소

2020년 상반기 – 대법원 판결 예정

IT업계에 어떤 영향을 미칠까

지금까지는 라이브러리를 이용하기 위한 방법일 뿐인 API에 저작권이 있다는 생각은 하지 못했다. 저작권은 표현을 지키기 위한 것인데, API는 표현(코드)가 아니라 코딩을 하기 위한 방법론이라고 봤기 때문이다. 예를 들어 작곡을 하기 위해 사용되는 오선지, 높은(낮은)음자리표, 각종 음표, 각종 쉼표 등에 저작권이 없는 것과 같다고 본 것이다. 이런 도구들은 서로 커뮤니케이션하기 위한 인터페이스이지, 표현 그 자체가 아니다.

상당수의 프로그램언어들은 서로를 API 형태를 참조하고 있다. 예를 들어 파이썬을 변형한 자이썬, 아이언파이썬, PyPy 등이 있고, 루비와 유사한 제이루비, 아이언루비, 루비너스 등이 있다. C#과 비주얼베이직을 차용한 Mono도 있다. C++도 당연히 C를 발전시킨 것이고, GCC는 C와 C++, 오브젝트C와 관계가 있다. 이들의 API는 대부분 유사하다.

이 때문에 IT업계에서는 대부분 구글의 편을 들고 있다. IBM은 법원에 낸 문서에서 “인터페이스에는 저작권이 있을 수 없다”면서 “이 단순하고 강력한 원칙은 지난 60년 동안 기술 발전과 경제성장의 초석이 되어왔다”고 밝혔다.

마이크로소프트 역시 “법원이 지나치게 공정이용의 개념을 좁게 해석하고 있다”고 지적했다. 마이크로소프트는 1980년대 IBM 호환PC들이 등장한 예를 들며 IBM PC의 BIOS API를 사용할 수 없었다면 불가능했을 것이라고 말했다.

전자프론티어재단(EFF)도 대법원에 보낸 서한에서 “자바 프로그래밍 언어의 기능적 측면에는 저작권이 없으며, 설령 있다고 하더라도 새로운 컴퓨터 코드를 만드는 데 사용하는 것은 공정사용에 해당한다고 판결해 달라”고 요청했다. 이들은 “연방순회법원의 판결은 더 많은 소송을 부추기고 혁신적인 소프트웨어 개발을 엄청나게 비싸게 만들 위험한 선례를 만들었다”면서 “자바 API에 저작권이 있다고 판단한다면, 오라클에게 자바 호환 프로그램 개발에 대한 통제력과 독점력을 부여하는 것”이라고 강조했다.

오라클도 다른 API 복제했다?

이 가운데 아르스 테크니카(ars technical)라는 매체에 흥미로운 기사가 실렸다. 오라클도 아마존웹서비스의 API를 복제하고 있다는 기사다.

오라클이 클라우드 사업을 위해 ‘Amazon S3 Compatibility API’라는 API를 제공한다는 기사다. 이 API는 개발자들이 아마존 S3를 이용하는 방식으로 오라클 클라우드를 이용할 수 있도록, 아마존 API와 같은 구조와 이름을 제공된다. 이를 통해 개발자들은 기존의 코드를 크게 수정하지 않고 S3에서 오라클 클라우드로 바꿀 수 있게 된다.

API에 저작권이 있다면 오라클도 아마존의 저작권을 침해할 것이 아닐까?

이에 대해 오라클 측은 아르스 테크니카에 아마존 SDK는 아파치 라이선스(자유롭게 사용할 수 있는 오픈소스 라이선스)이기 때문에 저작권 침해가 아니라는 답을 했다.