저자: 데이비드 조르단(David Jordan), 역 김대곤
편집자 주: 본 기사는 논란이 되고 있는 Java Data Objects(JDO) 용어 및 그 사용에 관한 문제에 대한 한 전문가의 견해입니다. 본 기사가 O"Reilly & Associates의 견해와 반드시 일치하는 것은 아님을 밝혀두는 바입니다.
Exolab Group은 오픈 소스 엔터프라이즈 소프트웨어를 개발하는 비공식 단체로 필자는 몇 년 전 자바 객체와 XML 데이터의 매핑을 지원하는 소프트웨어를 찾다가 Exolab를 알게 되었습니다. 그 당시 필자는 ODMG(
Object Data Management Group) 표준을 구현한 소프트웨어를 사용하여 자바 객체를 저장하려고 했었죠. 썬(Sun)은 최근에 XML과 자바 객체 간의 매핑을 위한 표준을 제정하기 위한 계획을 발표하였습니다. 이러한 노력은 현재
JAXB(Java Architecture for XML Binding) 표준에 담겨져 있습니다. Exolab은 현재 이러한 매핑을 지원하는
CastorXML이라는 제품을 보유하고 있습니다. Exolab 사람들은 필자에게 자사 제품이 썬의 표준과 매우 유사하며 썬의 표준 또한 거의 따르고 있다고 말했습니다. 이는 마치 필자가 곧 발표될 XML과 자바 객체 간의 매핑을 위한 썬의 표준을 최초로 구현한 무료 소프트웨어를 찾은 것처럼 보입니다.
또한 Exolab은 자바 객체와 관계형 데이터베이스와의 Object-Relational 매핑을 지원하는
Castor 제품을 보유하고 있습니다. 그들은 ODMG 질의 언어인 OQL의 구현을 포함하여 ODMG의 표준을 지원한다고 주장했습니다. 필자는 한때 ODMG의 C++, Java 편집자로 일했으며, Exolab의 제품을 면밀히 조사해 본 결과 Exolab 제품이 ODMG 표준을 준수하고 있지 않다고 결론지었습니다. 그러나 그들은 ODMG라는 이름을 사용하고 있습니다.
필자는 그들의 XML 제품을 ODMG 표준을 준수하는 특정 상용 제품과 연동하여 사용하기를 원했습니다. Exolab 개발팀은 우리가 ODMG 상용 제품과 함께 그들의 제품을 사용할 수 있도록 몇 가지 도움을 주었습니다. 우리는 Exolab의 XML 관련 제품을 ODMG 상용 제품과 부분적으로 통합할 수 있었지만, 우리가 해결할 수 없는 몇 가지 문제들 때문에 그들의 기술을 사용하지 않기로 결정하였습니다.
Java Data Objects (JDO) 전문가 그룹은 1999년 JSR-12라는 이름 하에 투과성의(transparent) 자바 객체 저장 표준을 정의하기 위해 결성되었습니다. Java Community Process는 2002년 3월에 JDO 표준을 발표하였습니다. 현재 JDO 표준을 구현할 상용 제품을 출시한 회사는 약 10개 정도 있습니다.
오픈 소스 진영으로는 아파치(Apache)에서 진행 중인 Jakarta 프로젝트에서 JDO 표준을 구현하는 제품을 개발 중에 있습니다.
JDOcentral은 JDO 표준의 확산을 위해 만들어진 웹사이트입니다.
JDO 전문가 그룹이 결성된 직후, Exolab은 자신들의 제품과 JDO를 연관시키기 시작했습니다. 그들 제품의 이름을 Castor에서
Castor JDO로 바꾸었고, JDO 전문가 그룹에서 최초의 공식 드래프트(draft)을 발표하기 전에 그들의 제품에 JDO라는 이름을 사용하기 시작했습니다. 그러나 그들의 제품은 JDO 표준을 구현하고 있지 않습니다. 또한 Exolab의 사이트 곳곳에서 Java Data Object라는 문구가 광범위하게 사용되고 있습니다.
필자는 Castor JDO의 최신 버전을 조사해 보았는데 그것은 Java Data Objects(JDO) 표준과는 상당히 달랐습니다. Castor JDO의 질의 언어는 ODMG의 질의 언어인 OQL의 이름을 사용하나, ODMG의 OQL과 호환되지 않습니다. JDO는 Java Data Objects Query Language(JDOQL)라는 자신만의 질의 언어를 사용합니다. JDOQL과 OQL은 매우 다르며, 상이한 기능을 제공합니다. 그러므로 Castor JDO와 JDO 표준은 근본적으로 다르다고 할 수 있습니다.
필자는 JDO 전문가 그룹의 설립 회원이었으나 Exolab은 확실히 전문가 그룹 멤버가 아니었습니다. 전문가 그룹 회원에 관한 Java Community Process의 규칙으로 인해 Exolab이 JDO라는 이름을 사용하기 시작할 당시에는 JDO 스팩을 참조할 수 없었습니다. 만약 그들이 전문가 그룹의 일원이었다면 그들은 법적으로 자사 제품이 JDO 표준을 구현했다고 주장할 수 없도록 되어 있습니다.
Exolab이 JDO와 Java Data Objects라는 이름을 사용함으로서 썬(Sun)의 상표를 도용했는지 의심하는 사람들도 있습니다. 크레이그 러셀(Craig Russell)에 따르면 JDO 스팩은 썬에서 관리합니다. "썬(Sun)은 "JDO"라는 줄임말에 대해서는 어떠한
등록 상표권도 주장하지 않습니다만 Java라는 단어에 대해서 이것이 썬 고유의 등록상표라는 권리를 주장합니다. "Java Data Objects"라는 이름은 오로지 단 하나만을 의미할 수 있습니다. 그것은 썬의 JSR-12 스팩입니다."
Castor JDO는 독점 애플리케이션 프로그래밍 인터페이스(API)를 가진 오픈 소스 진영의 소프트웨어이지만 Java Data Objects와 JDO라는 이름을 사용하고 있습니다. Castor JDO는 오직 하나의 벤더가 제공하는 별개의 제품인 반면, Java Data Objects 표준은 여러 벤더들이 지원하며 Java Community Process에서 설계된 것입니다. Exolab은 ODMG과 JDO의 인지도를 이용하기 위해 계속해서 JDO, Java Data Objects, OQL이라는 용어를 사용할 것 같습니다.
안타깝게도 Exolab의 JDO 용어 사용은 업계에 많은 혼란을 야기했습니다. 많은 사람들이 Castor JDO가 JDO 표준을 지원한다는 잘못된 생각을 가지게 되었죠. 필자는 최근에 유명한 애플리케이션 서버 벤더들이 JDO 표준에 대해 공개적으로 비난하는 언급을 들었습니다. 그렇지만 거기에서도 그들은 Castor만을 언급하고 있었습니다. 그들은 Castor가 Java Community Process가 정의한 JDO 표준을 지원한다고 착각했던 것입니다. JDO 표준을 구현한 벤더들은 이러한 시장의 혼란이 주는 어려움을 계속해서 겪고 있습니다. 이제 그들의 주요 고객들도 Castor JDO가 JDO 표준을 준수한다고 착각하고 있습니다.
Castor JDO는 결코 JDO 표준을 지원하지 않습니다.
이제 Exolab의 웹 사이트에서도 Castor JDO가 JDO 표준과 별개이며, 다르다는 사실을 언급하고 있으나 아직까지도 많은 사람들이 이러한 사실을 모르고 있습니다. Castor JDO가 JDO 표준을 지원하지 않음에도 불구하고, Exolab은 JDO라는 용어를 사용함으로서 고객 확보 효과를 보고 있습니다. 몇몇 단체에서 제품의 명칭을 변경할 것을 요구하였으나, Exolab은 꿈쩍도 하지않고 계속해서 사용하고 있습니다. 다시 한 번 더 말씀드립니다만 Castor JDO와 Java Community Process에서 JSR-12로 명명된 Java Data Object 표준을 혼동하지 않기를 바랍니다.
만약 Castor JDO 제품을 사용해볼 생각이었다면 Castor JDO가 JDO 표준을 지원하지 않는다는 사실을 염두에 두고 있어야 할 것입니다. 무료로 객체와 관계형 데이터베이스의 매핑 소프트웨어를 사용할 수 있을지 모르나, 그것은 별개의 API를 가진 소프트웨어입니다. 그러나 JDO 표준을 사용하는 애플리케이션을 만들고 싶다면 현재 사용할 수 있는 상용 제품 중에서 고려해 보아야 할 것입니다.
데이비드 조르단(David Jordan)은 Java Data Objects 컨설팅 및 교육 사업을 제공하는 Object Identity.Inc을 설립했다. 현재 크레이그 러셀(Craig Russell)과 함께 O"Reilly에서 곧 출간될 JDO에 관한 도서를 공동집필 중이다.