메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

한빛랩스 - 지식에 가능성을 머지하다 / 강의 콘텐츠 무료로 수강하시고 피드백을 남겨주세요. ▶︎

컬럼/인터뷰

『자바와 XML, 개정판』의 저자 브렛 맥래프린과의 인터뷰

한빛미디어

|

2002-11-12

|

by HANBIT

12,852

브렛 맥래프린(Brett McLaughlin)은 『자바와 XML, 개정판』의 저자로, 자바, XML, 그리고 오픈 소스 공동체에서 활발하게 활동하고 있다. 이 외에도 JDOM project, ApacheTurbine, Enhydra Zeus에 긴밀하게 관여하고 있으며, 정기적으로 자바와 XML 사이트에 도움이 될만한 기사들을 기고하기도 한다.

브렛(Brett)은 『자바와 XML, 개정판』에서 API와 도구들, XML의 기법들을 사용하여 최종 결과로 나온 데이터와 코드가 모두 이식성이 풍부한 실-세계의 자바 애플리케이션을 구축하는 법을 보여준다. 이에 오라일리에서는 브렛 맥래프린을 만나 『자바와 XML, 개정판』에서 새롭게 수정된 내용에는 어떤 것이 있는지 그리고 자바와 XML이 어떻게 함께 작동하는지에 대해 이야기를 나누었다.

스튜어트: 이 책은 누가 봐야할 책인가요? 구체적으로 자바나 XML 수준이 어느 정도 있어야 『자바와 XML, 개정판』을 이해할 수 있을까요?

맥래프린: 단도직입적으로 말하면 중간수준의 개발자들이 주 대상입니다. 초판은 경험이 별로 없는 전문가들도 충분히 볼 수 있을 정도의 수준이었지요. 그 때에는 XML 관련도서가 많이 나와 있지 않았기 때문에 그 정도의 수준도 적절해 보였습니다. 그렇지만 『XML 시작하기』를 비롯하여 『XML 파워 레퍼런스』와 같은 양질의 XML 개론서들이 많이 나오면서, 개정판에는 좀 더 수준있는 정보를 다룰 수 있었습니다. 실제로도 초판에서는 개론격으로 다루었던 XML, DTDs, XML Schema, XSL에 대한 4챕터를 개정판에서는 한 챕터로 모았으니까요. 이는 곧 "고급 SAX", "고급 DOM", 그리고 "웹 서비스"와 같은 진보된 주제들로 3 챕터를 추가했다는 것을 의미하기 때문에 개인적으로는 이에 대해 아주 기분이 좋습니다.

이 책을 시작하기 위해서는 기본적으로 어느 정도는 XML에 익숙하리라는 가정하게 내용을 서술하고 있습니다. 만약 독자들이 이 책을 이해하는데 부담을 느낀다면 기꺼이 다른 XML 개론서부터 한 권 더 볼 것을 추천합니다. 자바관련 지식에 대해서는 별로 크게 가정하는 것은 없습니다. 자바 컴파일러나 기본적인 프로그래밍 기술을 사용하는 법은 다루지 않았습니다. 자바의 classpath 사용법만 알아도, 충분하리라 생각합니다. 서블릿도 약간 언급하였고, Java I/O에 대해서도 약간 언급하였지만, 본인이 이 공부하겠다는 의지만 있으면 그렇게 어려운 부분은 아니라고 생각합니다.

스튜어트: 지금까지 말씀해주신 것 이외에 이번 개정판에서는 어떤 새로워진 점이 있습니까? 초판이 출간된 이후로 자바와 XML 세계가 상당히 변했는데요.
자바와 XML, 개정판


