<aside> <img src="/icons/bookmark_red.svg" alt="/icons/bookmark_red.svg" width="40px" />

목차

</aside>

<aside> 📌

과거 발표자료를 토대로 정리했습니다

</aside>

🤔 학습 이유

과거 웹소켓 관련 컨퍼런스 발표까지 해보았지만 실제 프로젝트에서 써보지 않아 휘발되었다…ㅜㅜ

이번 기회에 실시간 & 양방향 통신을 위한 기술들을 조사해보고 어떤 방식으로 우리 서비스의 실시간 채팅 기능을 구현해 볼 지 고민해보고자 한다.


HTTP 통신은 클라이언트의 요청이 있을 때 서버가 응답하는 단방향 통신

HTTP 통신

HTTP 통신

그럼 실시간 채팅처럼 양방향이면서 실시간 통신이 필요한 기능 구현은 어떻게 할까? 우선 실시간 통신을 위한 몇가지 통신 방식을 알아보자

🚀 실시간 통신을 위한 노력

AJAX Polling

image.png

setInterval(() => {
  fetch('/api/data')
    .then(response => response.json())
    .then(data => {
      console.log('받은 데이터:', data);
    })
    .catch(error => console.error('오류:', error));
}, 5000); 

Long Polling