저자: 『자바와 XML, 개정판』의 역자 최범균(
madvirus@tpage.com)
먼저
『자바와 XML, 개정판』을 나름대로 열심히 번역했는데, 책이 멋지게 출간되어 기분이 좋다. 우릴 믿고 2판의 번역을 맡겨주신 임성춘 팀장님과 열심히 교정작업을 해 주신 이철씨에게 이 기회를 빌어 다시 한번 감사드린다.
『자바와 XML, 개정판』은?
음, 이제 본격적으로 "자바와 XML"에 대한 이야기를 해보겠다. 사실, 1판은 많은 면에서 부족한 점이 있었다. 다른 XML 책들에 비해 기초지식이나 이론적인 부분을 적게 다루고 실용적인 측면을 많이 언급하긴 했지만 책에서 사용하고 있는 제품의 버전이 시대에 뒤떨어져 있다는 문제점이 있었다. 또한 실용적으로 사용할 수 있는 코드도 생각만큼 많진 않았다. 실용적으로 활용할 수 있는 코드 보다는 API를 이렇게 사용하면 된다는 수준에 그친 경우가 많았다. 이러한 한계점은 1판을 번역하면서 아쉽게 느꼈던 부분이기도 했다.
하지만 이번엔 출간된 2판은 1판의 아쉬웠던 점들을 상당히 보충해주고 있다. 저자의 말대로 많은 부분의 내용이 새롭게 바뀌었고 새로운 내용도 많이 추가되었다. 2판에서는 기초적인 내용이 대폭 줄였으며, 대신 다양한 예제를 이용해서 실전에서 XML 관련 API를 사용하는 방법을 잘 보여주고 있다. 특히, SAX, DOM, JDOM과 같이 XML 문서를 사용하는 데 있어서 가장 기본이 되는 API에 대해 아주 상세하게 다루고 있다. 1판에서는 느끼지 못했던 섬세함이 느껴질 정도로 2판에서는 각 API의 동작 방식부터 기본 구조 더 나아가 주의해야 할 사항까지도 자세하게 언급하고 있다.
자바와 XML의 궁합
개인적으로 2판의 내용 중에서 가장 흥미롭게 살펴봤던 부분은 SOAP이나 UDDI와 같은 웹 서비스를 비롯하여 15장에 있는 데이터 바인딩 API였다. 먼저 12장과 13장에서 설명하고 있는 SOAP, UDDI는 차세대 웹 서비스에서 기본적으로 사용될 기술이라는 점에서 2판에 추가될 수 밖에 없었을 것이라 생각한다. 특히, SOAP은 서비스들이 분산되어 웹 환경에서 서비스간에 상호작용 할 수 있는 API라는 점에서 앞으로 "대박"을 터뜨릴 기술로 평가받고 있으며, 일부 프로젝트에서는 실험적으로 사용되고 있다. 물론 점점 더 SOAP을 사용하는 프로젝트가 늘어날 것으로 예상된다.
데이터 바인딩은 개발자의 입장에서 볼 때 아주 편리한 API이다. 한번의 메소드 호출로 XML 문서로부터 자바 객체를 생성할 수 있고, 반대로 한번의 메소드 호출로 자바 객체를 사용하여 XML 문서를 생성할 수 있기 때문이다. 이는 개발자에게 더할 수 없는 편리함을 제공한다. 실제로 이처럼 자바 객체와 XML 문서 사이의 바인딩을 처리해주는 API는 많은 곳에서 유용하게 사용될 수 있다. 예를 들어 DB 테이블에 저장된 데이터를 (DBMS가 제공해주는 기능을 사용하여) XML 문서로 추출해내고 이를 다시 자바 객체로 변환해서 사용한다면 개발자들은 바인딩 API 만으로도 DB 작업을 처리할 수 있게 된다.
SOAP과 데이터 바인딩 API 그리고 EJB가 만나면 환상의 연결 라인이 만들어진다. SOAP을 사용하여 원격서버에서 전달받은 결과 XML 문서를 바인딩 API를 사용하여 EJB의 CMP 빈으로 변환한다면 DB는 전혀 신경쓰지 않고도 분산 환경에서 동작하는 멋진 웹 어플리케이션을 개발할 수 있게 된다. 정말 자바와 XML의 멋진 궁합을 보여주고 있는 것이다.
이처럼 다양한 기술이 함께 사용되는 경우가 아니더라도 XML은 자바와 궁합이 잘 맞아 떨어진다. 자바 진영을 지원사격하고 있는 IBM, 아파치, BEA 등 다양한 기업과 단체 그리고 오픈소스 진영에 있는 무수히 많은 개발자들이 XML과 관련된 모든 규약들을 자바에서 사용할 수 있도록 제품을 만들어내고 있다. 이러한 힘을 바탕으로 "자바 + XML = 이식가능한 코드 + 이식가능한 데이터"라는 명제가 지켜질 수 있게 되었다. SAX나 DOM을 지원하는 파서만 하더라도 각 벤더마다 하나씩 제공하고 있을 정도로 다양하게 존재하고 있으며, 데이터 바인딩 API만 하더라도 썬에서 발표한 JAXB 뿐만 아니라 Castor, Jeus 등 오픈소스로 개발되고 있는 API가 다양하게 존재하고 있다. 즉, 개발자들은 별다른 어려움 없이 자바와 다양한 XML API를 사용하여 원하는 기능을 구현할 수 있는 것이다.
개정판과 궁합의 관계는…
앞에서 언급했듯이 개정판은 XML 자체에 대한 내용보다는 자바 애플리케이션에서 XML API를 어떻게 사용할 것인가에 초점을 맞춰 내용이 구성되어 있다. 독자들은 개정판을 통해 어떤 상황에서 어떤 XML API를 사용해야 하는지 뿐만 아니라 각 API를 자바와 궁합맺는 방법을 단계적으로 습득할 수 있다.
그러나 책에서 보여주는 것만으로는 자바와 XML의 궁합을 완벽하게 이끌어낼 수 없다. 앞에서 언급한 EJB와 데이터바인딩을 응용한 것이라던가, DB 테이블과 XML을 응용하는 등의 자바와 XML의 다양한 궁합은 단순하게 책을 읽는 것만으로는 도저히 도출해낼 수 없다. 독자 스스로 XML을 프로젝트에 응용해보고 다양한 궁합을 도출해내야 할 것이다.
마지막으로, 독자들이 2판을 통해서 자바에서 XML을 마음껏 활용할 수 있기를 바라며 이 글을 끝맺고자 한다.