개발 - WebRTC

WebRTC 보이스채팅 개발하기 - 1. 시작

개미v 2023. 4. 5. 19:01

 

직장인들이 항상 입에 달고 사는 "때려치우고 개인 사업해야지"를 직접 도전하기로 하였습니다.

할 줄 아는 것은 개발밖에는 없는지라, 첫 번째 프로젝트로 랜덤 보이스 채팅이라는 것을 만들기로 하였습니다.

 

사전조사

- 청소년 유해 매체물에 걸리지 않나?

여성가족부 고시 중에서 불특정 이용자 간 온라인 대화 서비스(예 : 랜덤채팅)는 성인만 이용가능하도록하는 규제가 있습니다.

그런데 다행이도 대상이 어플리케이션(앱)으로 한정 되어 있습니다.

앱으로 서비스 하면 사용자가 조금 더 많을 것 같지만, 규제 내용의 ①본인인증 ②저장기능 ③신고기능을 제공하기에는 무료 서비스의 광고수익으로는 유지가 안될 것 같습니다..

저는 법망을 피해서 웹사이트로 서비스 하기로 했습니다.

 

- WebRTC가 P2P로 연결해 준다는데 공유기 환경에서도 가능한가?

두 사용자가 공유기 환경에 있다면 둘 다 서버가 될 수 없고, 포트오픈도 불가능하기에 어떻게 된다는 것인지 의문이 들었습니다.

역시나 그냥은 안되고 중계서버(TURN)가 필요하다고 합니다.

 

- 중계서버가 필요하면 많은 사용자들 트래픽 처리가 가능할까?

서버를 가정집에서 운영할 것인데 1Gbps 인터넷 설치하면 몇 명이나 서비스 가능한지 ChatGPT한테 물어봤습니다.

직접 계산해보기 귀찮은데 물어보면 알려주니 편리하네요.

 

1Gbps의 대역폭을 가진 네트워크 환경에서 WebRTC 음성 대화 사용 가능 인원은 사용하는 코덱과 대역폭 사용량에 따라 다릅니다. WebRTC에서는 Opus 코덱을 사용하는 것이 일반적입니다. Opus 코덱은 다른 코덱보다 대역폭 사용량이 적으므로 더 많은 사용자가 동시에 사용 가능합니다. 대략적으로 1명의 사용자당 20Kbps의 대역폭을 사용하므로, 약 50,000명 정도의 사용자가 동시에 사용 가능할 것으로 예상됩니다. 그러나 이는 이론적인 수치이며, 실제 인터넷 환경에서는 라우터, 스위치, 네트워크 지연 등의 요소가 영향을 미치므로, 더 적은 사용자 수로도 대역폭 부족 문제가 발생할 수 있습니다.

 

동시접속 트래픽 문제는 없을 것으로 판단 됩니다.

그런데 가정용 인터넷은 1일 150GB 사용량 제한이 있어서 사용자가 많으면 여기에 먼저 걸리게 됩니다.

1일 사용량 제한에 걸릴정도로 대박이 날 가능성은 미미하기 때문에 패스합니다.

 

WebRTC 공부

WebRTC에 대해서 찾아보면 이론적인 내용의 포스팅은 많이 있습니다.

그런데 제 머리로는 아무리 봐도 무슨 말인지 모르겠습니다.

포스팅 한 사람들 프로필 이력이 서울대, 카카오, 네이버 클로바 AI 이런 상위 1% 안에 드는 사람들 ㄷㄷ

저는 간단 간단한 것 끄적이는 평범한 개발자인데(아마도 상위 10% 수준) 할 수 있을지 걱정입니다.

 

WebRTC, STUN, TURN, ICE candidate, Signaling 여러 용어가 나오는데 아래 블로그가 매우 짧막하게 잘 설명 하는 것 같습니다.

https://penguin-story.tistory.com/23

 

WebRTC란?

안녕하세요. 오늘은 WebRTC란 무엇인지에 대해 알아보겠습니다. WebRTC란? WebRTC(Web Real-Time Communications)란 웹, 앱에서 별도의 소프트웨어, 플러그인 없이 영상, 음성, 텍스트, 파일 같은 데이터들을 주

penguin-story.tistory.com

 

어차피 잘 이해 안되는 것 예제 소스 보면 좀 되겠지 하며 넘어 가겠습니다.

 

 

 

※ 위 내용은 랜덤보이스채팅 이오이카를 개발하면서 공부한 내용입니다.

https://voice.eoeca.com