I Think, Therefore IM
|
1998년 Jeremie Miller 라는 메신저(IM) 서비스 개발자가 재버(Jabber) 라는 이름의 기술을 설계하고, 이듬해인 1999년에 jabberd 라는 서버 소프트웨어를 오픈 소스로 공개하게 됩니다. 통신 프로토콜에 XML 스트림(XML Stream)을 도입하여 다양하게 확장할 수 있도록 하자는 아이디어가 호응을 얻어 재버(Jabber) 커뮤니티는 여러 플랫폼으로 확대되고 다양한 요구들을 수용해가기 시작합니다. 성장을 거듭한 커뮤니티는 2001년 설립한 JSF (Jabber Software Foundation)을 중심으로 표준화와 문서화 작업을 시작하고, 2004년 두 개의 RFC (3920, 3921) 를 출판하는 것으로 결실을 맺고 SIMPLE 과 함께 IM 의 표준 프로토콜 중 하나로 자리매김합니다. 이 때부터 Jabber 는 XMPP (Extensible Messaging and Presence Protocol) 라는 새 이름을 얻게 됩니다. JSF 역시 후에 XMPP Standards Foundation 이라는 이름으로 바뀝니다.
2005년 구글(Google)이 게임에 뛰어들면서 XMPP 의 도약이 이루어집니다. Google Talk 라는 메신저와 음성 채팅 서비스를 XMPP 로 구현했을 뿐만 아니라, Jingle 이라는 이름의 실시간 미디어 전송용 XMPP 확장(XMPP Extension) 을 XMPP 커뮤니티와 함께 출판한 것입니다. Jingle 은 SIP 에서 사용되고 있던 여러 기술들을 XMPP로 흡수한 것으로 VoIP 와 Video Conference 를 실용적인 수준에서 서비스 할 수 있도록 합니다. 여기에 더해 올해(2009년) 구글은 Google Wave 라는 이름의 서비스를 살짝 구경시켜줍니다. “통합 메시징 및 협업 플랫폼” 의 특징을 갖고 있는데 서버간 프로토콜(Federation Protocol)로 XMPP를 사용하고 있습니다. 구글은 XMPP를 진지하게 생각하고 있는듯합니다. 좀 더 진지해져서 Google Talk 의 Jingle 을 최근에 정돈된 규격으로 변경하는 일을 서둘러 주었으면 하는 바램입니다.
XMPP의 초기 역사는 2008년 시스코(Cisco)의 Jabber Inc. 인수로 마무리됩니다. 그 후 시스코의 눈에 띠는 움직임을 보지는 못했습니다만, 앞으로 XMPP가 어떤 길을 걸어가게 될지 흥미롭습니다. 눈썰미가 있으신 분들은 구글 애플리케이션 엔진(Google App Engine)의 로드맵에 XMPP가 포함되어 있는 것을 보셨을 줄 압니다. 얼마나 어떤 형태로 지원이 이루어질까요?
전에 재버(Jabber)에 관한 책이 나온 적이 있습니다만, 2009년 5월에 출간된 “XMPP: The Definitive Guide” 는 특별합니다. 주 저자들은 Psi 라는 이름의 XMPP 클라이언트의 주역들일 뿐만 아니라 JSF 위원으로 RFC 의 저자이기도 합니다. 때문에 RFC 로 표준화된 규격을 기초로 하고 있습니다. RFC 뿐만 아니라 JSF 가 별도로 표준화하는 여러 확장들(XEP) 중 중요한 내용들을 거의 모두 설명하고 있습니다. XMPP 에 관한 책을 더 이상 잘 쓰길 기대하는 것은 무리한 요구가 아닌가 싶을 정도로 명료하고 재미있습니다. RFC 와 그에 따르는 모든 규격들을 다시 쓸 생각이 아닌 다음에야 XMPP의 모든 측면을 다 다룰 수는 없을 겁니다. 이 책이 설정한 주 독자는 XMPP 클라이언트를 제작하거나 자신의 응용에 XMPP 클라이언트의 프로토콜을 활용하고자 하는 개발자들입니다. 서버 컴포넌트를 제작하려는 개발자들까지는 포용하고 있습니다만, 서버 개발자들은 RFC를 읽으셔야지 당장 일을 시작하실 수 있으리라 생각됩니다. 코드는 얼마 등장하지 않습니다. SleekXMPP 라는 파이썬(Python) 라이브러리를 사용하여 트위터(Twitter) 류의 마이크로블로깅(Microblogging) 서비스를 제작하는 예제가 10여 페이지 정도로만 소개됩니다. 나머지는 모두 XML 만으로 설명합니다.
만약 XMPP에 관심이 있다면 이 책으로 시작하시는 것이 가장 빠르고 정확한 길입니다.


구글 애플리케이션 엔진 1.2.5 부터 XMPP 지원이 들어갑니다. 구글 애플리케이션 엔진(Google App Engine) SDK 1.2.5 출시 를 참고하세요.