실시간 초대 메시지 받기를 Websocket 통합 및 변경
기존에 SSE 방식으로 처리하던 notification 기능을 WebSocket 방식으로 전환한 변경 사항과 그로 인한 장점을 정리해봤습니다.
기존 SSE 방식은 클라이언트가 서버로부터 단방향 스트림을 받아오는 방식으로, 알림 메시지 수신에는 적합했지만 굳이 게임 서버와 분리하여 사용하여 실시간 통신 연결을 두개 만들어 성능에 저하를 만드는 상황이 합리적이지 않다는 판단을 했습니다. 이와 같은 상황에서 게임과 notification 기능을 하나의 서버에서 효과적으로 관리하기 위해 게임과 notification을 하나의 서버와 Websocket으로 실시간 연결 방식이 도입되었습니다.
통합 관리 효율성
하나의 서버에서 게임과 알림 기능을 동시에 처리함으로써, 별도의 통신 채널이나 서버 간 연동에 따른 복잡성을 줄일 수 있습니다. 이는 서버 자원 관리와 네트워크 구성 측면에서 효율성을 높여줍니다.
낮은 네트워크 오버헤드
WebSocket은 초기 연결 설정 이후 지속적인 하나의 서버와만 연결 상태를 유지하므로, 두개 서버에 요청을 주고 받는 방식에 비해 네트워크 오버헤드가 낮아집니다. 이로 인해 데이터 전송 지연이 줄어들고, 전체 시스템 성능이 향상됩니다.
두 기능을 하나의 서버에서 관리함으로써, 서버 간 통신 지연이나 동기화 문제를 최소화할 수 있습니다. 게임 내 실시간 상호작용과 알림 메시지가 동일한 통신 채널을 통해 처리되기 때문에, 사용자 경험이 보다 일관되고 빠르게 개선됩니다. 또한, 단일 통합 시스템은 유지보수와 확장 측면에서도 효율적이며, 개발 및 운영 부담을 줄여줍니다.
WebSocket 도입은 단순히 SSE 방식을 대체하는 것을 넘어, 양방향 통신 지원, 통합 관리 효율성, 낮은 네트워크 오버헤드, 그리고 안정적인 재연결 기능 등 다양한 장점을 제공합니다. 이를 통해 게임과 알림 기능을 한 서버에서 실시간으로 효과적으로 처리할 수 있게 되어, 전반적인 시스템 성능을 크게 향상시킬 수 있었습니다.