끄적끄적 코딩일지

Web에서 실시간 데이터를 표시하기 본문

IT용어

Web에서 실시간 데이터를 표시하기

BaekGyuHyeon 2022. 6. 9. 15:53

Http 통신은 한번 통신이 이루어지면 연결이 완전히 끊긴다. 때문에 일반적으로는 Server에서 일어나는 변화를 Client에 알릴 방법이 없다. 그렇다고 단순히 Request를 지속적으로 보낸다면 그만큼 서버 성능을 쓸데없이 잡아먹고 의미없는 전송이 될 수 있다.(Short Polling) 때문에 실시간 Web을 개발하는것은 까다로운 기술쪽으로 속한다.

 

그렇다면 현제 Real Time 으로 웹을 개발하는 방법은 무엇인지 대표적인 방법 3가지를 알아보겠다.


Polling, Long Polling

위에서 언급한것처럼 지속적으로 요청을 하는 방법이다. 하지만 다른점은 요청을 받고 바로 답을 해주는것이 아니라 데이터의 변화를 기다렸다가 응답을 해주는 방식이다. 때문에 Client에서는 응답을 받으면 바로 다시 요청을 하도록 설계를 해주어야 한다.

 


WebSocket

WebSocket은 Client와 Server 사이에 완전한 양방향 통신을 이루어주는 기술이다. 때문에 Client에서 Server으로, Server에서 Client으로 통신이 가능하며 Polling 방식보다 더 낳은 성능을 가지고 있다.  단 개발시 별도의 라이브러리가 필요하며 Server든 Client든 한쪽에서 Websocket Server을 만들어야 한다.(대부분 Server에서 WebSocket Server을 열고 Client쪽에서 해당 Websocket Server에 접속한다.) 즉 구현 난이도가 올라간다.


SSE(Server Send Event)

SSE는 Streaming기술을 사용하여 Client으로부터 요청이 들어오면 응답을 완료하지 않고 지속적으로 연결을 유지하고 있다가 Server에서 Event가 발생하면 데이터를 전송하는 방식이다. 마치 매우 큰 용량의 파일을 전송하겠다고 하고서는 Server에서 이벤트가 발생할때마다 조금씩 전송을 하는것과 비슷하다.

WebSocket보다 서버에 부하가 적고 구현이 간단하다는 장점이 있지만

Server에서 Client으로만 전송하는 단방향 전송이라는 단점이 있다.

'IT용어' 카테고리의 다른 글

HTTP란  (0) 2022.06.06
SQL  (0) 2022.06.05
Digital 과 Anolog  (0) 2022.05.18
SSD와 HDD  (0) 2022.05.17
CPU에 대해서 알아보자  (0) 2022.05.16