맥래프린: 일단 위 질문에 대해 흔해 빠진 대답으로 "무엇이 변하지 않았는가?"부터 집고 넘어갑시다. 편집장님의 우려에도 불구하고, 저는 초판의 각 챕터를 너무 오래된 정보라는 가정 하에 완전히 다시 검토하기로 결정했습니다. 그 결과, 상당히 많은 부분을 재집필하였죠. 이런 과정을 통과해 원래의 내용이 변하지 않고 50 퍼센트 이상 살아남은 챕터는 겨우 두 챕터뿐이었습니다. 6개의 챕터는 완전히 새로 집필하였고요. 게다가 완전히 새로운 주제를 다루는 챕터를 몇 개 더 추가했습니다. 이를테면 "고급 DOM", "고급 SAX", "고급 JDOM", "JAXP", "웹 서비스", "SOAP", "데이터 바인딩"을 들 수 있겠네요. 상당한 분량의 내용일 뿐만 아니라 거기에 개인적으로 중요하다고 생각되는 새로운 주제들도 많이 다루었지요.

자바와 XML 세계의 변화에 대해 따져보면, XML 세계가 넓어진데 비해 실제적인 변화는 그리 크지 않았습니다. 굳이 비유하자면 XML에 연루되지 않고는 맥도날드 빅맥 버거조차 할 수 없을 정도라고 할 수 있을까요? 아무튼 간에 제가 내려야 할 가장 큰 결정은 무엇을 다루느냐에 대한 것이었죠. 예를 들어 API들(SAX, DOM, JDOM, JAXP)은 실제로 크게 변하지 않았습니다. 내년 초쯤이면 출시되리라 생각되는 DOM Level 3의 최신 DOM 규격을 조금 다루기는 했지만, 그 보다는 더 심도 깊게 주제들을 파고들면서 많은 예제들을 제공하는데 목표를 두었습니다. 그리고 지난 해에 이슈화 되었던 주제들에 관하여 언급하려고 노력했죠.

줄줄이 새로 늘어놓은 챕터들을 보면 짐작하겠지만, 상당히 많은 활동이 XML 세계에 있습니다. 그리고 쉽게 손댈 수 없는 것도 많습니다. "다른 책에 넣기에는 부적합했던 자바와 XML의 잡다한 것들"에 대해 그냥 쉽게 책을 하나 더 집필할 수도 있었습니다. 아마도 그렇게 하면 많은 것들을 새로이 발견해서 페이지를 채울 수 있었겠지요. XML은 지금 폭발적으로 성장하고 있습니다. 그래서 최선을 다해 따라 잡으려고 노력했습니다. 쉬운 내용은 아니지만 독자들이 이 개정판에 압축해 넣은 많은 내용에 관심을 가져줄 것이라고 생각합니다.

스튜어트: 초판이 발간된 이후로 XML 사용방식이 변했다고 생각하십니까?

맥래프린: 약간은 변했다고 할 수 있지요. 사람들은 대부분 API에 대해서는 잘 알고 있기 때문에 더욱 고급 작업들을 하고싶어 하죠. 바로 이런 이유 때문에 저는 예제 모두를 재평가 해서 보강하려고 노력했습니다. 게다가 "API는 고수준일수록" 훨씬 더 재미있습니다(이게 무슨 의미인지 모르겠다면, 일단 책을 한 번 보시고 알아보심이 좋을 것 같네요). 아시다시피 데이터 바인딩, XML-RPC, SOAP와 같은 주제 중 상당수가 초판을 쓰던 1년 전만 하더라도 실제로 그렇게 흥미로운 분야가 아니었다는 것을 알게 될 것입니다.

스튜어트: XML 애플리케이션 중에 인상깊은 사항이 있다면 무엇이 있습니까?

맥래프린: 음, 뭐 그렇게 특별한 건 없습니다. 내 말은, XML이 데이터 표현에 관한 것이고 어느 애플리케이션에도 항상 데이터는 있게 마련이라는 거지요. 머리를 그렇게 많이 써야만 황무지 벌판에서 XML을 볼 수 있는 것은 아닙니다. 아시다시피, 지피루베(JiffyLube)와 맥도날드(McDonalds)를 비롯한 기타 여러 업소에서 이미 XML을 사용하고 있습니다. 독자들은 우리가 생각했던 것보다 훨씬 더 영리합니다. 따라서 직접 책을 쓴다면 상상할 수 있는 모든 적용 사례들에 대해 심사숙고 해야 합니다. 물론 자신이 항상 최선을 다했다고 생각하겠지만, 30초만 지나면 어떤 사람이 나타나 또 질문을 합니다. "그 책에서 [정말 교묘한 XML 사용법들을 끼워 넣어] 다루었나요?" 그러면 나는 그냥 머리를 가로저으며 이렇게 말합니다. "음, 아닌데요, 그 점에 대해서는 생각해 보지 않았어요." 그런 것은 어디에나 있기 때문이지요.

