- Deno는 Oracle의 “JavaScript” 상표 취소 청원이 단순한 법적 분쟁이 아니라, 여러 독립 구현을 가진 공개 표준의 이름을 한 기업이 소유할 수 있는지에 관한 문제라고 봄
- 청원의 핵심은 JavaScript가 Oracle 제품이 아닌 널리 쓰이는 프로그래밍 언어이며, Oracle이 상표를 통제·유지·집행하지 않았다는 점임
- 2019년 Oracle은 상표 갱신 과정에서 Ryan Dahl이 만든 Node.js 웹사이트 스크린샷을 사용 증거로 냈고, Deno는 Oracle이 Node.js와 무관하다는 점을 문제 삼음
- Oracle은 이번에 사기 주장에만 대응하며 “다른 증거도 제출했다”는 논리를 폈지만, 왜 관계없는 Node.js 자료가 필요했는지는 설명하지 않음
- 기각 신청은 청원 답변 기한을 늦추는 효과가 있어, “JavaScript”가 일반명사인지에 대한 본안 논의가 지연될 수 있음
Deno가 상표 취소를 요구하게 된 과정
- 2년 전 Ryan Dahl은 Oracle에 JavaScript 상표를 선의의 표시로 공개하라고 요청했지만 응답을 받지 못함
- 2024년 9월에는 JavaScript 창시자 Brendan Eich, 현재 TC39 편집자들, 16,000명 이상의 JavaScript 개발자가 공동 서명한 공개 서한이 나왔지만 Oracle은 여전히 침묵함
- 2024년 11월 Deno는 USPTO에 Oracle의 “JavaScript” 상표 취소를 요구하는 공식 청원을 제출함
- 문제의 중심에는 2019년 Oracle의 상표 갱신이 있음
- Oracle은 Ryan Dahl이 만든 Node.js 웹사이트 스크린샷을 사용 증거로 제출함
- Deno는 Oracle이 Node.js와 아무 관련이 없는데도 이를 상표 사용 증거로 냈다고 지적함
- 청원은 세 가지 근거를 듦
- Genericness: JavaScript는 Oracle 제품명이 아니라 널리 쓰이는 프로그래밍 언어임
- Abandonment: Oracle은 상표를 통제, 유지, 집행하지 않음
- Fraud on the USPTO: Oracle은 갱신 신청에서 오해를 부를 수 있는 증거를 제출함
Oracle의 기각 신청과 방어 논리
- Oracle은 Deno의 청원에 대해 기각 신청을 냈고, 그중 사기 주장에만 대응함
- 방어 논리는 “Node.js 스크린샷을 제출한 것은 맞지만, 다른 증거도 함께 제출했으므로 문제가 되지 않는다”는 쪽에 가까움
- Oracle은 “JavaScript” 상표가 소프트웨어 제품인 Class 9와 기술 서비스인 Class 42를 모두 포괄한다고 밝힘
- Oracle의 설명에 따르면 Node.js 스크린샷은 Class 9 갱신을 뒷받침하기 위한 자료였고, Oracle JET 페이지는 Class 9의 주요 증거이자 Class 42의 유일한 증거였음
- 다만 Oracle은 Node.js 자료 제출이 부적절했다는 점을 인정하지 않고, 이번 신청에서 그 문제를 다룰 필요도 없다고 봄
Node.js 스크린샷이 남긴 의문
- Deno는 Oracle JET 스크린샷만으로 충분했다면 왜 Node.js 스크린샷까지 제출했는지 의문을 제기함
- Oracle JET는 독립형 JavaScript 런타임이 아니라 UI 툴킷임
- Deno는 Oracle JET가 실제로 널리 쓰이는 제품인지, 아니면 상표를 유지하기 위한 존재인지도 문제 삼음
- 핵심 쟁점은 Oracle이 자신과 관계없는 프로젝트의 스크린샷을 왜 상표 사용 증거로 냈는지임
- Ryan Dahl은 Node.js를 개발자에게 이익이 되도록 MIT 라이선스로 공개했지, Fortune 500 기업의 법적 도구로 쓰이도록 만든 것이 아니라고 밝힘
본안보다 절차가 먼저 길어지는 상황
- Oracle은 기한까지 기다렸다가 기각 신청을 냈고, 이로 인해 “JavaScript”가 일반명사인지에 대한 답변이 뒤로 밀림
- Oracle은 이 신청이 청원 답변 기한을 중단시키며, 위원회 결정일 이후 최소 30일 뒤로 답변 기한을 다시 정해 달라고 요청함
- Deno 앞에는 두 가지 선택지가 놓임
- 사기 주장을 철회해 Oracle이 상표 갱신 과정의 허위 표시 문제를 넘기게 둠
- 본안 논의에 들어가기 전에 수개월 동안 절차 문제를 다툼
- Deno는 Oracle이 절차를 이용해 사기 주장 논쟁을 끌고 가며, 상표 자체의 정당성 논의를 늦추고 있다고 봄
JavaScript 이름의 통제권 문제
- Deno의 입장은 Oracle이 JavaScript를 만들지 않았고, JavaScript를 통제하지 않으며, JavaScript 상표를 소유해서도 안 된다는 것임
- JavaScript는 공개 명세인 ECMA-262로 정의됨
- JavaScript는 Google, Apple, Microsoft, Mozilla 등의 대표가 참여하는 산업 그룹 TC39가 유지함
- 주요 JavaScript 구현은 Mozilla, Google, Apple, Microsoft가 만든 브라우저에 있음
- Deno는 Oracle이 JavaScript의 거버넌스, 구현, 발전에서 역할이 없으면서도 이 상표를 법적 압박 수단으로 사용한다고 비판함
참여와 후속 확인 방법
- Deno는 Oracle의 상표 주장에 대한 인식을 확산해 달라고 요청함
- javascript.tm에서 공개 서한에 서명할 수 있음
- 언론인은 Deno에 연락할 수 있으며, Deno는 Oracle의 법적 움직임에 위축되지 않고 사건을 계속 다투겠다고 밝힘
- 진행 상황은 Deno의 Bluesky 계정에서 확인할 수 있음
댓글과 토론
Hacker News 의견들
-
Ryan이 이 일을 맡아줘서 고맙고, 업데이트도 흥미로움
변호사 비용을 내는 입장은 아니지만 Oracle이 몇 달 지연시키려 한다는 건 꽤 정상적으로 보임. 몇 달뿐이라면, 절차가 몇 년 질질 끌리더라도 “좋은” 결론에 도달한다면 할 만함
이제 Oracle에 정중히 청원해보자는 수준이 아니라 실제 법적 절차로 가고 있어서 좋음. 2년 전부터 변호사들이 개입했다면 지금 얼마나 더 진척됐을지 상상하게 됨- 현실적으로 이제 Microsoft가 좋은 평판을 쌓을 때이고, JavaScript를 세상에 넘겨줘야 함
Oracle에게서 이걸 빼앗아와야 함 - “때로는 영원히 걸리는 일을 그냥 해야 한다”는 표현이 좋음
- 이런 종류의 면책성 문구가 요즘 필요하다는 게 씁쓸함
나도 “도와주지도 않으면서 의견 낼 자격은 없다”는 식의 말을 꽤 많이 들어봤음
- 현실적으로 이제 Microsoft가 좋은 평판을 쌓을 때이고, JavaScript를 세상에 넘겨줘야 함
-
이 글에서 제일 좋았던 부분은 Oracle의 스크린샷이 IE에서 찍혔다는 점이었음
지금 기준으론 오래된 것이 맞지만, 여전히 과거로 돌아간 느낌을 줌- 그 스크린샷 시점에는 Node 버전 기준으로 IE11이 이미 나온 지 6년 됐고, Windows 10 이전 버전에서 지원 종료까지 3개월 남은 상태였음
- 2019년을 그렇게 오래됐다고 보긴 어려움
그때도 IE가 아직 존재한다는 걸 몰랐고, 이미 Edge로 대체된 줄 알았음
-
Oracle을 안다면 가능만 하면 법정으로 끌고 갈 것임
Cantrill을 빌려 말하면, 잔디깎이처럼 행동하는 회사임- “회사가 합법적으로 돈을 벌 수 있으면 주주가치 극대화를 위해 법적으로 반드시 해야 한다”는 잘못된 믿음을 의인화하면 그게 Oracle임
목표는 단 하나, 당장 다음 보고 주기에 좋아 보이는 수치뿐임
시장 전체에 장기적으로 순이익을 준 Oracle의 행보는 거의 떠오르지 않음. 더 큰 시장을 키우는 길도 있었지만, Oracle이 단기 라이선스 전략으로 물을 흐리지 않았다면 ZFS는 훨씬 더 많은 곳에 퍼졌을 것임
예전엔 IBM 같은 시장 지배와 합법 테두리 안의 나쁜 행동을 여러 회사에 빗댔지만, 이제 IBM은 희미한 그림자이고 Oracle이 그 왕관을 가져간 듯함
- “회사가 합법적으로 돈을 벌 수 있으면 주주가치 극대화를 위해 법적으로 반드시 해야 한다”는 잘못된 믿음을 의인화하면 그게 Oracle임
-
법률 시스템은 전 세계적으로 근본적으로 망가져 있음
명백한 사기와 기만, 충분한 증거와 여러 증인이 있는 사건으로 큰 회사를 상대로 손해배상을 청구하려 했지만, 성공 보수로 맡겠다는 변호사를 한 명도 찾지 못했음
피고는 의심스러운 방식으로 얻은 수억 달러 규모의 현금과 자산을 쥐고 있었음. 이건 법률 시스템이 망가졌다는 증거로 보임. 변호사들이 증거와 무관하게 승소 가능성을 극히 낮게 봤다는 뜻이기 때문임
걸린 돈이 크고 내 상황도 설명했지만, 많은 변호사들은 어떤 증거가 있는지조차 묻지 않았음. 비기업 주체가 소송에서 이기기 어렵다는 게 그 정도임. 원고에게 맞는 지위, 노출도, 비즈니스 인맥이 없으면 수백만 달러와 실제 사기가 걸린 사건에도 손가락 하나 까딱하지 않음
Node.js 창시자와 JavaScript를 만든 Brendan Eich의 지원이 있는 경우에도 이렇게 다룬다면, 유명하지 않은 나머지는 어떻게 다룰지 뻔함. 특정 사람에게만 작동한다면 법률 시스템을 둘 이유가 뭔지 모르겠음- 답하자면, 공정해 보이는 외관을 주기 위해서임
러시아가 선거를 치르는 것과 같은 이유임
- 답하자면, 공정해 보이는 외관을 주기 위해서임
-
글을 읽고 Oracle JET이 뭔지 궁금해진 사람이 또 있는지 모르겠음
- npm의 Oracle JET 패키지는 주간 다운로드가 약 1,000회이고, 의존하는 패키지는 4개뿐임
의존성 트리를 따라가면 거의 전부 Oracle 패키지이거나 오래전에 죽은 데모·일회성 패키지임
그 주간 1,000 다운로드도 다른 Oracle 프로젝트의 지속적 통합 파이프라인에서 전부 나오는 것일 수 있음. 전화가 집 안에서 오고 있음, Larry - 나도 처음 들어봤고 바로 Google에 검색했더니 “Breville Oracle Jet Espresso Machine” 결과만 나왔음
흥미롭게도 Breville은 기계와 도구 분류에서 “Oracle” 자체에 대한 상표를 갖고 있는 듯함 - Oracle이 JavaScript가 보통명사가 되지 않았다는 터무니없는 논리를 정당화하지 않으려면, 모르는 편이 차라리 나음
그래도 궁금해서 못 참을 테니 말하자면, 내가 보기엔 npm 주간 다운로드 500회짜리 Preact 부트스트래핑 스크립트에 가까움 - Oracle이 공식 파트너들에게 쓰라고 권장하는 UI 라이브러리임
그걸 쓰는 회사에서 컨설팅을 해본 불운이 있었는데, 기능은 꽤 풍부하지만 내부 구조가 완전히 정신없고 매우 구식임 - 그쪽 CLI는 npm 주간 다운로드가 510회이고, JET 자체는 거의 1,000회임
https://www.npmjs.com/package/@oracle/ojet-cli
https://www.npmjs.com/package/@oracle/oraclejet
- npm의 Oracle JET 패키지는 주간 다운로드가 약 1,000회이고, 의존하는 패키지는 4개뿐임
-
제기되는 논점에는 공감하지만, Oracle이 자체 JavaScript 런타임을 갖고 있지 않다는 주장은 성립하지 않음
OracleDB는 꽤 오래전부터 JavaScript로 작성된 트리거를 실행할 수 있음
https://blogs.oracle.com/java/post/multilingual-engine-execu...- 글이 Oracle에 JavaScript 런타임이 없다고 단정한 건 아니고, Oracle JET이 런타임이 아니라는 점을 말한 것으로 보임. 그건 사실임
Oracle이 상표 유지를 위해 제시한 증거가 이것이라면, 말이 안 된다고 짚는 건 정당함. 다만 법정으로 가면 Oracle이 OracleDB에서 쓰는 GraalJS를 증거로 낼 수 있다는 것도 사실임 - Nashorn JavaScript 엔진과 GraalJS도 있음
- 글이 Oracle에 JavaScript 런타임이 없다고 단정한 건 아니고, Oracle JET이 런타임이 아니라는 점을 말한 것으로 보임. 그건 사실임
-
이 싸움을 벌이는 게 반가움. Oracle은 악마 같음
“JavaScript의 주요 구현은 Mozilla, Google, Apple, Microsoft가 만든 브라우저에 있다”고 했는데, Microsoft 브라우저는 그냥 Chromium 아닌가? 더 이상 브라우저를 만들지 않는 회사처럼 보이는데 목록에 넣는 게 이상함. 그러면 Brave 같은 것도 넣어야 하지 않나?- 적어도 Edge에는 아직 uBlock Origin을 설치할 수 있음
순정 Chromium에서는 못 함. Google 쪽 Chromium에는 그 Manifest V3가 기본 활성화되어 있음 - Microsoft 브라우저는 Chromium 그 자체가 아니라 Chromium 기반임
Chrome이나 Chromium에는 없는 기능이 꽤 들어 있음 - Microsoft의 브라우저 엔진은 아직 Universal Windows Platform 앱에서 쓰이도록 지원되는 것 같음. 적어도 Wikipedia는 그렇게 말함
https://en.wikipedia.org/wiki/EdgeHTML - Microsoft를 언급하는 건 맞는 듯함
지금은 거의 쓰이지 않더라도, 예전에는 가장 많이 쓰인 JavaScript 구현을 갖고 있었기 때문임 - https://en.wikipedia.org/wiki/MSHTML
- 적어도 Edge에는 아직 uBlock Origin을 설치할 수 있음
-
Netscape는 새 언어를 Java의 인기에 편승하려고 JavaScript라고 부르고 싶어 했음
Sun Microsystems가 Java 상표를 갖고 있었고, 상표권을 유지한 채 Netscape에 이름 사용을 허락했음. 이후 Netscape는 AOL에 인수됐다가 종료됐고, Oracle은 Sun과 Java 관련 모든 것을 사들이면서 JavaScript 상표도 가져갔음
Sun과 Oracle은 JavaScript 세계에서 의미 있는 일을 한 적이 없지만, Java라는 이름 덕분에 상표를 유지하고 있음
이름의 역사와 회사 인수 역사를 아는 경우가 아니라면 문자 그대로 아무도 JavaScript를 Oracle과 연결하지 않음. 따라서 “JavaScript”의 출처를 식별하는 유효한 표지가 아니며, 취소되거나 EcmaScript International 같은 조직으로 이전돼야 함 -
그냥 ECMAScript라고 부르고 “Java”는 잊으면 됨
“JavaScript”는 애초에 좋은 이름이 아니었고, 원래 JavaScript도 Java와 공통점이 별로 없었음- Brendan Eich는 “ECMAScript는 피부병처럼 들리는 원치 않는 상표명일 뿐이었다”고 했음
이 느낌은 꽤 널리 공유되는 듯함 - WebScript라고 부르면 됨
웹이 아닌 용도도 있긴 하지만, 본질을 부르는 이름임 - “LiveScript”도 나쁘지 않았음
실제로 LiveConnect Bridge를 통해 JS를 Java용 스크립트 시스템으로 만들려는 목표가 있었음. 문제는 LiveConnect가 버그투성이였다는 것임. Microsoft도 비슷한 것을 갖고 있었고 덜 버그가 많았지만, 당연히 IE 전용이었음
그래서 LiveConnect가 그립진 않음. 그냥 “WebScript” 같은 이름으로 부르면 됨 - 잠깐 DHTML이라고 부르던 기억이 있음
아주 오래전 일임 - LiveScript가 그때도 지금도 훨씬 더 나은 이름임
- Brendan Eich는 “ECMAScript는 피부병처럼 들리는 원치 않는 상표명일 뿐이었다”고 했음
-
“상표권 침해”를 피하려면 모든 JS 런타임 소유자가 Oracle 앱이나 도메인에서 동작하지 않게 만들고, 이 사건에 대한 크고 짜증나는 메시지를 띄우면 됨