피드로 돌아가기
Setting up socket.io
Dev.toDev.to
Backend

Socket.io 기반의 Persistent Connection 구축을 통한 Real-time Event 시스템 설계

Setting up socket.io

Chinwuba2026년 6월 21일4beginner

Context

전통적인 HTTP Request-Response 모델의 단방향 통신 구조로 인한 비효율적인 Polling 방식의 한계 노출. 서버 측 상태 변경 사항을 클라이언트에 즉시 전달하기 위한 Push 메커니즘의 부재로 인한 사용자 경험 저하 발생.

Technical Solution

  • HTTP Server 직접 제어를 통한 Socket.io와 Express의 단일 포트 공유 아키텍처 설계
  • Event-driven 기반의 emit 및 on 메서드를 활용한 양방향 실시간 통신 체계 구축
  • Room 개념을 도입하여 특정 프로젝트 ID 기반의 메시지 브로드캐스팅 범위 최적화
  • Database Transaction 성공 후 Event를 발생시키는 순차적 처리 파이프라인 구성
  • app.set을 통한 Socket.io 인스턴스의 의존성 주입으로 Circular Import 및 전역 변수 오염 방지

- Socket.io 인스턴스를 Express app 객체에 바인딩하여 Route Handler 내 가용성 확보 - 비즈니스 로직과 이벤트 발생 시점을 분리하여 DB 저장 완료 후 전송하는 순서 보장 - 전체 브로드캐스팅 대신 Room 기반의 타겟팅 전송을 통한 네트워크 트래픽 최적화 - HTTP Server 인스턴스를 명시적으로 생성하여 Socket.io와 Express 간의 서버 공유 설정

원문 읽기