Network

웹소켓 Web Socket 이란?...

2023. 1. 20. 14:08
목차
  1. 번외.
  2. AJAX 비동기 통신

웹소켓(Web Socket)이란 뭘까?

웹소켓이라는 단어는 일단 백엔드 개발자라면 무조건. 혹은 프론테엔드 개발자도 무조건. 한번씩은 들어봤을 법한

단어입니다. 이와 비슷하게 http, 프로토콜 이러한 개념들도 웹개발자에게 있어서는 핵심 기본 개념중 하나이죠!

그렇다면 프로토콜은 통신 규칙, 방식이고, HTTP는 url로 요청을 하는 프로토콜 방식중 하나인데,

웹소켓은 뭘까요?


Web Socket? 개념

웹소켓 역시 HTTP와 같은 일종의 약속! 입니다.

Transport Protocol의 방식중 하나이며, 이러한 방식이 생긴 이유는 서버와 클라이언트간의 효율적인

“양방향 통신”을 실현하기 위한 구조입니다 🙂

 

웹소켓이라는게 개발되기전에는 웹브라우저 에서의 양방향 실시간 소통 기능 같은건 없었죠….

즉 클라이언트의 요청이 없으면 클라이언트는 서버의 응답을 받을 수 없는 존재이자 구조 였습니다.

하지만 웹소켓이 등장하게 되면서 브라우저는 클라이언트의 요청 없이 서버가 보낸 데이터를 받을수 있게 되고,

사용자가 페이지를 새로고침하거나 다른곳으로 이동하지 않아도 최신데이터가 항상 유지되는 웹 어플리케이션이 개발될 수 있게 된겁니다.

그래서 이제는 웹에서도 채팅, 게임, 실시간 차트와 같은 개념이 요구되는 응용프로그램 개발을 손쉽게 효율적으로 개발할 수 있게 된겁니다!


어떻게 작동을 할까요?

  • HTTP프로토콜을 사용해 연결을 요청한다.
  • 웹소켓 연결(TCP/IP)이 이루어지면 일정 시간이 지나고 HTTP연결은 자동으로 끊어진다.

간단하죠?…….

기본적으로 웹소켓 API는 매우 간단한 기능들만 제공을 하기에, 별도의 API를 사용하여 개발을 하게 되는데요,

예를들어, SockJS Socket.IO 같은 것들이 있다고합니다🙂


번외.

제가 기억하기로는 2014년에 웹소켓이 나오기전부터, 뭔가 주식차트라든지 이런것들은 실시간으로 페이지 리로드 없이 업데이트가 되던걸 기억하거든요?…..그렇다면 웹소켓 등장 이전에 실시간으로 데이터를 받아오는 방식이 있었다는건데 뭘까? 라는 궁금점이 들어서 한번 찾아봤습니당.

AJAX 비동기 통신

맞아요… 웹소켓 등장 이전에는 AJAX가 있었고, 이를 통해 url요청을 하여서 어디론가 이동을 하는게 아닌 순수히

데이터를 받아와 어디엔가 붙여서 보여줄수 있게되고, 실시간 업데이트가 가능하게 되는거였죠!

하지만 AJAX도 여전히 클라이언트 측에서 요청을 보내야지만 동작을 하는 원리이며, 일정 시간 마다 주기적으로 요청을 보내는것 역시 번거롭고 자원을 낭비하기 때문에 웹소켓이 탄생했다!

이건 좀 재밌네요 ㅋ

728x90

'Network' 카테고리의 다른 글

로드벨런싱이란? 개념과 특징 (Feat. L4 LB, L7 LB)  (0) 2023.02.14
Network AND HTTP 프로토콜  (0) 2023.01.17
쿠키, 세션 (Cookie, Session) 는 뭐지? 어디서 많이 들어봤는ㄷ..ㅔ  (0) 2023.01.16
  1. 번외.
  2. AJAX 비동기 통신
'Network' 카테고리의 다른 글
  • 로드벨런싱이란? 개념과 특징 (Feat. L4 LB, L7 LB)
  • Network AND HTTP 프로토콜
  • 쿠키, 세션 (Cookie, Session) 는 뭐지? 어디서 많이 들어봤는ㄷ..ㅔ
WOOOOJI
WOOOOJI
Github : https://github.com/WOOOOJI
천방지축 어리둥절 돌아가는 WooJ's 개발 모험Github : https://github.com/WOOOOJI
WOOOOJI
천방지축 어리둥절 돌아가는 WooJ's 개발 모험
WOOOOJI
전체
오늘
어제
  • 분류 전체보기 (85)
    • 프로그래머스 코딩 테스트 (2)
    • Java (13)
    • Spring & Spring Boot (17)
    • Programming (3)
    • JSP (5)
    • Network (4)
    • Error (6)
    • MySQL (4)
    • Oracle DB (1)
    • Algorithem (7)
    • Data Structure (5)
    • Flutter (2)
    • Git & Github (3)
    • C++ (1)
    • AWS (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • @Query
  • JPA
  • java
  • Flutter 생성
  • Flutter 프로젝트
  • Spring
  • annotaion
  • 어노테이션
  • git
  • 변경감지
  • 차이점
  • Flutter 프로젝트 생성
  • Dirty Checking
  • 자바 POJO 코드
  • 스프링
  • spring boot
  • 깃허브
  • 객체지향적
  • JPQL
  • 스프링 POJO
  • JPA 직접 쿼리
  • Flutter 기초
  • 객체지향개념
  • orElseGet()
  • Flutter 문법
  • 커스텀 쿼리
  • Merge
  • 깃
  • 자바 Optional
  • Java Optional 사용법

최근 댓글

최근 글

hELLO · Designed By 정상우.
WOOOOJI
웹소켓 Web Socket 이란?...
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.