WebRTC - 클라이언트끼리 소통하기

Описание к видео WebRTC - 클라이언트끼리 소통하기

#webrtc #코딩 #프로그래밍

= = =

이번 영상에서는 WebRTC에 대해 알아봅니다.

이전 WebSocket 영상에서, 클라이언트와 서버가 WebSocket을 통해 실시간으로 데이터를 주고받을 수 있음을 설명했습니다. WebSocket은 채팅 서비스에서 유용하게 사용됩니다. 그러나, 서버가 클라이언트 사이의 모든 데이터를 중개하므로, 클라이언트 수가 많아지거나 데이터 크기가 커지면 서버에 부담이 커집니다. 특히 오디오나 영상 데이터의 경우, 서버의 부담이 더욱 커질 수 있습니다.

WebRTC는 서버의 중개 없이 클라이언트들끼리 직접 데이터를 주고받을 수 있게 해줍니다. 이를 통해 서버의 부담을 줄이고, 클라이언트 간의 빠르고 효율적인 통신이 가능합니다. WebRTC는 브라우저, 모바일 앱, 데스크탑 어플리케이션 등에서 사용됩니다.

WebRTC를 통해 두 사용자가 화상채팅을 하려면, 먼저 시그널링(signaling) 과정을 거쳐야 합니다. 시그널링은 두 클라이언트가 어떤 방식으로 통신할지 합의하는 과정으로, 이를 위해 WebSocket이나 HTTP 등을 사용할 수 있습니다. 시그널링 과정에서 SDP(Session Description Protocol)가 사용되며, 이를 통해 미디어 유형, 코덱, 해상도 등의 정보를 교환합니다.

네트워크 경로 정보를 교환하기 위해 ICE 후보(ICE Candidate)를 사용합니다. ICE 후보에는 세 가지 유형이 있습니다. 첫 번째는 Host Candidate로, 같은 로컬 네트워크에 있는 경우입니다. 두 번째는 Server Reflexive Candidate로, NAT을 통해 인터넷에 접속하는 경우 STUN 서버를 통해 공인 IP와 포트 번호를 알아냅니다. 세 번째는 TURN 서버로, 복잡한 네트워크 환경에서 사용됩니다.

WebRTC는 주로 UDP 기반의 SRTP와 SCTP 프로토콜을 사용하여 데이터를 전송합니다. SRTP는 실시간 오디오와 비디오 전송에 적합하며, SCTP는 신뢰성을 보장하여 파일 전송에 사용됩니다. WebRTC는 브라우저에서 기본적으로 지원되며, 모바일 앱이나 데스크탑 프로그램에서는 라이브러리를 사용할 수 있습니다.

WebRTC는 클라이언트 간 직접 연결, 표준화된 구현, 높은 호환성, 암호화된 통신 방식 때문에 실시간 화상채팅, 회의, 원격 협업 등에 널리 사용됩니다. 하지만 네트워크 환경에 따라 TURN 서버를 사용해야 하는 경우도 있으며, 다수의 사용자가 참여하는 통신에서는 성능이 저하될 수 있습니다.

다음 영상에서는 메시지가 주고받아지는 또 다른 방식인 Message Broker에 대해 알아보겠습니다.








메시지 ChatGPT

ChatGPT는 실수를 할 수 있습니다. 중요한 정보를 확인하세요.

🏠 얄코사이트: https://www.yalco.kr
📖 얄코 도서: https://www.yalco.kr/book/
🧑‍🏫 얄코 강의: https://www.yalco.kr/#lectures

🎥 제대로 파는 Git & GitHub:    • 제대로 파는 Git & GitHub (대학생 전체강의 반값할인)  
🎥 제대로 파는 자바:    • 제대로 파는 자바 - Java 끝.장.내.기  (대학생 전체강의 반...  
🎥 제대로 파는 파이썬:    • 제대로 파는 파이썬 - Python 끝장내기  (대학생 전체강의 반...  
🎥 제대로 파는 자바스크립트:    • (구판) 제대로 파는 자바스크립트 - 고정댓글에 새 버전 링크  
🎥 제대로 파는 HTML & CSS:    • 제대로 파는 HTML & CSS (대학생 전체강의 반값할인)  
🎥 갖고 노는 MySQL 강좌:    • 왕초보용! 갖고 노는 MySQL 데이터베이스 강좌  
🎥 반응형 프로그래밍 RxJS 강좌:    • 반응형 프로그래밍이 뭔가요? (+ ReactiveX 강좌)  

Комментарии

Информация по комментариям в разработке