피드로 돌아가기
원문 읽기
LINE Engineering
Backend도메인에 의존하지 않는 채팅 플랫폼은 어떻게 만들었을까?
ABC Platform 팀이 특정 도메인에 의존하지 않는 범용 채팅 플랫폼 MessagingHub를 독립적 시스템으로 설계하여 연동 복잡도를 최소화했다
AI 요약
Context
채팅을 필요로 하는 도메인이 늘어날수록 연동 포인트가 증가하고 복잡도가 기하급수적으로 증가하며 개발 비용과 리소스 낭비가 발생한다. 기존에는 서비스마다 채팅을 개별적으로 구현하여 같은 문제가 반복됐다.
Technical Solution
- 연동 시스템 → 인증 완료 후 connection token을 발급하고 클라이언트는 해당 토큰으로 WebSocket에 연결하는 방식으로 책임 분리
- 사용자 식별 → 도메인 정보와 사용자 식별 정보를 조합한 client ID로 여러 도메인에서 각기 다른 사용자 구분
- 서비스 컨텍스트 → 역할 조합을 정의하여 채팅방 생성·참여·메시지 허용을 조합별로 제어
- 컴포넌트 분리 → connection-manager, chat-app, message-router, notification-app, admin-hub로 관심사별 도메인 분리
- 데이터 구조 → chat DB와 chat_operation DB로 채팅 데이터와 운영 데이터를 분리하여 관리
Impact
Jepang 음식 배달 서비스에서 사용자·배달·CS·가게 도메인으로 확장 운영 중
Key Takeaway
플랫폼은 채팅 그 자체에 집중하는 단순함을 유지하되, 외부 도메인의 다양한 요건을 일반화하여 재사용 가능한 구조로 흡수해야 범용성과 이식성을 확보할 수 있다.
실천 포인트
다중 도메인 채팅 연동에서 Command 패턴과 컴포넌트 분리를 WebSocket, Channel Messaging API, gRPC 기술로 적용 시 기능 조합을 통한 비즈니스 요구사항 변화 대응이 가능하며 신규 연동 시 진입 장벽이 낮아진다