7/22 Web RTC

JK·2023년 7월 22일
0

오늘은 팀원들과 회의를 통해 제가 Web RTC에 대해 공부하고 구현하기로 했습니다.
그래서 오늘은 Web RTC가 무엇인지 공부해봤습니다

Web RTC

WebRTC란?

WebRTC(웹 RTC)는 웹 브라우저 간에 플러그인 없이 실시간 통신을 가능하게 하는 기술입니다. 이를 통해 웹 애플리케이션과 웹 사이트에서 비디오 채팅, 음성 통화, 파일 공유 등을 쉽게 구현할 수 있습니다. WebRTC는 P2P(Peer-to-Peer) 기반으로 작동하여, 서버를 거치지 않고 브라우저 간에 직접 통신이 가능합니다.

WebRTC의 주요 기능

  1. MediaStream: 사용자의 미디어 디바이스(웹캠, 마이크)를 캡처하여 비디오와 오디오 스트림을 생성합니다. 이를 통해 실시간으로 화상 통화와 음성 통화를 구현할 수 있습니다.

  2. RTCPeerConnection: 브라우저 간에 P2P 연결을 설정하고, 데이터 및 미디어 스트림을 교환하는데 사용됩니다. 이를 통해 브라우저 간에 데이터를 안전하고 신속하게 전송할 수 있습니다.

  3. RTCDataChannel: 데이터를 실시간으로 교환할 수 있는 채널을 제공합니다. 이를 이용하여 파일 공유, 채팅 등의 기능을 구현할 수 있습니다.

WebRTC의 작동 방식

  1. 미디어 스트림 캡처: 사용자의 웹캠과 마이크에서 비디오와 오디오 스트림을 캡처합니다.

  2. P2P 연결 수립: RTCPeerConnection을 이용하여 브라우저 간에 P2P 연결을 설정합니다. 이 단계에서 미디어 스트림을 상대방과 공유하기 위한 논리적인 터널이 만들어집니다.

  3. ICE(Interactive Connectivity Establishment) 프레임워크: 브라우저 간에 직접적인 연결이 어려울 경우, ICE 프레임워크를 통해 중계 서버를 활용하여 연결합니다.

  4. STUN(Interactive Connectivity Establishment) 서버: 브라우저 간에 공인 IP 주소를 확인하는데 사용되며, 피어 간의 직접적인 연결 가능 여부를 판단합니다.

  5. TURN(Traversal Using Relays around NAT) 서버: 피어 간의 직접적인 연결이 불가능한 경우, 데이터 전송을 위해 TURN 서버를 활용합니다.

  6. 데이터 및 미디어 스트림 교환: P2P 연결이 수립되면, RTCDataChannel을 이용하여 데이터를 교환하고, 미디어 스트림을 RTCPeerConnection을 통해 교환합니다.

  7. 연결 종료: 통신이 종료되거나 사용자가 나갈 경우 P2P 연결을 종료합니다.

WebRTC를 사용하는 경우의 장단점

장점:

  1. 실시간 통신: 서버를 거치지 않고 직접적인 통신이 가능하여 지연 시간이 줄어들고, 실시간으로 데이터를 교환할 수 있습니다.
  2. 플러그인 불필요: 플러그인 설치 없이 웹 브라우저에서 바로 사용할 수 있어 편리합니다.
  3. 보안: P2P 기반이므로 중간 서버를 거치지 않아 보안이 강화됩니다.
  4. 효율적인 대역폭 사용: P2P 연결을 통해 데이터 전송에 최적화되어 대역폭을 효율적으로 사용합니다.

단점:

  1. 브라우저 호환성: WebRTC는 대부분의 최신 웹 브라우저에서 지원되지만, 오래된 버전의 브라우저에서는 작동하지 않을 수 있습니다. 따라서 사용자가 오래된 브라우저를 사용하는 경우, 일부 기능이 제한될 수 있습니다.

  2. 방화벽 문제: P2P 연결을 위해 직접적인 IP 주소를 교환해야 하므로, 방화벽 뒤에 있는 사용자들 간의 연결이 어려울 수 있습니다. 이를 해결하기 위해 TURN 서버를 사용할 수 있지만, 이로 인해 중계 서버 비용이 발생할 수 있습니다.

  3. 네트워크 대역폭: WebRTC는 P2P 연결을 사용하여 직접적인 데이터 전송을 지향합니다. 하지만 대량의 사용자가 동시에 연결하면 네트워크 대역폭이 크게 소모될 수 있습니다.

  4. 보안 문제: WebRTC는 피어 간에 직접적인 연결을 설정하기 때문에, 악의적인 사용자가 다른 사용자의 IP 주소를 탈취할 수 있는 보안 취약점이 있습니다. 이러한 보안 취약점을 최소화하기 위해 암호화와 인증이 중요합니다.

  5. 회의 제어의 어려움: WebRTC는 기본적으로 P2P 기반의 기술이기 때문에, 대규모 화상 회의나 방송과 같은 경우에는 회의 제어가 어려울 수 있습니다. 이러한 경우에는 중간 서버를 사용하는 것이 더 효과적일 수 있습니다.

  6. 품질 문제: WebRTC는 사용자의 네트워크 상태에 따라 통화 품질이 달라질 수 있습니다. 불안정한 인터넷 연결이나 낮은 대역폭을 가진 사용자들의 경우, 통화 품질이 저하될 수 있습니다.

WebRTC는 웹 개발에서 뛰어난 실시간 통신 기술로 활용되며, 화상 회의, 채팅, 파일 공유 등 다양한 실시간 기능을 구현하는데 사용됩니다. 초보자도 기본 개념과 작동 방식을 이해하면 웹에서 실시간 통신을 구현하는데 도움이 될 것입니다.

profile
^^

1개의 댓글

comment-user-thumbnail
2023년 7월 22일

좋은 글이네요. 공유해주셔서 감사합니다.

답글 달기

관련 채용 정보