2007년 12월 23일 일요일

2007년 10월 1일 월요일

soabook FAQ에 올라온 webservices-rt.jar 못 찾는 문제

mvn install을 하면 아래와 같은 오류가 나옵니다.

Missing:
----------
1) glassfish:webservices-rt:jar:system

Try downloading the file manually from the project website.

Then, 생략 ...
이것은 말 그대로 webservices-rt.jar 파일을 못 찾는 건데, J2EE 버전이 올라가면서 이름이 webservices-rt.jar에서 appserv-rt.jar 파일로 이름이 변경되어 못 찾는 문제입니다.
저는 symbolic link를 걸어 해결을 했습니다(복사를 하거나 pom.xml에서 파일 이름을 바꿔줘도 됩니다).

예) ln -s appserv-rt.jar webservices-rt.jar

참고 : soabook faq

2007년 8월 22일 수요일

SOA JWS 토론을 위해 구글 그룹 안내

http://groups.google.com/group/soabook
입니다. 공개 그룹이므로 자유롭게 토론 내용을 보고 참여하실 수 있습니다.
혹시 원서의 오탈자를 보셨거나 질문이 있으시면 이 그룹을 통해 공유하기를 권합니다.
번역서에서는 최대한 그러한 부분을 반영하도록 노력하겠습니다.

2007년 8월 17일 금요일

SOA JWS 번역서 공식 페이지가 열렸습니다

http://www.wikibook.kr/pages/405000
입니다. 아직 정보가 많지 않습니다만, 책의 기본 정보를 보실 수 있습니다.
SOA JWS 번역서 많이 기대해주세요~

2007년 7월 24일 화요일

Binding VS Mapping

어제 스터디에서는 매우 흥미로운 주제에 사로잡혔습니다.
JAXB 2.0을 다루면서
Binding과 Mapping의 구분을 두는 개념이 책에 나왔기 때문입니다.
솔직히 저는, 바인딩과 매핑이 크게 다르지 않다고 생각했었는데,
책에서는 바인딩을 유도형, 매핑을 대응형으로 보고 있습니다.
유도형이란, 한쪽(자바 클래스 또는 XML 스키마)로부터 반대쪽이 유도되는 형태이고, 대응형은 이미 존재하는 양쪽을 이어주는 형태입니다.
따라서 바인딩은, From Java니 From XML이니 하는 프로그래밍 모델이 나올 수 있습니다. (JAX-WS와 매우 흡사하지요) 하지만 어느 한쪽은 이제 만들 대상이고, 이미 있는 것을 쓸 수는 없습니다.
하지만, 이 세상에는 기존의 리소스들이 엄청나게 많습니다. 매핑은 그런 데이터의 처리에 적합합니다.
재밌는 것은, 제가 2003년 방카슈랑스 프로젝트를 할 때, 바로 그 문제, 즉 매핑의 요구가 있었다는 사실입니다. 그리고 이 책으로 돌아와보면, 그때 만들었던 커스텀 매핑 방식이 매우 흡사하게 소개되고 있다는 것이 참 놀랍습니다.
아마도, 이런 문제는 (저자가 컨설팅을 업으로 하고 있다는 점에서) 자주 드러나나 봅니다. 사실, XML만의 관점으로 보면 XSLT로 다 되겠지만(실제 저도 방카슈랑스 할 때 XSLT를 도입할 뻔 했습니다), 현재 소프트웨어 실행 플랫폼이 자바와 같은 오브젝트 지향 프로그래밍 언어로 되어 있어서 변환이 늘 필요로 합니다. 그래서

XML 스키마 -> (JAXB로 바인딩된) 자바 클래스 -> 기존 자바 클래스

와 같은 방식으로 매핑을 해결한다는 것이죠.

다소 비효율적으로 보입니다만, 실제 썩 잘 돌아가는 얼개입니다. 더 자세한 이야기는 책의 본문을 기대해주세요.

2007년 7월 19일 목요일

예제 오픈 소스 프로젝트 출범!

http://code.google.com/p/soabook/
에 책의 원저자인 Mark Hansen이 올렸습니다.
가장 최신의 소스 코드가 올라올 예정이므로,
원서를 보시는 분들도 이쪽 예제를 쓰시기를 권해드립니다.
번역을 하면서 예제도 더 좋아지기를 희망합니다.

2007년 7월 14일 토요일

기술의 정반합

안녕하세요. 팀 블로그에 올리는 첫 글입니다. 개인적으로 팀 블로그란 매개가, 같은 주제에 대한 다양한 시선을 접할 수 있다는 점에서 매우 흥미롭다고 생각했었는데, 이렇게 직접 참여해서 경험해볼 수 있는 좋은 기회가 주어졌네요.

이 책의 1장을 읽어내려가면서, 저는 기술의 변화에는 흥미로운 흐름이 존재한다는 생각을 했습니다. 어떠한 시대에는 보통, 그 시대의 요구를 반영하는 이상이란 것이 출현하기 마련입니다. 이러한 이상을 구체화한것이 개념이라면, 그 개념을 실제로 만드는 것은 구현이라고 할 수 있습니다. 하지만, 현실에 적용하기에는 다양한 변수를 고려해야 하기에 개념과 구현간의 격차는 아무래도 클 수 밖에 없겠지요. 현대의 컴퓨팅 환경의 특징중 하나가, 각 요소간에 그 경계를 넘나드는 통합과 복합화라는 것을 감안하면 이러한 격차는 더욱 두드러져 갈 것임을 짐작해 볼 수 있습니다. 게다가 사회적, 문화적 요인이나, 각 집단간의 정치적 입장까지 고려하면, 아이고~ 무엇인가를 실체화하는 것은 꽤나 골치 아픈 일이긴 하군요.

