웹소켓이란?

hodu·2022년 11월 4일
0

dev

목록 보기
4/5

https://youtu.be/yXPCg5eupGM

(코딩애플) 오늘의 테크용어 : 웹소켓이 뭐냐면
을 보고 정리한 글입니다.


서버와 유저가 데이터를 주고받기 위해서는 가장 기초적인 방법은 http 통신이 있다.

유저가 서버에게 서버가 가진 데이터를 보기 위해서는 http 요청을 하게되고, 서버는 데이터를 보내준다.

이 방법은 유저가 먼저 요청을 해야만 데이터를 받을 수 있다.

과거에는 http 요청만으로도 모든 웹서비스를 만들 수 있었으나, 실시간으로 데이터를 주고받는 채팅, 주식, 코인 등 다양한 서비스들이 나오게 되면서 http 요청 방법의 비효율이 드러나기 시작했다.

주식 가격을 2초마다 업데이트 한다고 쳤을 때,

유저는 서버에게 2초마다 "보내줘!"라는 요청을 보내야하고,
그때마다 서버는 유저에게 "데이터"를 보내주어야 한다.

굳이 요청하지 않아도 데이터를 보낼 수 있는 방법이 있지 않을까?

1. Server-Sent Event

서버가 단방향으로 데이터를 보내는 형태이다.
http통신을 종료하지 않고 계속 유지하는 방법으로 구현한다.
위에서 얘기한 것 처럼 요청하지 않아도 데이터를 보낼 수 있으나,

"단방향"이기 때문에 유저가 서버에게 어떠한 메세지를 보낼수는 없다.

2. WebSocket

서버와 유저가 양방향으로 데이터를 주고받을 수 있는 형태이다.
유저가 서버에게 http 요청을 보내면서 웹소켓 요청까지 함께 보냄. 서버에서는 웹소켓 요청을 허락하면 웹소켓 연결이 되는 것이다.

웹소켓을 이용하게되면 채팅과 같은 실시간 서비스를 쉽고 빠르게 구현할 수 있다.

profile
안녕 세계!

0개의 댓글