그래서 한번 이 곳에 webRTC의 종류와 장단점에 대해 이야기하고 싶어서 적게 되었다.
먼저 P2P에 대해 설명하도록 하겠다.
P2P는 말그대로 Peer To Peer 사용자의 컴퓨터(클라이언트)를 직접 서로 연결 시키는 것이다. 나의 비디오 오디오 데이터 & 상대방의 비디오 오디오 데이터를 서로 주고받는 직거래 형태라고 보면 편할거 같다. (나의 데이터는 upLink 라고 지칭하고 상대방의 데이터는 downLink 라고 지칭하겠다.)
그림으로 보면 총 5명의 클라이언트가 서로 연결하는 모습을 볼 수 있다. 그렇게 되면 나의 upLink를 상대방에게 4개를 주고 상대방의 데이터인 downLink를 4개를 주고 받아야하기 때문에 총 8개의 데이터를 주고 받는다.
이 P2P의 문제점은 다수가 연결할때 과부하로 인해 힘들다는 단점이 있어서 이 것을 보안할 수 있는 SFU와 MCU 가 있다. SFU와 MCU는 클라이언트 간의 직접 연결이 아니고 서버가 클라이언트간을 중계하는 방식이다. 그렇다면 먼저 SFU 방식을 설명하겠다.
그렇다면 대규모를 관리할 수 있는 webRTC는 없을까 ? 있다. 바로 MCU이다 한번 살펴보자
1) P2P는 1:1 또는 소규모의 MESH 형태의 통신
2) SFU는 1:N 또는 소규모 N:M 통신,
3) MCU는 N:M 통신의 적합한 방식이라고 말할 수 있다.
이렇게 정리해보았는데 혹여나 webRTC에 대해 개념이 안잡히신 분들이 이 글을 보고 쉽게 접근했으면 좋겠다는 생각으로 적었는데... 도움이 되었으면 좋겠다.
어쨌든 정리를 하다보니 webRTC에 대해 어느정도 눈에 들어왔다. 다만 자료가 그렇게 많지 않기 때문에 좀 더 깊게 공부하고 싶어도 생각보다 쉽지 않다는점이 아쉽다. 그래도 기회가 된다면 좀 깊게 파보고 싶은 기능중에 하나이다.