그 가운데, 웹이라는 네트워크가 중심이 되는 오늘날의 세상은 크게 두 가지를 요구합니다. 분산된 환경들간의 통합. 여러 개별적인 기능들을 급변하는 환경에 맞게 빨리 조합해서 재창조. 이 두 가지 요구를 해결하기 위해서 나타난 것이 소위 SOA라고 할 수 있겠습니다. 앞서 말한 두 가지 요구처럼, SOA에 대한 정의도 제각기 다릅니다. 추상화 단계(Level of Abstraction)의 관점에서 설명하는 이도 있고, 혹자는 통합(Integration)과 상호운용성(Inter-operability)의 관점에서 설명을 하기도 합니다. 사실, 이 모든 요소들에 대한 요구들을 다 해결하고자 하는 것이 SOA의 이상이니만큼, 아직까지도 그 개념을 속시원하게 정의내리기는 쉽지 않습니다.

이러한 SOA를 구현할 수 있는 기술에는 여러가지가 있겠지만, 현재 SOA를 구현하는데 있어서 가장 대표적이고 대중적인 기술이라면, 이 책에서 다루고 있는 Web Services가 있겠습니다. 그리고 그 중심에는 엔터프라이즈 시장을 평정해버린 자바 웹서비스가 위치하고 있겠구요. 그리고 책에서 말하는 것처럼, 웹서비스는 WS-* 라고 총칭되는 엄청난 표준들을 쏟아내며 허우적거렸습니다. 그러다가 근래에는 REST라고 하는 대안적인 아키텍쳐 스타일이 주목을 받고 있기도 하지요. 그리고 새로운 표준, 새로운 기술들과 함께 돌아온 자바 웹서비스는, 보다 간결한 모습을 띄고 있습니다.

비대한 표준기술의 등장 그리고 퇴화. 대안 기술의 등장과 열광적인 환호. 다시 표준기술의 경량화. 비단, 웹서비스만이 이런 기술적 흐름을 타는 것은 아니지만, SOA와 웹서비스에 거는 기대가 컸던 만큼, 이러한 흐름이 더 뚜렷하게 나타났다고 생각해 볼 수도 있겠습니다. 그런데 여기서 두 가지 정도의 질문이 발생하죠. 그러면 왜 처음부터 간단하게 만들지 못했어? 또는 대안기술로 충분히 왠만큼 커버할 수 있는데, 대안기술로 갈아타야되지 않겠어? 류의 질문들 말이죠.

하지만, 인간의 모든 역사가 그러하듯이, 기술의 발전도 시행착오를 거쳐서야 발전합니다. 웹서비스가 포용하려고 했던 요구들을 정의하는 과정에서, 너무 많은 것을 담으려 했던 것이 문제였겠죠. 결국, 다양한 요구와 환경을 모두 수용하려했고, 점차 확장을 통해 그 몸집을 불려 왔기에 필연적으로 따라오게 되는 문제였을 뿐입니다. 구현이 어렵고 복잡하다. 데이터의 양이 비대해진다. 개발자 뿐이 아닌, 서비스 이용자측면에서도 접근성이 낮다… 하지만, 이런 단점들에도, 불구하고 여전히 웹서비스는 시장의 중심에 있는 기술임에는 틀림없습니다. 아직 하나의 단순한 아키텍쳐 스타일에 불과하고, 해석이 분분한 REST. 좋은 대안기술로 발전할 수는 있겠지만, 단순성이 만병통치약은 아니듯이, 그 나름의 용도는 분명히 제한적일 것입니다. 아직 검증되어야할 부분도 많구요. 반면에 엔터프라이즈 시장의 요구는 더더욱 커져만 가고, 동시에 자바가 축적해온 수많은 시행착오를 거친 노하우들은 그 자체로 큰 자산이 됩니다. 그리고 중요한 것은 자바 웹서비스도 이제, 그러한 REST의 장점들이나, 다른 단순성을 위한 시도들을 받아들여, 한 단계 더 도약하려고 하고 있다는 점입니다. 좀 늦었지만, 이제야 더 큰 확산을 위한 채비를 마쳤다고 할까요? 웹서비스가 이제는 확산의 시기를 넘어선 기술이라는 가트너의 보고서내용은 아직은 조금 시기상조인지도 모르겠습니다. 이제부터가 시작일지도 모르지요.

서울 가는 길이 하나가 아니라고 하듯이, 기술도 여러가지 길을 따라 진화합니다. 표준기술이 시장을 평정할 일도, 대안기술이 체제를 전복할 일도 쉽게 일어나지 않습니다. 저마다 각자의 쓰임새에 따라 길을 택할 뿐이고, 기술은 그 가운데도 표준과 대안이 서로 경쟁하고 대립하며, 정-반-합의 충돌로 새로움을 끊임없이 만들어냅니다. 더 나은 표준, 더 나은 기술이 생겨나겠지요. 하지만, 그 기술도 얼마 있어 등장할 새로운 요구가 도래하면, 또 다시 한참동안 새로운 정반합의 길을 가야만 합니다. 그리고 그 길 가운데서 어느 것을 선택할것은, 각자가 선택해야할 몫이겠지요.

보다 즐거운 자바 웹서비스라는 변화. 이 책이야말로 그런 새로운 변화의 도래를 알리는 책인것 같아, 하나 하나 책장을 넘기는 순간이 즐거운 것 같습니다. 아무쪼록 어서 알찬 번역으로 가득찬 이 책이 세상에 선보여서, 좀 더 많은 분들이 웹서비스에서 변화를, 새로운 즐거움을 맞이하게 되었으면 좋겠습니다 :)