
HTTP 프로토콜을 이용한 실시간 통신 방법
1 Polling: 주기적으로 요청을 보내 응답을 받는다.
- 장점:
- 구현이 간단하다.
- 클라이언트와 서버 간의 상호작용이 명확하다.
- 단점:
- 높은 네트워크 트래픽 및 서버 부하가 발생할 수 있다. (새로운 데이터가 없더라도 주기적으로 요청을 보내기 때문)
- 실시간 업데이트의 지연 시간이 길어질 수 있다.
2 Long Polling: 응답이 오면 다시 요청을 보내고 응답이 오기를 대기한다.
- 장점:
- 데이터가 변경될 때만 응답이 발생하므로 네트워크 트래픽 및 서버 부하가 일반 Polling보다 적다.
- 변경 사항이 발생하면 클라이언트에게 빠르게 알려줄 수 있다.
- 단점:
- 구현이 약간 복잡하다.
- 서버의 연결을 오랜 시간 열어둘 필요가 있어, 많은 동시 사용자에 대한 처리가 어려울 수 있다.
3 Server-Sent Events(SSE): 서버가 새로운 데이터를 자동으로 클라이언트에게 푸시할 수 있게 한다.
- 장점:
- 서버에서 클라이언트로의 단방향 통신이 필요할 때 적합하다.
- 구현이 비교적 간단하며, 표준화된 웹 API를 사용한다.
- 네트워크 트래픽 및 서버 부하가 효율적이다.
- 단점:
- 단방향 통신만 지원한다. (서버에서 클라이언트로만 데이터 전송)
- 일부 브라우저에서 지원하지 않을 수 있다.
- 연결 수에 제한이 있을 수 있어, 많은 동시 사용자에 대한 처리가 어려울 수 있다.