# webRTC 이해

# webRTC와 P2P 통신


webRTC 로고

webRTCWeb Real-Time Communications의 축약어로 웹을 이용한 실시간 통신을 의미합니다.
webRTC는 P2P 통신을 이용하는데, P2P 통신은 중앙 서버 없이 클라이언트가 서로 통신하는 네트워크입니다.
그렇기 때문에 개인 컴퓨터의 공인 네트워크 주소를 알아내고, 데이터 교환을 해야 합니다.
실제 사용 환경에서는 일부 컴퓨터 환경에서 방화벽 등의 여러 가지 보안장치들이 존재하기 때문에
클라이언트끼리의 연결이 불가능할 수도 있습니다. 그래서 서로 간의 연결을 위해 TURN 서버를 사용하게 됩니다.
그렇다면 TURN 서버는 무엇일까요?

# TURN 서버

TURN 서버

TURN이란 Traversal Using Relays around NAT의 축약어입니다.
위에서 설명한 점 때문에 클라이언트끼리의 직접적인 통신에 어려움이 있으므로,
클라이언트는 TURN 서버에게 데이터를 보내고, TURN 서버는 다른 클라이언트들에게 데이터를 전달해 줍니다.
이러한 방법으로 데이터를 TURN 서버에 경유해서 각각의 클라이언트들이 통신하게 됩니다.

# webRTC에 대해 더 알아보기

webRTC는 P2P 통신과 webRTC API를 이용합니다.
vchatCloud는 webRTC API의 MediaStream이란 객체를 이용하는데,
MediaStream은 카메라와 마이크 등의 실시간 데이터 스트림을 가지고 있습니다.
따라서 video태그의 srcObject속성에 MediaStream을 설정하면 간단하게 실시간 영상을 볼 수 있습니다.

만약 더 자세한 내용을 확인하고 싶으시다면 MDN webRTC API (opens new window)를 참조하시기 바랍니다.

# vchatCloud 영상채팅 서비스

vchatCloud를 사용하면 복잡한 코딩은 줄어들고 간편하게 사용할 수 있습니다.
영상 채팅방에 사용자의 미디어 소스 추가, 제거 이벤트를 알려주며,
사용자들의 카메라, 오디오 상태, 미디어 소스의 변경이 있을 때마다
vchatCloud의 channel 객체가 이벤트를 통해 알려주게 됩니다.
그렇기 때문에 원하는 기능을 간단하게 구현할 수 있고, 사용자에 따라 커스텀도 가능합니다.

vchatCloud의 영상 채팅을 사용하는 데는 2가지 방법이 있는데, 코드 복사형(iframe 방식)과, 다운로드형이 있습니다.
코드 복사형을 이용하시면 코딩에 관련된 지식 없이 간편하게 이용하실 수 있으나, 사용자 특성에 따른 변경이 불가능하며,
다운로드형을 이용하시면 사용하는 부분의 특성에 맞춰 변경하실 수 있습니다.

자세한 이용 방법은 다음 챕터에서 확인하실 수 있습니다.

Copyright 2022. E7Works Inc. & JOYTUNE Corp. All Rights Reserved.