Inflearn brand logo image

인프런 커뮤니티 질문&답변

cksdnddlek99님의 프로필 이미지
cksdnddlek99

작성한 질문수

개발자라면 알아야 할 redis 기본

pub/sub

채팅 서비스 관련하여 질문드립니다.

해결된 질문

작성

·

18

0

좋은 강의 감사합니다.

다름이 아니라, Redis Pub/Sub에서 채팅 서비스에 활용된다고 하여 제가 이해한 바와 질문을 드립니다.

 

제가 이해한 바는 다음과 같습니다.

  • 단일 서버가 아닌 다중 서버에서 채팅을 진행하기 위해서는 Source User와 Taget User 간의 정보(IP, MAC 등)이 필요하다.

  • 여기에 다중 서버에 공유하기 위해서는 Redis Pub/Sub 기능을 이용하여 User 정보를 동기화한다.

 

이해한 바를 바탕으로 아래 질문을 드립니다.

  • Redis Pub/Sub 기능을 활용해 실시간 채팅을 하는 상황입니다.

  • 서버에서는 실시간으로 채팅 내역을 동기화하지만, 유저 단(ex. 브라우저 or 프로그램)에서는 실시간으로 반영을 할려면 Redis Pub/Sub 기능만으로 가능한지 궁금합니다.

  • 유저 단에서 실시간으로 채팅을 할려면 WebSocket이나 SSE 등의 로직이 추가적으로 필요한걸까요?

 

감사합니다.

답변 3

1

cksdnddlek99님의 프로필 이미지
cksdnddlek99
질문자

이해했습니다!

감사합니다!

1

bradkim님의 프로필 이미지
bradkim
지식공유자

안녕하세요~

 

혹시, 말씀하시는 내용이 채팅 또는 알림 등의 실시간 서비스를 구현할때, 웹소켓이나 sse없이 redis pub/sub만으로 가능하냐 를 물어보시는걸까요?

 

만약 그런 질문이라고 한다면, 그럴수는 없습니다. redis pub/sub은 다중서버 환경에서 메시지를 전파해주는 역할을 하는 것일뿐, 실시간 서비스 자체를 구현하는 기능은 아니기 때문입니다.

 

그래서 redis pub/sub은 sse 또는 웹소켓과 함께 보조적으로 사용될때 필요한 기술이라고 보시면 될것 같습니다.

0

안녕하세요, 인프런 AI 인턴입니다. cksdnddlek99님.

Redis Pub/Sub와 관련하여 실시간 채팅 서비스에 대한 질문을 주셨네요. 아래에 질문에 대한 답변을 드리고자 합니다.

  1. Redis Pub/Sub 기능을 활용한 실시간 채팅:

    • Redis Pub/Sub는 서버 간의 메시지 전달 및 동기화에 매우 유용하지만, 클라이언트(유저 단)에게 직접적으로 실시간 메시지를 전송하는 기능이 내장되어 있는 것은 아닙니다.
    • 서버 간 메시지 동기화는 가능하지만, 유저의 브라우저나 애플리케이션에 실시간으로 변화를 전파하려면 추가적인 기술이 필요합니다.
  2. 유저 단 실시간 변화를 위한 WebSocket/SSE 필요성:

    • 클라이언트 측에서 실시간으로 데이터를 수신하려면 WebSocket이나 Server-Sent Events(SSE)와 같은 기술을 사용하는 것이 일반적입니다.
    • WebSocket은 양방향 통신이 가능하여 실시간 채팅에 매우 적합하며, SSE는 서버에서 클라이언트로의 단방향 통신을 가능하게 하여 알림 등을 처리하기에 유용합니다.
    • 이러한 기술을 사용하여 클라이언트가 서버로부터 실시간으로 메시지를 수신할 수 있도록 구성을 하게 됩니다.

유사한, 관련 질문 예시로 참고하시면 좋을 링크를 드립니다:
- stomp관련 질문입니다. - 실제 웹소켓과 STOMP, Redis Pub/Sub를 통한 메시지 전달 시스템에 대한 상세한 설명과 예시로 도움을 받을 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

cksdnddlek99님의 프로필 이미지
cksdnddlek99

작성한 질문수

질문하기