Allchat
앱에 실시간 채팅을 붙이는 CaaS. 테넌트 격리, 사용량 미터링, 플랜별 권한과 Stripe 결제, 웹훅·포렌식까지 운영 콘솔 하나로 관리한다.
왜 만들었는가
채팅은 단순히 메시지를 주고받는 기능처럼 보이지만, 실제 구현에서는 메시지 순서 보장, 중복 전송 방지, 재접속 동기화, 대형 방 확장, 유휴 인프라 비용 같은 문제가 반복적으로 발생합니다.
AllChat은 이런 공통 문제를 채팅 인프라 계층에서 해결해, 제품 개발팀이 복잡한 실시간 시스템 대신 서비스 화면과 비즈니스 로직에 집중할 수 있도록 만들었습니다.
기존 로그인 시스템은 그대로 사용하며, AllChat은 별도의 채팅 토큰을 통해 연동됩니다.
프로젝트 설명
AllChat은 완성된 채팅 앱이 아니라, 서비스에 채팅 기능을 빠르게 추가할 수 있는 채팅 백엔드 플랫폼입니다.
고객사는 채팅 UI만 직접 구현하고, 채팅방 및 멤버 관리, 메시지 순서 보장, 중복 메시지 방지, WebSocket 연결 관리, 재접속 및 메시지 동기화, 대형 채팅방 자동 확장, 메시지 저장 및 아카이브 같은 복잡한 처리를 AllChat에 위임할 수 있습니다.
Cloudflare Durable Objects를 중심으로 방 단위 상태와 메시지 순서를 관리하며, 채팅방 규모에 따라 자연스럽게 확장되는 구조로 설계했습니다.
주요 기능
메시지 순서 및 중복 방지
방마다 메시지 seq를 부여해 순서를 보장하고, clientId 기반 멱등 처리로 네트워크 재전송 시에도 동일 메시지가 중복 저장되지 않습니다.자동 재접속 및 동기화
연결이 끊긴 이후 마지막 seq를 기준으로 누락된 메시지만 다시 받아 대화를 복구할 수 있습니다.대형 채팅방 자동 샤딩
채팅방 규모가 커지면 WebSocket 연결을 자동으로 여러 샤드에 분산합니다. 기존 클라이언트 코드를 변경하지 않고도 대규모 동시 접속을 처리할 수 있습니다.다양한 WebSocket 연결 방식
하나의 연결로 여러 채팅방을 사용하는 Session 방식과 특정 채팅방에 직접 연결하는 Direct 방식을 모두 제공합니다.멀티테넌트 및 요금제 관리
appId 단위로 데이터를 분리하고 메시지 수, MAU, 동시 접속자, 방 인원, 보존 기간 등의 플랜 제한을 서버에서 직접 관리합니다.운영 관리자 콘솔
테넌트, 사용자, 채팅방, 메시지, 샤드, 아카이브, 감사 로그 등을 관리할 수 있는 별도의 운영 콘솔을 제공합니다.
기술 스택
Infrastructure
Cloudflare Workers · Durable Objects · D1 · R2 · Queues · Cron Triggers · Hibernatable WebSocketBackend
TypeScript · Web Crypto · JWT · PBKDF2 · Stripe API · VitestFrontend
React 19 · MUI 6 · Vite · React Router · i18nextSDK
TypeScript · ESM · 자동 재연결 · 지수 백오프Deployment
Wrangler CLI · Cloudflare Pages
도입 문의와 기술 지원은 담당 팀으로 연락해 주세요.


