자바 오픈소스화「안하나 못하나」

일반입력 :2004/07/05 00:00

Stephen Shankland

썬마이크로시스템즈가 자바 오픈소스화에 대한 득실을 검토하고 있는 가운데, 일부 전문가들이 새로운 대안을 제시하고 있다.리눅스로 대표되는 오픈소스 소프트웨어는 신속한 기술 혁신, 광범위한 수용, 활기찬 개발자 공동체 등 많은 장점을 갖고 있다. 그러나 자바를 개발하고 기술혁신을 주도하고 있는 썬은 자바를 오픈소스화 할 경우 호환성에 문제가 생길 수 있다고 우려해 왔다.지난 1일 목요일 샌프란시스코에서 열린 자바원 컨퍼런스에서 이에 대해 썬과 다양한 업체들이 참여한 토론의 자리가 마련됐다. 수천명이 몰려 든 이번 논쟁의 핵심은 자바를 완전히 오픈소스화할 것인가였다. 완전한 오픈소스화란 자바 협력사나 경쟁사가 자사 목적에 따라 소스를 변경할 수 있음을 의미하며, 이것이 실현되지 않을 경우 오픈소스 개발자들이 자바 대신 그 경쟁 기술인 MS 닷넷을 사용할 가능성도 있다.썬의 가장 강력한 자바 협력사인 IBM은 지난 2월 공개서한을 통해 썬이 자바를 오픈소스로 공개해야 한다며 논쟁에 불을 당겼다. 이에 대해 지난 6월 29일 썬 CEO 스콧 맥닐리는 “IBM이 자바를 질투하고 있다”며 “그렇다면 IBM의 지적 자산도 오픈소스 소프트웨어로 공개해야 한다”며 설전을 벌였다.썬, ‘자바 호환성 해친다’ 우려썬은 자바 오픈소스화와 관련해 유닉스와 리눅스의 사례를 언급하며 조심스러운 입장을 취하고 있다. 유닉스와 리눅스는 통제권이 약해 다양한 배포버전이 출시됐고, 결국 이들간에 호환이 되지 않는 방향으로 나아가고 있다는 것이다.이번 토론에 참여한 자바 개발의 주역이자 썬의 부사장인 제임스 고슬링은 자신은 유닉스 전쟁을 직접 겪었다며 리눅스를 매우 사랑하지만, 호환성에 대해서는 리눅스와 유닉스 역시 동일한 문제를 안고 있다고 지적했다. 다양한 리눅스 배포판은 서로 큰 차이가 없지만, 일부는 호환성에 문제를 일으키기에 충분하다는 것이다.그러나 다른 토론자들은 썬이 자바에 손상을 주지 않으면서 오픈소스를 포용할 수 있는 방법을 찾을 수 있다고 주장했다. 스탠포드 법대 교수이자 전자개척재단(EFF) 이사회 멤버인 래리 레시그는 “썬의 소프트웨어는 오픈소스 라이선스를 적용할 수 있으며, 호환성 유지를 위해 다른 메커니즘을 이용할 수 있다”라고 말했다. 레시그는 “썬이 기존의 오픈소스 라이선스로 호환성 문제를 해결하려 해서는 안된다”며 “오픈소스나 프리 소프트웨어 라이선스와 상관없이 자유소프트웨어 라이선스에 위반되지 않으면서 호환성을 보장할 수 있는 법률적 장치가 존재한다”고 주장했다.한편 오라일리미디어의 설립자 팀 오라일리는 자바 공동체를 중심으로 이러한 문제를 해결하려는 움직임이 있다고 말했다. 지난 6월 30일에 발표된 MS 닷넷 소프트웨어의 오픈소스 개발툴 모노 1.0이 바로 그것으로, 모노는 단일 프로그래밍 언어로 작성된 프로그램을 여러 플랫폼에서 실행될 수 있도록 한다는 점에서 명백한 자바의 클론이다. 오라일리는 리눅스 기반의 모노 프로젝트가 자바가 아닌 닷넷을 구현하고 있다는 점이 중요하다고 지적했다.호환성과 오픈소스화 사이 ‘제3의 방법?’오픈소스 소프트웨어는 누구나 소스를 확인, 수정하고, 재배포할 수 있다. 반면 자바는 썬이 이끄는 자바커뮤니티프로세스(JCP)에 의해 통제되며, 자바 소프트웨어는 호환성 테스트를 거쳐야만 한다. 자바 소프트웨어를 개선하고자 하는 개발자나 그룹은 JCP에 참여해 그 절차를 따를 것이라는 법적 합의서에 서명해야 한다.썬이 자바를 오픈소스화 하는데 가장 큰 장애라고 주장하는 것이 호환성이다. 즉 자바 프로그램은 어떤 자바 소프트웨어 기반에서든 정상적으로 실행돼야 한다는 것이다. 썬이 호환성에 공을 들이는 부부은 선언적인 수준을 넘어서고 있는데, 실제로 MS가 자바 확장을 통해 호환성을 훼손하자 수년동안의 법정 투쟁을 전개하기도 했다. 반면 자바가 오픈소스화되면 사람들은 서로 호환이 되지 않는 자바 소프트웨어를 개발할 수 있게 되는 것이다.현재 오픈소스 공동체들은 활발하게 활동중이다. 톰캣(Tomcat)과 제로니모(Geronimo) 등 많은 자바 서버 소프트웨어 개발 프로젝트가 오픈소스 영역에서 진행되고 있다. 톰캣과 제로니모는 아파치소프트웨어재단(ASF)이 주도하고 있다. ASF는 오픈소스 개념에서 벗어나지 않으면서 JCP 표준이나 자바기술호환성키트(TCK) 테스트를 통과할 수 있는 방식을 타진해 왔다.이번 토론에 참여한 아파치 공동 개발자 브라이언 벨렌도프는 자유로운 오픈소스 영역과 기존 자바의 엄격한 호환성 테스트가 서로 공존하는 것이 가능하다고 주장했다. 그는 “자바 호환성을 강조하고 자바 상표권을 사용하려고자 하는 프로젝트 조직자들은 TCK를 사용해야 하지만 이것이 곧 다른 개발방법을 배제해야 한다는 것을 의미하는 것은 아니”라며 “호환이 안되는 일부 자바 소프트웨어가 등장하는 것은 오픈소스 개발 방식에 있어 자연스러운 일”이라고 말했다.이어 그는 “자바 호환성도 완벽한 것은 아니”라며 “한번 개발해 모든 환경에서 실행할 수 있는 자바의 약속이 훼손되고 있다”고 지적했다. 자바 기반들이 서로 다른 성능 특성을 지녔기 때문에 특정 기업의 자바 기반 위에서 작성된 소프트웨어가 다른 업체의 자바 기반에서 실행되지 않는 경우가 많다는 것이다. 시스템 간에 메시지를 전송하는 자바 메시지 서비스의 경우 자바 기반에 따라 성능이 서로 다르게 나타나는 것도 이 때문이다.올바른 방향으로의 첫걸음벨렌도프는 썬이 자바 확장성 테스트툴 등 보다 오픈소스에 적합한 호환성 키트와 참조 구현을 통해 오픈소스화에 나설수 있다고 말했다. 그는 “JCP가 자바 코어와 기타 자바 표준를 진정으로 오픈소스화 하려는 의지를 보였으면 좋겠다”라고 말했다. 오픈소스 참조구현과 테스트 키트를 이용하면 기업들은 JCP에 참여하지 않고도 쉽게 자바호환 소프트웨어를 개발할 수 있게 된다.벨렌도프는 자바 환경에서 스크립트라는 간단한 명령을 실행할 수 있도록 설계된 프로그램 언어인 ‘그루비(Groovy)’를 언급하며, 이것이 오픈소스 테스트 키트와 참조구현의 성공을 측정하는 시험대가 될 것이라고 말했다. 그는 “그루비의 성과에 예의주시할 것”이라며 “시범 케이스인 그루비가 좋은 결과를 낼 수 있을까?”라고 반문했다.고슬링은 썬이 이미 소스코드를 공개하는 등 오픈소스 소프트웨어의 일부 장점들을 포용했다고 말했다. 그는 “자바 소스는 공개돼 있지만 호환성을 보장할 수 있는 규정이 추가로 포함돼 있다”며 “호환되지 않은 소프트웨어는 재배포할 수 없다는 내용이 들어있다”고 말했다. 이러한 제한은 오픈소스에는 없는 것이다.자바 오픈소스화에는 법적인 문제도 걸려 있다. JCP에 참여하려면 법적 합의서에 서명해야 하는데, 이것은 버그 수정 등을 요청하고자 하는 JCP 외부 사람들에게는 일종의 장벽으로 작용하고 있다. 오픈소스는 이러한 장벽이 존재하지 않는다. 또한 오픈소스 개발자들은 문제를 해결할 때 변호사를 참여시키기 보다는 스스로 처리하는 방식을 선호한다. 벨렌도프는 “그들은 호환성 문제를 법률을 위반한 소송의 문제로 보지 않고 수정해야 할 버그로 생각한다”며 “그 책임과 의무가 변호사가 아닌 개발자에게 넘어간다”라고 말했다.썬의 JCP 부문 부사장 롭 진겔은 “JCP는 변화해 왔으며 앞으로도 계속 그럴 것”이라고 말했다. 그는 “우리는 2년전부터 아파치 프로젝트를 통해 자바에 다른 것들을 더 포괄할 수 있도록 변화를 주어 왔다”며 “아파치에 참여해 서버용 소프트웨어 개발을 지원하도록 압력을 받았지만 하지 못했다”라고 말했다. 진겔은 이러한 역사가 현재 반복되고 있다며, 지난 30일 저녁식사 자리에서 제로니모 개발자들이 CTK에서 버그를 발견했지만 자바 라이선스 때문에 이를 수정할 수 없었다고 말했던 사례를 언급했다.썬은 자바 공개 부문에 있어 일부 진전을 이뤘다고 주장한다. 대표적인 것이 실시간 자바로, 이것은 일부 이벤트에 대해 더 신속히 반응해야 하는 기기를 위한 새로운 자바 버전이다. 그러나 썬의 자바 통제에 불만을 품은 일부 기업들은 지난 1999년 J컨소시엄이라는 단체를 조직해 실시간 자바 표준을 개발하기 시작했다.썬의 수석 엔지니어이자 실시간 자바의 수석 개발자인 그레그 볼레라는 독자적 방식을 추구하던 기업들이 JCP 참여를 고려중이라고 말했다. 그는 “우리는 서로의 차이를 좁혀가고 있다”라고 덧붙였다. @