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

한빛출판네트워크

컬럼/인터뷰

『Enterprise JavaBeans, 3rd Edition』의 저자 리차드 몬슨 해펠과의 인터뷰

한빛미디어

|

2001-10-24

|

by HANBIT

10,434

리차드 몬슨 해펠은 EJB분야의 선도 주자로, 『Enterprise JavaBeans, 3rd Edition』의 저자이자 OpenEJB와 오픈 소스 EJB 컨테이너의 구축자이다. 그는 이외에도 EJB, CORBA, Java RMI 및 분산 컴퓨팅 프로젝트와 관련된 컨설팅 업무를 지난 몇 년 동안 계속해 왔다. 다음은 그가 최근 집필한 『Enterprise JavaBeans』와 EJB 2.0 그리고 그가 참여하고 있는 OpenEJB 프로젝트에 대한 인터뷰 내용이다. 스튜어트: 『Enterprise JavaBeans』를 처음 쓰게된 동기는 무엇이었습니까? 몬슨 해펠: 나는 EJB가 나오기 전에 CORBA, Java RMI 등과 같은 기술을 사용하여 여러 가지 분산 객체 시스템을 구축하는 프로젝트에 참가했었습니다. 내가 EJB를 처음 배우기 시작했을 때, 그때가 아마 1997년, EJB버전 0.8이 처음 출시되었을 때죠. 그때 나는 EJB가 분산 객체 시스템이 가지고 있는 여러 가지 문제를 해결할 해답을 쥐고 있다는 것을 깨달았습니다. 이에 대해 저술을 하기 시작한 것은 놀라운 기술에 대한 나의 열정과 지식을 다른 사람들과 공유할 좋은 기회였다고 생각합니다. 스튜어트: 이 책이 꼭 필요한 사람은 누구입니까? 몬슨 해펠: EJB 전반적인 내용뿐만 아니라 기술적 측면의 세부사항까지도 이해하고자 하는 개발자와 기술자들입니다. 따라서 숙련가나 초보자 모두에게 적합한 책이죠.
Enterprise JavaBeans, 3rd Edition
스튜어트: 이번 개정판의 가장 큰 변화는 무료로 다운 받을 수 있는 워크북이 처음으로 선보였다는 것인데, 개정판에 이 워크북을 첨가한 의도는 무엇입니까? 몬슨 해펠: 워크북은 독자들이 책에 있는 예제 프로그램을 쉽게 운영해 볼 수 있도록 특정 EJB 서버를 쉽게 설치하고 설정하는데 도움을 주고자 넣었습니다. 예를 들어 WebLogic 워크북에서는 WebLogic 6.1을 설치하는 법과 기본 환경 및 데이터베이스를 설정하는 법에 대한 설명은 물론이고 이번 개정 3판에 실린 모든 WebLogic 프로그램을 운영시키는 방법도 상세히 해설해 주고 있습니다. WebSphere 워크북도 그렇고, 그 이외의 다른 워크북 그러니까 현재 개발중에 있는 J2EE 1.3 SDK 워크북도 마찬가지이죠. 따라서 내가 집필한 EJB책과 이 워크북으로 독자 여러분이 함께 공부하면 틀림없이 시너지 효과를 볼 수 있습니다. 독자들의 말에 의하면 이런 종류의 워크북은 전에는 볼 수 없던 것이라고 하더군요. 확실히 워크북은 독자들에게 큰 도움을 줄겁니다. 그리고 독자들이 이 워크북을 무엇보다 좋아하는 이유는 오라일리 웹 사이트에서 PDF로 무료로 볼 수 있다는 것이겠죠? 스튜어트: 『Enterprise JavaBeans』는 JDJ(Java Developer"s Journal), Java Pro, 아마존닷컴에서 2000년 최고의 컴퓨터 도서로 선정된 적이 있더군요. 워크북 이외에 개정 3판에서 바뀐 내용에는 또 무엇이 있습니까? 몬슨 해펠: 아주 많지요. 이번 개정판은 EJB 2.0의 신기능에 맞추어4개의 장이 추가 되었습니다. 추가된 내용은 더욱 더 정교해진 엔티티간 관계를 허용하는 새로운 컨테이너 관리 퍼시스턴스 모델, EJB QL, 새로운 쿼리 언어, 메시지 구동 빈즈(message-driven beans)에 관한 것입니다. 물론 다른 장들도 업데이트 되었고, 워크북도 새로 만들었죠. 제 개인적인 소견으로 이 책이야말로 여태까지 선보인 개정판 중에서 최고의 책이 되지 않을까 싶습니다. 스튜어트: EJB 2.0에서 새로워진 점은 무엇입니까? 몬슨 해펠: EJB 2.0에서 주목할 특징은 두 가지로 요약할 수 있습니다. 컨테이너 관리 퍼시스턴스 모델과 메시지 구동 빈즈의 소개에 대한 항목이죠. 컨테이너 관리 퍼시스턴스(CMP)는 EJB 2.0에서 완전히 재정비 되었습니다. 원래 CMP는 정말 정교했었는데 더 복잡해졌죠. 엔티티 빈즈는 이제 다른 엔티티 빈즈와 함께 매우 자연스러운 이동식 객체 지향 관계로 발전해서 개발자들은 일 대 일, 일 대 다, 다 대 다의 관계를 모델로 만들 수 있게 되었습니다. SQL, Object SQL과 비슷하기는 하지만 EJB에 특별히 맞추어진 새로운 쿼리 언어도 개발되었습니다. 이것에 관련된 새로운 CMP 컨테이너 시스템에 대한 내용은 3개의 장에 걸쳐 설명되어 있습니다. 이렇게 자세한 설명을 한 이유는 이 컨테이너 시스템을 정확히 사용하길 원하기 때문이고 또 그렇게 많은 지면을 할애할 만큼 많은 의견이 있기 때문입니다. 게다가 EJB는 "메시지 구동 빈"이라고 불리는 첫번째 엔터프라이즈 빈을 소개했습니다. 이것은 휴지상태에 있는 거인과 같죠. 사람들은 메시지 구동 빈이 엔터프라이즈 개발에 있어 얼마나 중요한지 그 중요성에 대해 깨닫지 못하고 있습니다. 그것은 EJB와 비동기 메시징의 통합을 허용합니다. 여기서 EJB는 B2B와 A2A 엔터프라이즈 통합에서 다른 시스템과 EJB 플랫폼이 서로 통합할 수 있게 해주죠. 나는 이 새로운 메시지 구동 빈의 엄청난 잠재력에 놀라움을 금할 수 없습니다. 다른 여러 가지 특징 또한 추가 되었습니다. 예를 들어, 로컬 인터페이스가 새로워졌고 이에 대한 자세한 설명은 책에 나와있습니다. 새로운 runAs 인증 모델에서 IIOP 상호운용성에 이르기까지의 모든 특징들을 다루고 있습니다. 물론 결점 없는 규정은 없겠지요. EJB QL은 심각한 결점 몇 가지를 갖고 있으며 로컬 인터페이스의 유용성에 대해서도 논쟁의 여지가 있습니다. 이 책은 이러한 문제점들을 제기함으로써 개발자가 스스로 자기 자신만의 결론에 도달하도록 해줍니다. 다시 말해 그것은 막강한 플랫폼이며 결국엔 EJB가 성공할 것이라는 확신을 심어줍니다. 새로운 규정은 훌륭한 업적입니다. 스튜어트: EJB 2.0 엔티티 빈즈에서 로컬 홈 인터페이스와 리모트 홈 인터페이스 사이의 차이점은 무엇입니까? 몬슨 해펠: 빈즈는 같은 서버나 자바 가상 머신(JVM) 내에서 서로 접속할 때 로컬 인터페이스를 사용합니다. 예를 들어 로컬 인터페이스는 개발자가 모든 매개변수를 복사 해야만 한다거나 RemoteException 타입을 다루어야 하는 네트워크 프로세싱과 연관된 오버 헤드를 피하도록 해줍니다. 그래서 로컬 인터페이스는 프로세싱 호출에 있어서는 개념론적으로 속도가 훨씬 빠르죠. 리모트 인터페이스는 예전과 똑같습니다. 멀리 있는 클라이언트나 각기 다른 프로세스 상에 있는 클라이언트가 빈즈 운영을 수행할 수 있게 해줍니다. 물론, EJB 2.0은 벤더가 리모트 인터페이스를 가지고 자바 RMI-IIOP를 지원하는 것을 요구합니다. 따라서 자바 RMI-IIOP에 대한 암시논리와 의미론이 이 책에서 자세히 다루어집니다. 솔직히 말해, 로컬 인터페이스를 소개하는 것은 충분한 논쟁의 여지가 있습니다. 왜냐하면 대부분의 벤더는 프로그래밍 모델을 바꿔야 할 필요 없이 자바 RMI의 빠른 내부처리 속도에 이미 적응했기 때문입니다. 그러나 로컬 인터페이스는 빈즈로의 리모트 또는 로컬 접속간 의미상 분열을 제공합니다. 우리는 책에서 이와 같은 문제들을 탐구하고 있죠. 스튜어트: 새로운 메시지 구동 빈즈의 작동법에 대해 설명해 주시겠습니까? 몬슨 해펠: 간략히 말씀 드리면, 메시지 구동 빈즈는 비동기식 메시지를 수령하고 처리하도록 디자인되었습니다. 리모트 또는 홈 인터페이스가 없다는 것만 빼고 세션 상태를 갖지 않을 수도 있는 세션 빈과 메시지 구동 빈즈는 아주 비슷해 보입니다. 그대신 컨테이너는 빈 인스턴스에게 메시지를 건네주고 인스턴스는 그것을 처리합니다. 그것은 아주 강력한 프로그래밍 모델입니다. 왜냐하면 그것은 EJB가 다른 시스템으로부터 충격을 완화시켜주도록 합니다. 나는 메시지 구동 빈에 의해 소모될 응용 프로그램으로부터 그것이 처리되는 시기와 방법에 대해 걱정할 필요없이 메시지를 보낼 수 있습니다. 메시지 구동 빈즈는 (API, 엔터프라이즈 응용 프로그램 통합으로 알려진)A2A에서 전혀 다른 시스템을 연결하기 위한 통합점입니다. 그리고 이것은 B2B 시스템에서도 똑같이 중요합니다. EJB 2.0에서 메시지 구동 빈즈는 자바 메시지 서비스(JMS) API에 기반을 두고 있습니다. JMS는 아주 강력한 엔터프라이즈 기술입니다. 따라서 이것은 위대한 출발점이며 미래에 자바 구동 빈즈는 다른 메시지 시스템과 APIs까지 그 영역을 확장시킬 것입니다. 예를 들어 메시지 구동 빈즈를 위해 목표로 설정된 메시지 API는 XML메시징(JAXM)을 위한 자바 AIP입니다. JAXM을 설명해 드리면 그것은 메시지 구동 빈에게 SOAP를 포함한 다양한 프로토콜을 사용해서 ebXML 메시지를 처리할 수 있는 능력을 부여합니다. 스튜어트: EJB와 웹 서비스가 어떻게 서로 연관되어 있습니까? 웹 서비스는 EJB를 위한 대용품입니까? 몬슨 해펠: 웹 서비스와 EJB는 서로 경쟁관계에 있는 기술이 절대 아닙니다. 사실 그 둘은 서로 보완적인 관계에 있지요. 웹 서비스를 인터텟 응용 프로그램 플랫폼에 EJB를 노출시키는 것으로 생각해 보십시오. 연속되는 버전에서 웹 서비스가 EJB의 일부인 J2EE로 구축되기 위해 여러 가지가 지원되는 것을 보게 될 것입니다. JAXM 메시지 구동 빈의 생성이 좋은 예가 되겠군요. 응용 프로그램은 항상 트랜잭션 처리와 EJB 응답을 필요로 할 것입니다. 웹 서비스는 트랜잭션 처리 문제를 실질적으로 해결하지는 않지만, 특히 EJB에서 J2EE의 기존 서비스를 보완할 수 있는 새로운 방법을 제공합니다. 자바 기술에 대한 한빛 도서 및 오라일리 도서 보고싶다면 여기를 방문해 보십시오. 스튜어트: 당신이 OpenEJB라고 불리는 EJB 컨테이너 시스템에 대해 작업중이라고 들었습니다. 그것에 관해 조금 말씀해 주시겠습니까? 몬슨 해펠: 나는 몇 년 전 OpenEJB에 대한 작업에 참가해서 지금까지 계속해서 일해오고 있습니다. 그것은 서버가 아니라 순수한 플레이 컨테이너 시스템입니다. 그래서 그것은 응용 프로그램에 상관없이 서버 플랫폼에 플러그 되어 거의 즉각적인 EJB 호환성을 제공합니다. 그것은 정말 흥미로운 프로젝트이며, 컨테이너가 깨끗하면서도 효과적으로 서버로부터 떨어질 수 있다는 것이 증명되었습니다. 나는 EJB를 위해 컨테이너-서버 SPI(service provider interface)를 옹호해 왔습니다. OpenEJB는 가능성 뿐만 아니라 바람직하다는 근거까지 제공합니다. 현재 OpenEJB는 EJB 1.1을 지원하지만, 구조적으로 EJB 2.0도 작동할 수 있고 2002년 까지 규정이 완벽히 지원될 것을 예상하고 있습니다. 스튜어트: 마이크로소프트의 .NET이 EJB와 J2EE의 강력한 경쟁자라고 생각하십니까? 몬슨 하펠: 마이크로소프트의 .NET에 관한 문제가 점점 재미있어 지는군요. .NET은 EJB와 J2EE의 강력한 경쟁자이고 사람들은 그 둘의 차이에 대해 알아두어야 할 필요가 있습니다. 그러나 솔직히 말씀드려서 .NET은 그렇게 급진적이지는 않습니다. J2EE나 .NET과 같은 기술은 기존 기술로부터 태어난 쌍둥이 같은 존재에 지나지 않습니다. .NET과 J2EE 플랫폼 이전에 마이크로소프트의 MTS와 CORBA가 있었고 그 이전에는 DCE가 있었습니다. 새로운 플랫폼과 표준은 계속해서 생겨나고 없어집니다. 이 과정에서 새로운 플랫폼은 그 이전의 것들보다 더 나은 솔루션을 제공하려고 노력하지만 실질적인 개혁 수준은 사람들의 생각만큼 그렇게 대단하지는 않습니다. 그것들은 이미 20년 전쯤에 이런 저런 형태로 사람들의 머리 속에 이미 상상으로 존재하고 있었던 것들입니다. 지금 매우 촉망 받고있는 자바 플랫폼도 여러 가지 면에서 이와 매우 유사합니다. 상상은 최고의 아첨이죠. 스튜어트: 당신은 jGuru site에 등록된 질문에 답하는 활동을 포함해 자바를 지원하는 온라인 커뮤니티의 적극적인 멤버로 활동해 왔습니다. 개정판을 만드는데 그 일이 어떻게 작용했습니까? 몬슨 하펠: 나는 자바 커뮤니티에서 최대한 적극적으로 활동하려고 노력했습니다. 그렇게 하면서 다른 개발자의 의견을 듣는 일이 많았는데 이것은 나에게 교육적이고 가치 있는 일이었습니다. 자바 커뮤니티는 생각을 공유하기에 안성맞춤이었습니다. 나는 CORBA와 다른 배포 기술을 통해 얻은 몇 년간의 경험으로부터 EJB에 대한 여러 가지 새로운 생각을 다른 사람들에게 알릴 수 있었고 반대로 내 개발자 친구들로부터 엄청난 양의 정보를 얻을 수도 있었습니다. 피드백의 연결 고리는 자바 커뮤니티 내에서 매우 효과적으로 짜여져 있습니다.
TAG :
댓글 입력
자료실