WebSocket 기반 양방향 통신, Redis Pub/Sub 수평 확장, 파일 공유와 이모지 반응까지. 현대 메신저가 갖춰야 할 모든 기능을 하나의 플랫폼에 담은 실시간 채팅 애플리케이션입니다.
PulseChat은 WebSocket 양방향 채널과 Redis Pub/Sub 메시지 브로커를 결합한 실시간 채팅 플랫폼입니다.
Socket.io 클러스터를 여러 노드에 분산하고 Redis를 통해 메시지를 동기화하여, 단일 서버 한계를 넘어 수평 확장이 가능한 구조로 설계했습니다.
본 페이지는 실시간 메시징 아키텍처와 기능을 하나의 스토리로 정리한 포트폴리오용 기업형 웹사이트이며, 별도의 브라우저 데모 페이지에서 실제로 동작하는 채팅을 체험할 수 있습니다.
화려한 기능보다 빠르고 정확한 메시지 전달이 먼저입니다. 기본기에 충실한 세 가지 핵심 기능을 중심으로 설계했습니다.
타이핑 표시, 읽음 확인, 메시지 히스토리, 답장 스레드까지. 현대 메신저 UX를 모두 지원합니다.
이미지 인라인 프리뷰, 파일 드래그 업로드, 청크 전송으로 큰 파일도 끊기지 않습니다.
메시지에 빠르게 공감하고, 긴 대화는 스레드로 분리하여 채널을 깔끔하게 유지합니다.
동시 접속자가 늘어나도 지연이 생기지 않도록, 서버를 여러 노드로 분산하고 Redis Pub/Sub로 메시지를 동기화합니다.
Socket.io 기반 WebSocket 양방향 채널. 네트워크 상황이 나빠지면 long-polling으로 자동 폴백하여 연결이 끊기지 않습니다.
연결 유지율 99%모든 서버 노드는 Redis Pub/Sub 채널을 구독합니다. 한 노드가 받은 메시지가 즉시 다른 노드들에게 전파되어 사용자 간 채널이 하나로 연결됩니다.
브로드캐스트 지연 7msReact 기반 SPA, 상태는 Zustand로 관리. 가상 스크롤로 수천 개 메시지도 렌더링 부담 없이 처리하고 옵티미스틱 UI로 지연을 체감하지 못하게 합니다.
초기 렌더 120ms메시지 왕복 평균 지연
동시 WebSocket 연결
초당 메시지 처리량
월간 서비스 가용성
단일 파일 업로드 한도
노드 간 메시지 전파 지연
무중단 롤링 배포
노드 추가로 무한 확장
단일 서버 프로토타입에서 시작해 프로덕션 스케일 아키텍처까지, 단계별로 확장해 나갔습니다.
Node.js + Socket.io로 가장 단순한 1:1 채팅을 구현. 기본적인 송수신과 연결 관리부터 검증했습니다.
여러 사용자가 참여하는 방 기반 채팅, 타이핑 인디케이터, 읽음 확인 도입. 메시지 히스토리는 PostgreSQL에 영구 저장합니다.
Redis 어댑터 도입으로 여러 노드에서 동일 채널을 공유. 10만 동시 연결, 초당 1만 메시지 처리 목표 달성.
청크 기반 파일 업로드, 이모지 반응 시스템, 답글 스레드 분리. S3 호환 스토리지에 미디어를 저장하고 CDN으로 배포.
Signal 프로토콜 기반 종단간 암호화, WebRTC 음성·영상 통화, 다국어 실시간 번역 통합.
이 페이지는 WebSocket 기반 메시징 플랫폼을 기업형 제품 소개 사이트로 풀어낸 junetapa의 포트폴리오 프로젝트입니다.
라이브 데모 실행 → 다른 프로젝트 보기