웹소켓(Web Socket)이란 뭘까?
웹소켓이라는 단어는 일단 백엔드 개발자라면 무조건. 혹은 프론테엔드 개발자도 무조건. 한번씩은 들어봤을 법한
단어입니다. 이와 비슷하게 http, 프로토콜 이러한 개념들도 웹개발자에게 있어서는 핵심 기본 개념중 하나이죠!
그렇다면 프로토콜은 통신 규칙, 방식이고, HTTP는 url로 요청을 하는 프로토콜 방식중 하나인데,
웹소켓은 뭘까요?
Web Socket? 개념
웹소켓 역시 HTTP와 같은 일종의 약속! 입니다.
Transport Protocol의 방식중 하나이며, 이러한 방식이 생긴 이유는 서버와 클라이언트간의 효율적인
“양방향 통신”을 실현하기 위한 구조입니다 🙂
웹소켓이라는게 개발되기전에는 웹브라우저 에서의 양방향 실시간 소통 기능 같은건 없었죠….
즉 클라이언트의 요청이 없으면 클라이언트는 서버의 응답을 받을 수 없는 존재이자 구조 였습니다.
하지만 웹소켓이 등장하게 되면서 브라우저는 클라이언트의 요청 없이 서버가 보낸 데이터를 받을수 있게 되고,
사용자가 페이지를 새로고침하거나 다른곳으로 이동하지 않아도 최신데이터가 항상 유지되는 웹 어플리케이션이 개발될 수 있게 된겁니다.
그래서 이제는 웹에서도 채팅, 게임, 실시간 차트와 같은 개념이 요구되는 응용프로그램 개발을 손쉽게 효율적으로 개발할 수 있게 된겁니다!
어떻게 작동을 할까요?
- HTTP프로토콜을 사용해 연결을 요청한다.
- 웹소켓 연결(TCP/IP)이 이루어지면 일정 시간이 지나고 HTTP연결은 자동으로 끊어진다.
간단하죠?…….
기본적으로 웹소켓 API는 매우 간단한 기능들만 제공을 하기에, 별도의 API를 사용하여 개발을 하게 되는데요,
예를들어, SockJS Socket.IO 같은 것들이 있다고합니다🙂
번외.
제가 기억하기로는 2014년에 웹소켓이 나오기전부터, 뭔가 주식차트라든지 이런것들은 실시간으로 페이지 리로드 없이 업데이트가 되던걸 기억하거든요?…..그렇다면 웹소켓 등장 이전에 실시간으로 데이터를 받아오는 방식이 있었다는건데 뭘까? 라는 궁금점이 들어서 한번 찾아봤습니당.
AJAX 비동기 통신
맞아요… 웹소켓 등장 이전에는 AJAX가 있었고, 이를 통해 url요청을 하여서 어디론가 이동을 하는게 아닌 순수히
데이터를 받아와 어디엔가 붙여서 보여줄수 있게되고, 실시간 업데이트가 가능하게 되는거였죠!
하지만 AJAX도 여전히 클라이언트 측에서 요청을 보내야지만 동작을 하는 원리이며, 일정 시간 마다 주기적으로 요청을 보내는것 역시 번거롭고 자원을 낭비하기 때문에 웹소켓이 탄생했다!
이건 좀 재밌네요 ㅋ
'Network' 카테고리의 다른 글
로드벨런싱이란? 개념과 특징 (Feat. L4 LB, L7 LB) (0) | 2023.02.14 |
---|---|
Network AND HTTP 프로토콜 (0) | 2023.01.17 |
쿠키, 세션 (Cookie, Session) 는 뭐지? 어디서 많이 들어봤는ㄷ..ㅔ (0) | 2023.01.16 |