XML은 방대한 문서를 표현하고(DocBook), 웹 사이트를 디자인하고(Cocoon, XSLT), 데이터 바인딩을 하는 것과 같이 상당히 표준적인 몇몇 사용법들 뿐만 아니라 롤플레이 게임, 항공 모의실험이나 NASA에서도 사용됩니다(나는 그것이 두려워 죽겠지만, 정말 멋진 일입니다). 혹 나에게 "이런 저런" 분야에서 XML이 사용되는지 물어 보면서 빈 칸을 채우라고 한다면, 어느 곳이든 어떻게든 그 대답이 "그렇다"가 될 거라는 것을 최대한 보증하고 싶습니다.

스튜어트: 자바와 XML 모두 플랫폼에 구애받지 않는 테크놀러지입니다. 양자의 결합이 진정으로 이식성있는 애플리케이션을 구축하는 새로운 기회가 되었다고 생가하십니까?

맥래프린: 네, 그렇습니다. 그렇지만 그렇게 흥분되지는 않네요. XML은 분명 사람들의 관심을 많이 받고있는 기술인 만큼 이를 둘러싼 과대선전도 대단합니다. 뭐 그리 나쁜 일은 아니지요. 단지 XML을 사용하는 법에는 약간 세심한 생각이 필요할 뿐입니다. 사람들이 XML을 자신만의 독점 포맷으로 포장하고, 그것을 애플리케이션에 종속적인 패러다임으로 코드화하는 것과 같은 갖가지 어리석은 짓들을 하는 것을 봅니다. 그래서 XML과 같은 플랫폼에 독립적인 테크놀로지를 완전히 이식성이 없도록 만들어 버리지요. 다른 것들과 마찬가지로, 자바와 XML도 쉽게 FORTRAN과 LISP처럼 아무 쓸모가 없는 것(개인적 견해임)으로 변해 버릴 수 있습니다. 이식성이 그렇게 높지 않다는 점에서 FORTRAN과 LISP이 그렇게 훌륭한 언어들은 아니라고 생각합니다. 기회가 닿아 자바와 XML을 사용하면 조금 더 앞서 갈 수 있지만, 그렇게 한다고 해서 자바와 XML을 절대 망가트릴 수 없다는 뜻은 아닙니다. 조금만 잘못해도 망가질 수 있으니까요.

스튜어트: 요즘들어 웹 서비스에 관한 이야기들을 상당히 많이 합니다. 제가 보기에 이러한 종류의 애플리케이션에서 자바와 XML이 중요한 역할을 할 수 있을 것 같은데요. 이 책이 웹 서비스와 관련된 작업을 하는 개발자들에게 얼마나 도움이 될까요?

맥래프린: 물론, 도움이 될 겁니다. 자, 좀 설명해보지요. 이 책은 웹 서비스를 목표로 한 책은 아닙니다. UDDI에 관한 챕터, WSDL에 관한 챕터, SOAP-RPC와 SOAP 메시지 처리에 관한 챕터를 비롯한 상당수의 챕터가 빠져있다는 것을 알 수 있을 겁니다. 그러나 아직까지 그러한 책이 실제로 출간된 것은 보지 못했습니다. 어쨌든 간에 상당한 시간을 내가 원하는 주제에 투자할 수 있었습니다. 전체 챕터을 SOAP에 할애했고 (비록 그 개념들이 토론 중이긴 하지만, 아파치 SOAP 구현을 다루었지요), 그 점을 매우 다행이라고 생각합니다. 여기에서는 설치, 설정, 사용법, 서비스 작성, 배치, SOAP 클라이언트 등등을 다루고 있습니다. 특별히 웹 서비스에 관련 챕터를 더 심도있게 다루었지요. 이 장은 SOAP를 다룬 장 다음에 이 부분이 설명되고 있는데 특히 WSDL, UDDI와 같은 웹 서비스 부분을 자세하게 다룹니다. 독자들을 가장 박식한 지식인으로 만들어 주지는 않겠지만, 견고한 개론, 많은 작동 코드들로 웹 서비스를 충분히 시작할 수 있게 해주리라 생각합니다. 웹 서비스와 관련된 작업을 하고 있는 사람들이라면 이 책이 다루고 있는 방대한 범위에 정말 만족할 겁니다. 특히 "웹 서비스"라고 이름을 붙이지 않은 책으로 말이지요.

