'오라클은 Java EE를 떠넘기려한다' 기사의 팩트 체크
2017년 08월 18일에 “Itworld“에서 “오라클, 더 이상 자바 EE를 이끌 생각 없다”라는 기사가 공개되었습니다.1 기사의 내용을 요약하면 다음과 같습니다.
- 오라클은 엔터프라이즈 자바 개발에서 리더십을 내려놓기를 원하며 이를 맡아줄 오픈소스 재단을 찾고 있다.
- 아파치(Apache)와 이클립스(Eclipse)가 자바 EE를 인수할 가능성이 높다.
- 오라클은 오픈소스 커뮤니티, 라이선스 사용자, 후보 재단들에게 자바 EE를 떠넘기려는 계획이다.
- 마이크로프로파일(MicroProfile)이라 부르는 오라클의 새로운 계획에 대해 오픈소스 그룹 가운데 가장 선두에 자리한 레드햇(Red Hat)은 갈채를 보냈다
- 자바 EE에 오라클의 목표는 리더십을 떠넘기려는 것일 뿐 프로젝트에는 지속적으로 참여할 것이다.
이 기사가 오픈된 후 SNS를 중심으로 개발자들에게 큰 화제가 되었습니다. “MicroProfile” 보다는 “자바 EE를 떠넘기려는 계획이다.“라는 구절이 집중적으로 주목받았습니다. 개발자들의 반응은 물론 오라클에 불쾌한 감정을 표현하는 것이 대부분이었습니다. <그림 1>은 2018년 8월 18일의 페이스북의 개발자 반응입니다.
결론을 미리 정리하면
“Itworld“의 “오라클, 더 이상 자바 EE를 이끌 생각 없다” 기사는 Infoworld에서 쓴 기사(”Oracle doesn’t want Java EE any more”)를 번역한 것입니다. InfoWorld 영문 기사는 오라클의 취지를 잘못 소개한 기사라고 판단 됩니다.
오라클은 InfoWorld 기사(“Oracle doesn’t want Java EE any more”)가 발표되기 전에 오라클은 공식 블로그를 통해서 Java EE 경쟁력 강화를 위해서 오라클 리더쉽을 내려놓고 오픈소스 재단과 협력하고 오픈소스 주도의 새로운 Java EE 개발 프로세스(JCP) 개선안에 대하여 논의할 것이라는 취지를 발표했습니다.
Java EE 경쟁력 강화를 위해서 오라클의 리더쉽을 내려놓고 오픈진영 주도의 Java EE 개발 체계로 개편해야 한다는 발표는 오픈 진영 및 자바 개발자들에게는 매우 반가운 소식입니다. 추가로 오라클은 오픈 진영 중심의 Java EE 개발에 오라클은 계속 적극적으로 참여할 것이고, 참조 구현체 개발과 WebLogic을 지원할 계속할 것임을 밝혔습니다.
이 블로그의 내용은 오라클의 리더쉽을 오픈 진영에 이양할 의지가 있다는 것이지 “오라클이 Java EE를 누군가에게 떠넘기려한다” 는 것으로 폄하되면 안 될 내용인 것 같습니다.
개발자들에게 환영받을 오라클의 발표가, 개발자로부터 냉소적인 반응을 받은 상황으로 잘못 전달되는 것이 안타까웠습니다. 이 부분의 잘못된 정보 전달을 확인하기 위해서 Itworld 기사를 살펴보았습니다.
본론에 들어가기에 앞서 (Safe Haber Statement ^^)
본인은 2017년 09월 현재 저는 한국 오라클 소속의 엔지니어입니다. 이 글은 오라클의 공식적인 견해가 아니며, 개인적인 관점으로 작성된 글입니다. 사실 저는 오라클을 대변하는 위치에 있지 않습니다. 잘못된 정보로 제가 몸담은 회사가 오해를 받는 부분을 조금이라도 줄이자는 취지로 이 글을 작성하였습니다. 이 글은 온라인상에 오픈된 정보만을 이용하여 작성하였습니다.
“Itworld” 오라클 기사의 이상한 점
상당히 자극적인 단어(”“떠넘기려는”)와 Java를 걷어내는 굴착기 이미지를 담은 이 기사의 내용은 조금 이상했습니다. 오라클이 Java EE 버리거나 팔아버리는 것과 같은 뉘앙스를 풍기지만 부분적으로 Oracle을 지지하는 Red Hat의 내용도 있고, 부정적인 단어를 포함하지만, 전체 문장은 긍정적인 내용으로 마무리되는 좀 이상한 부분이 많습니다. 또 오라클이 Java EE를 버릴 계획이라는 명확한 문구는 없었습니다. 그래서 이 가사에 대한 근거를 찾아보았습니다.
“오라클, 더 이상 자바 EE를 이끌 생각 없다”의 원문 대조
Itworld와 Infoworld는 모두 IDG Enterprise의 자회사 성격의 미디어입니다. Paul Krill은 Infoworld의 it 전문 기자입니다. Itworld의 “오라클, 더 이상 자바 EE를 이끌 생각 없다“는 “Paul Krill“이 Infoworld에서 쓴 기사(”Oracle doesn’t want Java EE any more”)를 번역한 기사입니다.
<그림 2>를 보면 Paul Krill의 기사 제목은 “Oracle doesn’t want Java EE any more”이며 매우 자극적이지만, 정작 내용은 그렇게 자극적이지 않습니다. 오라클은 Java EE를 이끌어줄 누군가를 찾고 있다. 대상은 아마도 아파치 재단이나 이클립스가 될 것 같다는 내용입니다.
원문: Oracle wants someone else to lead enterprise Java, though it says it will stay involved. Apache and Eclipse are likely candidates to take over Java EE
세부적인 문장을 비교해 보았습니다.
원본기사: Infoworld | 번역기사: Itworld |
---|---|
Oracle plans to explore its desire to offload Java EE with the open source community, licensees, and candidate foundations. | 오라클은 오픈소스 커뮤니티, 라이선스 사용자, 후보 재단들에게 자바 EE를 떠넘기려는 계획이다. |
Oracle’s goals for offloading Java EE would have Oracle not lead the project as it still effectively does with Java SE. | 자바 EE에서 오라클의 목표는 리더십을 떠넘기려는 것일뿐 프로젝트에는 지속적으로 참여할 것이다. |
offload를 “떠넘기려한다”라고 번역한 것 같습니다. offload라는 단어가 “(짐, 부담)을 덜다“라는 의미와 “(주식)을 매각하다“라는 의미가 있기에 오역이라고 볼 수는 없습니다. 그러나 부정적인 느낌이 강한 “떠넘기려한다“라는 단어를 사용한 것은 아쉬움이 남습니다.
“Oracle doesn’t want Java EE any more”의 근거
아쉬운 점은 있으나 “떠넘기려 한다”는 오역은 아닌 것 같습니다. 그래서 Paul Krill이 기사를 쓴 근거 자료를 찾아보았습니다.
Paul Krill의 기사는오라클 공식 블로그(https://blogs.oracle.com/theaquarium/ )의 Opening Up Java EE 포스트를 참조하여 작성된 것으로 예상합니다. 이 포스트는 2017년 8월 17일, Paul Krill가 기사를 쓴 당일에 공개된 포스트입니다.
오라클 이 블로그의 내용을 요약하면 다음과 같습니다.
- 현재 Java EE 8 막바지 작업 중이며 JavaOne 2017 conference에서 공개를 목표로 하고 있다
- 오라클은 변화하는 산업 및 기술 요구에 민첩하고 신속하게 대응하기 위해 Java EE의 개발 방식을 개선해야 할 시점이라고 생각한다.
- Java EE는 Java EE 커뮤니티의 참여로 오픈 소스 형태로 개발되고 있지만 다른 진영과 비교해 볼 때 프로세스 기민성, 유연성 또는 개방성이 떨어진다.
- Java EE 8을 공개한 후에 Java EE 개발 프로세스 개선을 논의할 것이다.
- Java EE 참조 구현체 개발 및 호환성 테스트는 오픈소스 재단으로 이전하는 것이 더 효율적이라고 판단하고 있다.
- 오라클은 개발자, 최종 사용자, 고객, 기술 소비자, 기술 공헌자, 파트너 및 라이센스 사용자에 대한 약속을 지킬 것이다.
- 또한 기존 Java EE 구현 및 향후 Java EE 8 구현을 지원할 예정이다.
- Java EE 기술의 향후 발전에 계속 참여할 것이다.
- 개방된 프로세스가 더 큰 참여와 혁신을 장려할 것이며 커뮤니티의 이익을 최대화할 것이라고 믿는다.
- 오라클은 Glassfihs 참조 구현체를 계속 개발할 것이며, 앞으로 계속 Weblogic을 지원할 것이다.
- 오라클은 지속해서 Java EE 개발에 참여할 것이고 적극적으로 지원할 것이다.
이 포스트에서 오라클은 Java EE에서 오라클의 주도권을 내려놓고 기존에 효율성이 떨어지는 JCP(java community process)2를 개선하려 한다는 내용입니다. Java EE 개발의 효율성과 민첩성을 높이려는 의도입니다. 오픈소스 진영 혹은 다른 플랫폼에 비교하여 산업계의 변화에 민첩하게 대응하기 위한 목적입니다.
배경 설명: Java EE
자바는 산업계에서 만들어진 언어입니다. 자바는 개발 초기부터 엔터프라이즈의 요구 사항을 적극적으로 반영한 언어입니다. 따라서 표준화에 대한 강력한 지원을 포함합니다. 1990년대 후반부터 2010까지는 Standardization(표준화) 가 중요한 시대였습니다. 어떤 기술을 볼 때, 해당 기술이 어떤 표준을 따르는지 중요하게 여겼습니다. 표준을 준수하는 솔루션을 사용하면 같은 표준을 지원하는 다른 솔루션으로 이전 가능하다는 상호운용성과 호환성에 대한 강한 필요성과 믿음이 있던 시기였습니다. 자바는 이런 시대에 발전한 언어입니다. 그렇다 보니 Java 혹은 Java EE의 이해당사자(JCP 멤버)들의 동의를 거쳐 스펙이 정의되고, 그 스펙으로 참조 구현체(tomcat, glassfish)를 만들어 검증하고, 각 Java 벤더는 각자의 WAS(Web Application Server)를 개발하는 프로세스로 Java EE를 개발하고 운영했습니다.
문제는 Java EE에 참여하는 기업이나 오픈소스 커뮤니티의 이해관계가 달라서 스펙 정의 단계가 너무 오래 걸린다는 것입니다. 또한, 2000년대 중후반까지는 벤더(Oracle, Sun, IBM, BEA, HP)가 기술을 주도하는 시기였습니다. Java EE와 같은 스펙이 정의되면, 정의에 따라서 기업 및 오픈소스가 움직이는 형태였습니다. 이것이 Java EE 5부터 역전됩니다. 오픈소스에서 검증된 기술이 Java EE 스펙에 들어오는 형태가 됩니다. 그리고 Java EE 스펙이 정해지면 이 스펙이 오픈소스에 다시 적용되는 선순환 관계가 형성됩니다. 대표적인 사례가 SpringFramework과 Hibernate입니다.
JCP의 스펙 제정 단계는 여러 이해당사자의 합의 도출 과정이 오래 결리는 문제점을 안고 있습니다. 결과적으로 Java EE가 오픈소스의 발전 속도를 따라가지 못하는 원인이 되었습니다. Standardization(표준화)의 가치가 중요한 시대에는 이 문제는 업계에서 받아들일 수 밖에 없는 사항이었습니다. Standardization(표준화)의 시대가 저물고 Optimization(최적화)이 중요한 가치로 부각된 시대에는 JCP의 비효율성은 치명적인 단점이 됩니다. 또한 Java가 20살이 넘어가면서3 최근에 태어난 Modern Language의 개념과 발전 속도를 못 따라가고 있습니다.4
산업계는 발전 속도가 떨어지는 Java EE에 대하여, 비효율적이고, Old Style이며, 무겁고 다루기 힘들다는 Legacy 이미지를 적용하기 시작했습니다.
오라클은 왜 오픈소스 재단이 이끌기를 원할까?
Java Community Process(JCP)는 전형적인 민주주의와 자본주의 양쪽의 모습을 갖고 있습니다. 하나의 기술에 대하여 전체 합의를 도출하고 의결합니다. 의결할 때 모든 멤버가 평등한 것은 아닙니다. 지분이 있고 기득권이 있습니다. 기술에 대한 합의 도출 과정이 오래 걸리고, 합의되면 참조 구현체는 주도권을 갖는 회사가 개발을 담당합니다. 참조 구현체는 기존 벤더의 솔루션 개발 과정과 유사한 방식으로 개발됩니다.
JCP의 느린 합의 도출 과정은 신속한 오픈소스의 의사결정 과정을 따라갈 수 없습니다. 또한 회사의 솔루션 개발 절차는 오픈소스의 개발 절차의 효율성을 따라갈 수 없습니다. 단적인 예로 오픈소스의 가장 중요한 가치는 자발적 참여와 자발적 검증을 유도하는 것입니다. 자발적으로 프로젝트를 리뷰하고 스스로 문제와 버그를 정의합니다. 자신이 정의한 문제가 버그임을 증명하려 노력합니다. 그리고 그 문제의 해결하는 코드를 작성하여 프로젝트에 올립니다. 이때 자신의 코드가 프로젝트에 병합되어야 하는 이유를 증명하려 노력합니다. 이러한 과정이 Pull Request와 Issue Management로 진행됩니다.
오픈소스가 빠르게 성장하고 발전하는 이유는 이런 자발적인 참여와 그 과정에서 발생하는 소프트웨어 결함에 대한 정의와 개선 노력이 민첩하게 이뤄진다는 것입니다.
JCP의 합의 도출과정과 기업의 전통적인 폐쇄된 개발방식으로는 오픈진영이 주도하는 다른 플랫폼과 경쟁하기 어렵습니다. 발전속도를 따라잡을 수 없습니다. 오라클 블로그의 포스트에서 언급한 오픈소스 재단이 주도해야 할 것 같다는 의미는 이런 배경을 근거로 할 것입니다.
다시 오라클 블로그 포스트: Opening Up Java EE
오라클은 현재 산업계의 변화 속도와 다른 플랫폼 및 오픈소스의 변화 속도를 따라잡지 못하고 있는 Java EE의 프로세스를 개선할 계획이며, 프로세스의 개선을 위해서 오라클이 갖고 있는 주도권(Leadership)을 오픈소스 진영에 이양할 준비를 하고 있다는 내용을 담고 있습니다.
Java EE의 자생력과 경쟁력을 높이기 위해서 오라클은 자사의 주도권을 이양할 뿐, 지속적인 Java EE 개발 참여와 지원을 계속할 것을 말하고 있습니다.
오라클 블로그의 포스트는 자바 개발자 커뮤니티에 오히려 반가운 소식입니다. 오라클이 자바를 떠넘기고 버린다는 근거는 어디에도 없습니다. Java EE를 위한 중대한 결심을 했다는 것이 더 맞습니다. 오라클은 Java EE의 경쟁력 강화하기 위해서 평화적인 권력 이양을 준비하고 있습니다.
이 글을 마치며
최근 오라클 블로그의 포스트 내용을 보면
- 오라클은 Java EE의 개발 효율을 높이기 위해서 Java EE 개발 프로세스를 개선하려 한다.
- 오라클 주도에서 오픈소스 재단 주도로 진행되는 것이 효율적이라고 판단된다.
- Java EE 참조 구현체(Glassfish) 개발과 WebLogic에 대한 지원을 계속할 것이다.
- 오라클은 향후 Java EE 계발 프로세스에 적극적으로 참여할 것이다.
라는 각오를 담고 있습니다.
오라클이 Java EE를 버리지 않을 것이고, Java EE의 개발 효율성을 위해서 주도권을 내려놓겠다는 결심을 말하고 있습니다. 기업의 특정 기술의 발전을 위하여 자사의 주도권을 내려놓겠다는 것은 어려운 결정입니다. 오라클 블로그의 포스트는 오히려 자바 개발자 커뮤니티에 반가운 소식입니다.
Infoworld의 Paul Krill은 이유는 알 수 없지만, 오라클 블로그 내용을 인용하여 “Oracle doesn’t want Java EE any more”라는 기사를 썼습니다. 그리고 이 기사는 “오라클, 더 이상 자바 EE를 이끌 생각 없다”라는 기사 제목으로 번역되고, offload는 “떠넘기려한다”로 변역되었습니다.
오라클은 Java EE를 떠넘기는 것이 아니라, 경쟁력을 높이는 방법에 대하여 심사숙고 중입니다. 오라클은 여전히 Java와 Java EE는 오라클의 핵심 기술이라고 강조하고 있습니다.
시대 흐름에 따라서 기술을 대형 벤더 연합이 주도할 때 효율적인 시기가 있고 개발자 커뮤니타가 주도하는 것이 효율적인 시기가 있는 것 같습니다. 현재는 개발자 커뮤니티가 주도하는 기술이 빠르게 발전하는 시대입니다. 오라클은 Java EE를 벤더 주도의 기술 체계에서 오픈 커뮤니티이 이끄는 기술로 자바를 변화시키려는 것입니다. 이런 입장에서 오라클 공식 블로그에서는 기술이 더 발전할 수 있는 환경으로 주도권을 이양하는 방안과 프로세스 개선 논의를 Java EE 8 공개 후 시작하겠다고 말하고 있습니다. “떠넘긴다”라는 뉘앙스는 찾을 수 없었습니다.
- 기사 원문 URL: http://www.itworld.co.kr/news/106037 [return]
- JCP는 자바 표준 스펙 정의 기관이며 동시에 프로세스입니다. JCP는 주요 자바 업체(Oracle, IMB, HP, Red Hat), 오픈 소스 재단(Apache, JBoss), WAS 개발 업체, 개인 개발자로 구성됩니다. [return]
- Java는 1995년 5월에 태어났습니다. [return]
- 현재 자바는 Modern Language의 특징과 민첩성에 비교하기에는 한계를 갖지만, 안정성과 기존의 자산(라이브러리) 등을 기반으로 인프라 언어로 확대되고 있습니다. 기존에 Java는 애플리케이션 개발용 언어였습니다. 현재의 자바는 Java를 기반으로 새로운 언어(Scala..)를 만들고 파일시스템(HDFS)을 만드는 인프라 언어의 영역으로 그 범위를 확대하고 있습니다. [return]