본문 바로가기

programming study/web

WebRTC, WebSockets

본 내용은 노마드 코더님의 WebRTC? WebSockets? 5분 개념 정리! 강의를 토대로 작성하였습니다.

 

1. http

http란

  • 브라우저와 서버가 소통하는 방식
  • 인터넷 데이터 교환에서 필수 요소
  • 업로드, 다운로드, 이미지, 문서
  • 인터넷에서 오가는 모든 것이 http로 이루어짐

 

작동원리

  • 브라우저가 서버에게 http request(요청)을 보냄
  • 서버는 해당 request를 보고 브라우저가 정보를 요구하는 것을 확인
  • 서버가 http response를 브라우저에게 보냄

 

http의 특징

  • 서버가 브라우저에게 데이터를 보낼 수 있는 것은 브라우저가 요청을 했을 때만 가능
  • 서버가 브라우저의 요청에 응답하고 나면, 브라우저 - 서버간 통신은 끝남
  • 한번 응답이 끝나고 나면, 브라우저에 더이상 데이터를 보낼 수 없음
  • 채팅과 같은 지속적인 요청-응답이 필요한 애플리케이션에 사용하기에는 부적합

 

2. WebSocket

WebSocket이란

  • 프로토콜의 하나
  • 연결이 Open or Close된 여부를 봄
  • 양방향 통신

 

작동원리

  • 브라우저가 웹소켓을 이용해 서버와 연결
  • 브라우저 - 서버간 통신은 열려있을 것임(open)
    • 해당 통신은 계속 열려 있음
    • 일종의 전화 통화와 같은 상태

 

WebSocket의 특징

  • 양방향 통신이므로 열려있는 상태에서 데이터를 주고받을 수 있음
  • 서버가 브라우저의 Request를 기다릴 필요가 없음
  • 서버는 업데이트를 원하는 때에 보낼 수 있음
  • 채팅방, 주식거래앱과 같은 리얼타임 경험을 위한 애플리케이션을 만들 수 있음
  • 모든 통신을 추적하기 위해 서버의 메모리 파워가 중요
    • 유저가 많으면 많을 수록 더 많은 메모리가 필요(비용 증가)
    • 또한, 사용자들에게 데이터를 포워딩하기 위해 서버를 빠르게 유지해야 함
  • 서버에 수많은 연결이 오고 있다면, 딜레이가 발생할 수 있음
    • 유저 경험에 안 좋은 영향을 끼침
  • 서버가 꺼진다면 서비스도 사용할 수 없음

 

채팅방 예시

  • 채팅방에 입장한 사용자들은 모두 같은 웹소켓 서버에 입장한 상태
  • 사용자가 웹소켓 서버에 메시지를 보내면, 서버는 해당 메시지를 채팅방 사람들에게 보여줌

 

3. WebRTC

WebRTC란?

  • Web Real Time Communication
  • 브라우저 - 서버를 연결하는 WebSocket과 달리 사용자들의 브라우저간 연결
  • P2P 커뮤니케이션
    • Peer to Peer

 

WebRTC 특징

  • 데이터가 서버를 통해서 전달 되는 것이 아닌 유저간 바로 전달이 됨
  • 텍스트 뿐만 아니라, 영상, 오디오 등도 실시간으로 주고 받을 수 있음
  • 서버를 이용하는 것보다 빠름

 

WebRTC 문제점

  • 확장성에 제약이 있음
    • 많은 사람들이 사용하기에는 한계
    • ex) 수많은 사람이 접속하고 있는 비디오 채팅방의 경우 각 사용자들의 비디오를 다운받고 내 비디오를 다른 사람에게도 업로드 해줘야 함

 

Reference

[노마드 코더] WebRTC? WebSockets? 5분 개념정리!

'programming study > web' 카테고리의 다른 글

Web 요청 & 응답과정  (0) 2021.10.14
REST API  (0) 2021.10.13
Forward Proxy vs Reverse Proxy vs Load Balancer  (0) 2021.10.04
프론트엔드에서의 에러 핸들링  (0) 2021.09.24
웹스토리지 & 쿠키  (0) 2021.09.23