스튜어트: JDOM 프로젝트의 공동창립자로서, JDOM의 목적과 오늘날 JDOM이 처한 입지에 대해 한 말씀 부탁드립니다.

맥래프린: 정말 좋은 질문입니다. JDOM의 공동 창립자인 제이슨 헌트(Jason Hunter)와 나는 이것에 관해 이야기를 나눈 적이 있었습니다. JDOM은 오픈 소스 프로젝트이고, 그 목표는 자바를 사용해서 DOM보다 더 쉬운 객체 모델을 제공하자는데 있습니다. DOM은 매우 유용합니다. 1년 전에 비해 지금으로서는 별로 흠잡을 데가 없습니다. 그러나 DOM은 어느 플랫폼에서나 작동하도록 작성되었고, 그 때문에 대가를 지불하고 있지요. 자바 코드와 상호운용될 필요가 있는 C 코드를 작성할 때는 DOM을 선호하지만, 대개의 경우 그냥 자바로 작업합니다. 그렇기 때문에 자바 콜렉션(Java Collections)의 파워가 필요했고, 오버로드된 메소드들을 비롯한 수 많은 자바-관용구가 필요했습니다. 이런 것들은 DOM도 제공해줄 수 없는 것들입니다. 그래서 그러한 상황에서라면 JDOM이 나에게 훨씬 더 도움이 됩니다. 현재, JDOM은 썬 마이크로시스템즈(Sun Microsystems)사의 자바 스펙 검토(JSR, Java Specification Review) 과정에 있습니다. 그 의미는 본질적으로 많은 사람들의 공개적인 검토를 거쳐서 상당 정도의 표준화 과정을 거칠 것이라는 뜻입니다.

이제 좀 더 명확히 밝혀 둡시다. 단지 JDOM이 JSR 과정 중에 있다고 하는 것이 "바로 그것이 표준"이라거나 혹은 "다음번에 JDK로 들어갈 것"이라는 뜻은 아닙니다. 사람들은 이러한 말들이 대부분 나에게서 비롯되었다고 말합니다. 그런 이야기를 들으면 별로 기분이 좋지 않습니다. 그렇지만 JDOM이 약간 더 신뢰성을 확보한다는 의미는 됩니다. 그리고 미래의 JDK 버전에 포함될 가능성이 더욱 커진 것은 사실입니다. 물론 그건 좋은 일이지요. 나는 JDOM이 다른 자바 패키지에서 더욱 더 많이 발견되기를 진정으로 기대합니다. 예를 들어 XML 메시지처리를 위한 자바 API인 JAXM과 같은 패키지에 말이지요. 그러면 상황이 정말로 JDOM에 유리하게 돌아가게 되겠지요. 물론 각 저자들이 뒤떨어지지 않고 따라와 준다면 말입니다.

Stewart: JDOM은 어떤 종류의 라이센스를 가지고 있습니까?

맥래프린: 기본적으로는 아파치 라이센스를 따릅니다. 아파치 라이센스는 FreeBSD 스타일이지요. 다름 아닌 그냥 "서비스 맥주, 공개 영역" 같은 것입니다. 최소한으로 제한된 라이센스만이 적용됩니다. 별다른 부대조건없이 JDOM을 여러분의 프로젝트에 사용해도 좋습니다. 사용한다는 통보조차 할 필요가 없으니까요. 물론 알려 주시면 좋지요. JDOM 프로젝트 웹 사이트부터 방문해 주시기를 바랍니다. 그렇지만 그 라이센스 때문에 JDOM을 사용하지 못하는 사람은 없으며 우리는 그 점이 아주 자랑스럽습니다.

