1) WebRTC란?
Web Real-Time Communication의 줄임말로 웹 브라우저 간 플러그인 도움 없이 서로 통신할 수 있게 설계된 API다.
2011년에 나온 API로 나온지는 조금 되었는데, 코로나 등의 영향으로 비대면 서비스에 대한 요구가 커지면서 조금 더 주목을 받고 있는 기술이다.
최근에는 JavaScript나 웹브라우저만을 활용한 서비스도 나오는데 WebRTC 역시 큰 몫을 하고 있다.
참고 URL : ko.wikipedia.org/wiki/WebRTC
2) 장점
가장 큰 장점은 브라우저의 기능을 활용한 서비스 구현이 가능하다는 것이다.
화상채팅 프로그램 개발은 말로만 들어도 어려울 것 같은데,
이 어려운 것을 모든 컴퓨터, 스마트폰에서 이미 사용 중인 웹 브라우저
(크롬, 사파리, 엣지 등)기반으로 자유롭게 사용할 수 있게 한다는 것이 가장 큰 장점이다.
3) 참고샘플코드
참고할만한 GITHUB : github.com/NanKisu/STUDY-WebRTC
4) 테스트
위 코드를 기반으로 웹을 띄어보면 아래와 같은 화면이 나온다.
그 상태에서 session 정보를 주고받으면
ㅇ이렇게 서로 연결이 되고
원격으로 브라우저를 이용해 채팅이 가능하다.
물론 화상 채팅도 가능하다.
5) 단점
원격으로 다른 브라우저와 통신을 하므로 권한을 획득해야한다.
특히 서버 역할을 하는 사용자는 반드시 마이크 권한을 상대방에게 제공해야한다.
심지어 마이크 관련 기능을 전혀 쓰지 않아도 마찬가지이다.
서버 역할을 하는 사용자가 이와같이 마이크를 차단하면 상호 통신이 불가능하다.
실제 서비스로 제공시에는 엔드유저가 권한을 허용하는것에 대해 거부감이 없도록 프로그램 및 UX 설계를 잘 해야할듯 하다.
'아키텍처 Architecture > Software Architecture' 카테고리의 다른 글
Node.js와 MySQL 초스피드 연동하기 1) npm init (2) | 2021.04.14 |
---|---|
금융IT와 MSA - 1. 왜 필요한가? (0) | 2021.03.21 |
ELK Stack으로 로그분석 시각화하기 - 1. 개념 (0) | 2021.03.21 |
[JavaScript] 콜스택과 비동기 원리 ( 싱글 스레드 보완 ) (0) | 2021.02.23 |
[Java] JVM은 어떻게 자바 코드를 실행하는가 (0) | 2021.02.22 |