상세 컨텐츠

본문 제목

화상채팅 / 실시간화상회의/ 온라인수업 ... webRtc 로 직접 만들어보자 ZOOM 대체 (1)

IT공부방/jQuery, ajax, java

by 동해둘리 2020. 9. 6. 10:14

본문

반응형

화상채팅 / 실시간화상회의 솔루션

코로나 여파로 화상채팅/ 화상회의 솔루션을 이용한 온라인 수업을 실시하는 학교와 기관이 늘어나고 있습니다. 

 

화상채팅 온라인수업

 

 

줌(ZOOM) 을 이용하거나 구글미트(Google meet) 등의 솔루션을 이용하는 경우가 많은데요, 많은 사람들이 접속하다 보니 간혹 접속오류가 발생하는 경우가 많습니다.

 

 

 

 

내 마음대로 바꾸기 어려운 줌(Zoom) 과 구글미트(Google Meet)

 

줌(ZOOM) 이나 구글미트(Google Meet) 를 이용할 경우, 접속오류 외에도 또 한가지 아쉬운 점이 있습니다. 바로 내 마음대로 커스터마이징을 하지 못한다는 것입니다. 

 

 

 

 

화상회의 솔루션을 직접 만들어보자

화상회의 솔루션을 직접 만든다면 내 마음대로 커스터마이징이 가능하겠지만, 그러기에는 많은 어려움이 있습니다. 왜냐하면 동영상을 실시간으로 전송하기 위해 실시간 스트리밍 서버를 준비해야 하고, 스트리밍으로 인한 과도한 트래픽으로 서버 유지비용이 증가하기 때문입니다. 

 

 

화상회의

 

 

 

webRtc로 화상회의 솔루션을 만들어보자

 

webRtc를 이용하면 별도의 동영상 스트리밍 서버가 없이 화상회의 솔루션을 구축할 수 있습니다. webRtc (Web Real-Time Communications)는 앱을 사용하지 않고 브라우저 상에서 영상과 음성을 전달하는 방법입니다. 마치, 사무실 내에서 PC와 PC간에 직접 연결을 통한 채팅/파일전송 등을 하는 것과 마찬가지로 peer 와 peer 간에 직접적인 통신채널을 확보하여 브라우저를 통해 직접 전송하는 방식입니다. 게다가 오픈소스 입니다. 

 

 

webRtc

 

 

방화벽 때문에 안된다고?

 

하지만, PC와 PC간의 직접통신을 위해서는 해당 PC를 특정할 수 있는 IP주소나 Mac address 등의 정보가 필요합니다. 특히나 방화벽으로 막혀있는 PC로의 접속은 불가능에 가깝습니다. 하지만, webRtc 는 sturn, turn 이라는 기술의 도움을 받아 방화벽 뒤에 있는 PC의 접속주소를 알아내어 이를 통해 peer to peer 접속을 가능하게 합니다. 

 

 

 

 

 

 

webRTC 와 Firebase Realtime Database 와의 만남

 

정리하자면, turn 서버를 통해 Peer 의 접속경로를 알아내고 이를 통해 peer to peer 커넥션을 연결하여 영상과 음성을 전송하는 방식입니다. 이때, turn 서버를 별도로 구축해야만 되지만, 다행히 turn 서버는 공개된 서버가 많이 있습니다. 또한, 접속한 상대방에게 자신의 peer 주소를 전달하고 접속을 요청하기 위해서는 Firebase에서 제공하는 Realtime Database 를 사용하면 실시간으로 요청이 가능합니다. 

 

 

 

 

webRtc의 한계

webRtc는 아주 심플한 기술이기 때문에 한계점이 없어 보입니다. 하지만, webRtc에도 한계가 있었는데 사실, 이것은 webRtc의 한계라기 보다는 아이폰의 한계입니다. 아이폰은 웹 브라우저의 기본 모듈을 PC나 안드로이드 기반의 webview를 사용하지 않고 독자적인 모듈을 사용하기 때문에 webRtc를 사용하려고 하면 영상은 전송이 가능하지만 음성은 사용할 수 가 없습니다. 다행히 iOS 13.5.5 beta 버전 부터는 webRtc를 지원한다고 합니다.

 

 

 

 

간단하게 구현해 보는 webRtc 예제

 

다소 복잡한 과정을 거쳐야 하지만, 이를 실제 구현한 예제를 보면 그다지 어렵지 않게 구현할 수 있습니다. 다음 포스팅에서 실제 예제를 소개해 드리겠습니다.

 

 

 

 

 

 

 

반응형

관련글 더보기

댓글 영역