
네이티브 SDK를 과감히 버리고 웹을 선택한 MessagingHub의 아키텍처와 도메인 독립 설계기
다양한 서비스 환경에서 채팅 기능을 파편화 없이 통합 제공하기 위한 플랫폼화 전략을 다룹니다. 도메인 독립성을 유지하면서도 복잡한 챗봇 및 상담 시나리오를 유연하게 처리할 수 있는 컴포넌트 구조와 운영 효율 극대화 방법을 소개합니다.
사내 여러 서비스에 공통 채팅 인프라를 제공해야 하는 플랫폼 엔지니어나, 확장성 높은 시스템 아키텍처 설계를 고민하는 시니어 개발자에게 추천합니다.
새로운 서비스 도메인이 추가될 때마다 채팅 기능을 중복으로 개발하면서 발생하는 연동 포인트 증가, 시스템 복잡도 상승 및 개발 리소스 낭비 문제를 해결하고자 했습니다.
특정 도메인에 의존하지 않는 독립적인 메시징 플랫폼인 'MessagingHub'를 구축하고, 관심사에 따라 컴포넌트(연결 관리, 비즈니스, 라우터 등)를 분리한 이벤트 기반 아키텍처를 도입했습니다. 또한 네이티브 SDK 대신 웹 기반 클라이언트(ChatWeb)를 제공하여 플랫폼 이식성을 높였습니다.
일본의 음식 배달 서비스 내 사용자, 배달, CS, 가게 도메인에서 챗봇 및 문의형 채팅으로 운영 중이며, 도메인별 개별 구현 없이도 공통 플랫폼을 통해 범용적인 채팅 기능을 제공할 수 있게 되었습니다.
Trade-off
플랫폼의 범용성을 위해 도메인별 특화된 비즈니스 로직 처리를 포기해야 했으며, 이에 따라 사용자 인증 및 데이터 유효성 검증의 책임이 연동 시스템에 부여되어 추가적인 시스템 간 연동 및 통신 오버헤드가 발생할 수 있습니다.
시스템이 특정 비즈니스 도메인의 세부 정보를 알지 못해도 기능을 수행할 수 있도록 설계된 상태입니다.
새로운 버전 배포 시 기존 시나리오를 즉시 종료하지 않고, 기존 사용자의 세션이 끝날 때까지 유지하는 하위 호환성 지원 상태입니다.
서로 다른 브라우징 컨텍스트 간에 직접적인 양방향 메시지 송수신을 가능하게 하는 웹 표준 API입니다.




