WIPIVERSE

XMPP

XMPP (Extensible Messaging and Presence Protocol)는 실시간 메시징과 상태 정보를 교환하기 위해 설계된 개방형 표준 통신 프로토콜이다. 원래는 Jabber라는 이름으로 1999년 공개되었으며, 2004년 IETF(Internet Engineering Task Force)에서 공식 표준화 과정을 거쳐 현재의 명칭인 XMPP로 정의되었다.

주요 특성

  1. XML 기반: 메시지, 프레즌스(presence) 상태, IQ(Info/Query) 등 모든 데이터가 XML 형식으로 인코딩된다. 이는 구조화된 정보 교환과 확장을 용이하게 한다.
  2. 분산형 아키텍처: 중앙 집중식 서버가 아닌, 서로 다른 도메인 간에 직접 연결을 맺어 통신한다. 사용자는 자신이 운영하는 XMPP 서버에 계정을 생성하고, 다른 서버에 존재하는 계정과도 상호 작용할 수 있다.
  3. 확장성: XEP(Extension Protocol)라는 표준화된 확장 사양을 통해 파일 전송, 그룹 채팅, 암호화, 인증 등 다양한 기능을 추가할 수 있다. 현재까지 200개 이상의 XEP가 정의되어 있다.
  4. 보안: TLS(Transport Layer Security)를 통한 전송 계층 암호화와 SASL(Simple Authentication and Security Layer)을 이용한 인증 메커니즘을 기본 제공한다. 또한, OMEMO, OTR 등 엔드‑투‑엔드 암호화 확장도 널리 사용된다.

표준 문서

  • RFC 6120 – XMPP Core (XML streams, stanza handling 등)
  • RFC 6121 – XMPP IM (Instant Messaging)와 Presence 관리
  • RFC 6122 – XMPP 주소 규격 (JID: username@domain/resource)

주요 활용 사례

  • 인스턴트 메신저: Jabber, Conversations, Pidgin 등 오픈소스 클라이언트가 XMPP를 기반으로 동작한다.
  • 기업용 커뮤니케이션: 기업 내부 메신저, 알림 시스템 등에 XMPP 서버(예: ejabberd, Openfire, Prosody)가 도입된다.
  • IoT: 경량화된 XMPP 프로파일(예: XMPP IoT Core)과 MQTT와의 브리지 등으로 기기 간 메시징에 활용된다.
  • 소셜 네트워킹: 일부 SNS와 채팅 서비스가 XMPP를 백엔드 프로토콜로 사용하거나 연동한다.

기술적 한계

  • XML 부하: XML 파싱 및 전송 과정에서 비교적 큰 오버헤드가 발생하여, 저대역폭 환경에서는 효율성이 떨어질 수 있다.
  • 표준화와 구현 차이: XEP 정의는 지속적으로 업데이트되며, 서버/클라이언트 구현체 간 지원 수준이 상이할 수 있다.

현재 상황

XMPP는 20년 이상 운영된 검증된 프로토콜로, 오픈소스 커뮤니티와 기업에서 지속적인 유지보수가 이루어지고 있다. 특히 프라이버시와 탈중앙화를 중시하는 환경에서 기존 중앙 집중형 메신저에 대한 대안으로 주목받고 있다.

본 내용은 공개된 RFC와 공인된 XMPP 관련 문서를 기반으로 작성되었으며, 확인되지 않은 정보는 포함되지 않았다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기