스튜어트: JDOM, 오라일리사를 위해 책을 집필하는 것을 제외하고, 밤을 지새울 만한 이유가 있다면 또 무엇이 있을까요? 혹시 독자들에게 알려 주고 싶은 현재 진행중인 다른 프로젝트는 없나요?

맥래프린: 글쎄요, 내가 계속해서 일을 하는 데 그 이상이 필요할까요? 나는 그렇게 생각하지 않습니다! 진지하게 말해, 모든 시간을 Lutris Technologies사를 위해 일합니다. 이 회사야말로 내가 아는 가장 멋진 회사라고 생각하고 있기 때문이죠. 거기에서 우리는 애플리케이션 서버를 만듭니다. 그 서버는 오픈 소스고, 한계를 넘어 시대를 앞서가며, 말로는 다 할 수 없는 수 많은 좋은 것들이 있지요. Enhydra.org 웹 사이트를 가보면 현재 어떤 일이 진행 중인지 점검해 볼 수 있습니다. 그리고 저는 결혼한 몸이기 때문에 일만 심하게 해서는 안됩니다! 여가 활동으로 기타 연주를 즐기기도 하고요. 내가 하는 일들의 압축파일을 풀어 놓는다면 아마 내 하루는 24시간이 아니라 30시간이나 40시간은 족히 될 겁니다.

스튜어트: 『자바와 XML, 개정판』이 오라일리 동물을 표지로 사용한 것에 대해서는 기분이 어떻습니까? 거기에 나온 사자들이 매우 멋진데요.

맥래프린: 정말로 잘된 일입니다. 예전 책 표지에 있던 장난감도 좋지만요. 간단히 말해 제 아내는 첫 번째 책을 아주 말끔히 싸서 액자에 넣어주었고, 나는 그것을 사무실에 걸어놓았습니다. 대개의 경우 개정판에 까지 그런 정성을 뻗치지는 않지만 책 표지가 워낙 새로워진 지라, 벽에다 한 권 더 걸게 되었습니다. 그렇게 해 놓고 나니 마음에 드네요! 사자들 역시 아주 기가 막히게 잘 어울리고요. 박새라든가 땅돼지 같이 친구나 가족들에게 쉴새 없이 설명하게 될 그런 것으로 겉 표지가 장식될까봐 걱정했었는데, 다행스럽게 그럴 염려도 전혀 없구요.


브렛 맥래플린(Brett McLaughlin)은 자바, XML, 기업 애플리케이션, 오픈 소스 소프트웨어에 관한 한 선두적 권위자이다. 그는 루트리스(Lutris Technologies)사의 Enhydra 전략가이다. 이 회사에서 그는 Enhydra 애플리케이션 서버를 위한 전략과 방향을 책임지고 있다. 이 외에도 수 많은 오픈 소스 프로젝트의 설립자이거나 공동설립자로서도 왕성한 활동을 하고 있다. 예를 들어 JDOM (현재는 선사의 JSR), ApacheTurbine (서블릿-기반의 웹 애플리케이션 프레임워크), Enhydra Zeus (XML 데이터-바인딩 프레임워크) 등이 그 프로젝트들이다. OpenEJB, jBoss, Apache Cocoon 프로젝트의 기여자로서 그가 맡은 역할 때문에 그는 자바와 XML 혁신의 한 가운데 서게 되었다. 테크놀로지에 공헌함과 더불어, 브렛(Brett)은 책도 많이 쓰는 작가이다. 『자바와 XML, 개정판』의 저자이자 자바와 XML 도구들 그리고 테크놀로지에 관한 IBM사 뉴스그룹의 중재자이며, flashline.com의 격주간 구성 컬럼니스트이다. 그는 수 십편의 기사들을 IBM Developer Works, JavaWorld, 그리고 oreilly.com에 기고한 바 있다.
TAG :
댓글 입력
자료실

최근 본 상품0