ํต์ฌ RTCPeerConnection API์ ์ ์ฒด WebRTC ๊ตฌํ์ ์ฐจ์ด์ ์ ์์๋ณด๊ณ , ์ํคํ ์ฒ, ๊ณผ์ , ๊ธ๋ก๋ฒ ์ ์ฉ ์ฌ๋ก๋ฅผ ์ฌ์ธต์ ์ผ๋ก ์ดํด๋ด ๋๋ค.
์ค์๊ฐ ์ปค๋ฎค๋์ผ์ด์ : WebRTC ๊ตฌํ๊ณผ ํผ์ด ์ฐ๊ฒฐ โ ๊ธ๋ก๋ฒ ์ฌ์ธต ๋ถ์
์ ์ ๋ ์ํธ ์ฐ๊ฒฐ๋๋ ์ธ์์์ ์ฆ๊ฐ์ ์ด๊ณ ์ํํ ์ปค๋ฎค๋์ผ์ด์ ์ ๋ํ ์๊ตฌ๋ ๋์ด ์์ต๋๋ค. ๋๋ฅ์ ๊ฑด๋ ๊ฐ์กฑ๊ณผ ๋๋๋ ๊ฐ๋จํ ์์ ํตํ๋ถํฐ ์ค์ํ ์๊ฒฉ ์๋ฃ ์๋ด, ํ์ ์ฝ๋ฉ ์ธ์ , ๋ชฐ์ ํ ์จ๋ผ์ธ ๊ฒ์์ ์ด๋ฅด๊ธฐ๊น์ง, ์ค์๊ฐ ์ปค๋ฎค๋์ผ์ด์ (RTC)์ ํ๋ ๋์งํธ ์ํธ ์์ฉ์ ์ค์ถ๊ฐ ๋์์ต๋๋ค. ์ด ํ๋ช ์ ์ค์ฌ์๋ ์น ๋ธ๋ผ์ฐ์ ์ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์๊ฐ ํต์ ๊ธฐ๋ฅ์ ๋ถ์ฌํ๋ ์คํ ์์ค ํ๋ก์ ํธ์ธ WebRTC(Web Real-Time Communication)๊ฐ ์์ต๋๋ค.
๋ง์ ๊ฐ๋ฐ์์ ์ ํธ๊ฐ๋ค์ด WebRTC๋ผ๋ ์ฉ์ด์ ์ต์ํ์ง๋ง, 'WebRTC ๊ตฌํ'์ด๋ผ๋ ๋์ ๊ฐ๋
๊ณผ 'RTCPeerConnection
'์ผ๋ก ์๋ ค์ง ๊ธฐ๋ณธ ๊ตฌ์ฑ ์์ ์ฌ์ด๋ฅผ ๊ตฌ๋ณํ ๋ ํํ ํผ๋์ด ๋ฐ์ํฉ๋๋ค. ์ด ๋์ ๋์ผํ ๊ฒ์ผ๊น์? ์๋๋ฉด ํ๋๊ฐ ๋ค๋ฅธ ํ๋์ ๊ตฌ์ฑ ์์์ผ๊น์? ์ด ์ค์ํ ์ฐจ์ด์ ์ ์ดํดํ๋ ๊ฒ์ ๊ฒฌ๊ณ ํ๊ณ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ์ ์ธ๊ณ์ ์ผ๋ก ์ ๊ทผ ๊ฐ๋ฅํ ์ค์๊ฐ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์ถํ๋ ค๋ ๋ชจ๋ ์ฌ๋์๊ฒ ๊ฐ์ฅ ์ค์ํฉ๋๋ค.
์ด ํฌ๊ด์ ์ธ ๊ฐ์ด๋๋ ์ด๋ฌํ ๊ฐ๋
๋ค์ ๋ช
ํํ ์ค๋ช
ํ์ฌ WebRTC์ ์ํคํ
์ฒ, RTCPeerConnection
์ ์ค์ถ์ ์ธ ์ญํ , ๊ทธ๋ฆฌ๊ณ ์์ ํ WebRTC ๊ตฌํ์ ๋ค๋ฉด์ ์ธ ํน์ฑ์ ๋ํ ๋ช
ํํ ์ดํด๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ง๋ฆฌ์ , ๊ธฐ์ ์ ์ฅ๋ฒฝ์ ์ด์ํ์ฌ ์ ํ๋ฆฌ์ผ์ด์
์ด ์ง์ ํ ๊ธ๋ก๋ฒ ์ฌ์ฉ์์๊ฒ ์๋น์ค๋ฅผ ์ ๊ณตํ ์ ์๋๋ก ๋ณด์ฅํ๋ RTC ์๋ฃจ์
๋ฐฐํฌ์ ๊ณผ์ ์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ํ๊ตฌํ ๊ฒ์
๋๋ค.
์ค์๊ฐ ์ปค๋ฎค๋์ผ์ด์ ์ ์๋ง: ์ ์ค์ํ๊ฐ
์ ์ธ๊ธฐ ๋์ ์ธ๊ฐ์ ์ปค๋ฎค๋์ผ์ด์ ์ ์ฐ๊ฒฐํ๊ณ ์ ํ๋ ํ๊ณ ๋ ์๊ตฌ์ ์ํด ์งํํด ์์ต๋๋ค. ๋ง์ ํ ๊ธฐ์๊ฐ ์ ๋ฌํ๋ ํธ์ง์์ ์ ์ , ์ ํ, ๊ทธ๋ฆฌ๊ณ ๋ง์นจ๋ด ์ธํฐ๋ท์ ์ด๋ฅด๊ธฐ๊น์ง, ๊ฐ๊ฐ์ ๊ธฐ์ ์ ๋์ฝ์ ์ํธ ์์ฉ์ ๋ง์ฐฐ์ ์ค์ด๊ณ ์๋๋ฅผ ๋์์ต๋๋ค. ๋์งํธ ์๋๋ ์ด๋ฉ์ผ๊ณผ ์ธ์คํดํธ ๋ฉ์์ง์ ๊ฐ์ ธ์์ง๋ง, ์ง์ ํ ์ค์๊ฐ ๋ํํ ๊ฒฝํ์ ์ข ์ข ๋ฒ๊ฑฐ๋กญ๊ณ ์ ๋ฌธ ์ํํธ์จ์ด๋ ํ๋ฌ๊ทธ์ธ์ ํ์๋ก ํ์ต๋๋ค.
WebRTC์ ๋ฑ์ฅ์ ์ด ํ๊ฒฝ์ ๊ทน์ ์ผ๋ก ๋ณํ์์ผฐ์ต๋๋ค. ์ด๋ ์ค์๊ฐ ํต์ ์ ๋์คํํ์ฌ ์น ๋ธ๋ผ์ฐ์ ์ ๋ชจ๋ฐ์ผ ํ๋ซํผ์ ์ง์ ๋ด์ฅํจ์ผ๋ก์จ ๋จ ๋ช ์ค์ ์ฝ๋๋ก ์ ๊ทผํ ์ ์๊ฒ ๋ง๋ค์์ต๋๋ค. ์ด๋ฌํ ๋ณํ๋ ๋ค์๊ณผ ๊ฐ์ ์ฌ์คํ ์๋ฏธ๋ฅผ ๊ฐ์ง๋๋ค:
- ๊ธ๋ก๋ฒ ์ ๊ทผ์ฑ๊ณผ ํฌ์ฉ์ฑ: WebRTC๋ ์ง๋ฆฌ์ ์ฅ๋ฒฝ์ ํ๋ญ ๋๋ค. ์ค๋งํธํฐ์ ๊ฐ์ง ์ธ๋ด ๋ง์์ ์ฌ์ฉ์๋ ์ด์ ์์ฒ ํฌ๋ก๋ฏธํฐ ๋จ์ด์ง ๋๋์ ๋ณ์์ ์ ๋ฌธ์์ ๊ณ ํ์ง ์์ ํตํ๋ฅผ ํ ์ ์์ต๋๋ค. ์ด๋ ์์น์ ๊ด๊ณ์์ด ๊ต์ก, ์๋ฃ ๋ฐ ๋น์ฆ๋์ค ์ํธ ์์ฉ์ ๊ฐํํฉ๋๋ค.
- ์ฆ์์ฑ๊ณผ ์ฐธ์ฌ๋: ์ค์๊ฐ ์ํธ ์์ฉ์ ๋น๋๊ธฐ ๋ฐฉ์์ด ๋ฐ๋ผ์ฌ ์ ์๋ ํ์ฅ๊ฐ๊ณผ ์ฆ์์ฑ์ ์กฐ์ฑํฉ๋๋ค. ์ด๋ ํ์ , ์๊ธฐ ๋์ ๋ฐ ๊ฐ์ธ์ ์ธ ์ฐ๊ฒฐ์ ๋งค์ฐ ์ค์ํฉ๋๋ค.
- ๋น์ฉ ํจ์จ์ฑ: ํผ์ด ํฌ ํผ์ด ์ฐ๊ฒฐ๊ณผ ๊ฐ๋ฐฉํ ํ์ค์ ํ์ฉํจ์ผ๋ก์จ WebRTC๋ ์ ํต์ ์ธ ์ ํ ํต์ ์ด๋ ๋ ์ ์ ์ธ ํ์ ํ์ ์์คํ ๊ณผ ๊ด๋ จ๋ ์ธํ๋ผ ๋น์ฉ์ ํฌ๊ฒ ์ค์ผ ์ ์์ต๋๋ค. ์ด๋ก์จ ์คํํธ์ ๊ณผ ์์ฐ์ด ์ ํ๋ ์กฐ์ง๋ ์ ์ธ๊ณ์ ์ผ๋ก ๊ณ ๊ธ ํต์ ๋๊ตฌ์ ์ ๊ทผํ ์ ์๊ฒ ๋ฉ๋๋ค.
- ํ์ ๊ณผ ์ ์ฐ์ฑ: WebRTC๋ ๊ฐ๋ฐฉํ ํ์ค ๋ฐ API ์งํฉ์ผ๋ก, ๊ฐ๋ฐ์๋ค์ด ํน์ ๊ณต๊ธ์ ์ฒด ์ํ๊ณ์ ์ฝ๋งค์ด์ง ์๊ณ ์ฆ๊ฐ ํ์ค ๊ฒฝํ์์ ๋๋ก ์ ์ด์ ์ด๋ฅด๊ธฐ๊น์ง ํน์ ์๊ตฌ์ ๋ง๋ ๋ง์ถคํ ์๋ฃจ์ ์ ํ์ ํ๊ณ ๊ตฌ์ถํ๋๋ก ์ฅ๋ คํฉ๋๋ค.
์ด๋์๋ ๊ฐ๋ฅํ ์ค์๊ฐ ์ปค๋ฎค๋์ผ์ด์ ์ ์ํฅ์ ๊ฑฐ์ ๋ชจ๋ ๋ถ๋ฌธ์์ ๋ช ๋ฐฑํ๋ฉฐ, ์ฐ๋ฆฌ๊ฐ ์ ์ธ๊ณ์ ์ผ๋ก ๋ฐฐ์ฐ๊ณ , ์ผํ๊ณ , ์น์ ํ๊ณ , ์ฌ๊ตํ๋ ๋ฐฉ์์ ๋ณํ์ํค๊ณ ์์ต๋๋ค. ์ด๋ ๋จ์ํ ์ ํ๋ฅผ ๊ฑฐ๋ ๊ฒ์ ๋์ด, ๋ ํ๋ถํ๊ณ ํจ๊ณผ์ ์ธ ์ธ๊ฐ ์ํธ ์์ฉ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๊ฒ์ ๋๋ค.
WebRTC ํด๋ถํ๊ธฐ: ํ๋ RTC์ ๊ธฐ์ด
WebRTC๋ ๋ฌด์์ธ๊ฐ?
ํต์ฌ์ ์ผ๋ก WebRTC(Web Real-Time Communication)๋ ์ถ๊ฐ ํ๋ฌ๊ทธ์ธ์ด๋ ์ํํธ์จ์ด ์์ด ์น ๋ธ๋ผ์ฐ์ ์ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ง์ ์ค์๊ฐ ํต์ (RTC)์ ์ํํ ์ ์๋๋ก ํ๋ ๊ฐ๋ ฅํ ์คํ ์์ค ํ๋ก์ ํธ์ ๋๋ค. ์ด๋ ์๋ ์์ด๋ ์น ์ปจ์์์(W3C)๊ณผ ๊ตญ์ ์ธํฐ๋ท ํ์คํ ๊ธฐ๊ตฌ(IETF)๊ฐ ๊ฐ๋ฐํ API(์ ํ๋ฆฌ์ผ์ด์ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค) ์ฌ์์ผ๋ก, ๋ธ๋ผ์ฐ์ ๊ฐ ์ค๋์ค, ๋น๋์ค ๋ฐ ์์์ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ๊ธฐ ์ํด ํผ์ด ํฌ ํผ์ด ์ฐ๊ฒฐ์ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ์ ์ํฉ๋๋ค.
WebRTC ์ด์ ์๋ ๋ธ๋ผ์ฐ์ ์์์ ์ค์๊ฐ ์ํธ ์์ฉ์ด ์ผ๋ฐ์ ์ผ๋ก ๋ ์ ์ ์ธ ๋ธ๋ผ์ฐ์ ํ๋ฌ๊ทธ์ธ(Flash ๋๋ Silverlight ๋ฑ)์ด๋ ๋ฐ์คํฌํฑ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์๋ก ํ์ต๋๋ค. ์ด๋ฌํ ์๋ฃจ์ ์ ์ข ์ข ํธํ์ฑ ๋ฌธ์ , ๋ณด์ ์ทจ์ฝ์ฑ ๋ฐ ๋จํธ์ ์ธ ์ฌ์ฉ์ ๊ฒฝํ์ผ๋ก ์ด์ด์ก์ต๋๋ค. WebRTC๋ RTC ๊ธฐ๋ฅ์ ์น ํ๋ซํผ์ ์ง์ ๋ด์ฅํ์ฌ ์น ํ์ด์ง๋ฅผ ํ์ํ๋ ๊ฒ์ฒ๋ผ ์ํํ๊ฒ ๋ง๋ค์ด ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๊ณ ์๋์์ต๋๋ค.
์ด ํ๋ก์ ํธ๋ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ์ฌ๋ฌ JavaScript API, HTML5 ์ฌ์ ๋ฐ ๊ธฐ๋ณธ ํ๋กํ ์ฝ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค:
- ๋ฏธ๋์ด ์คํธ๋ฆผ ํ๋: ๋ก์ปฌ ์ค๋์ค ๋ฐ ๋น๋์ค ์บก์ฒ ์ฅ์น(์น์บ , ๋ง์ดํฌ)์ ์ ๊ทผํฉ๋๋ค.
- ํผ์ด ํฌ ํผ์ด ๋ฐ์ดํฐ ๊ตํ: ๋ธ๋ผ์ฐ์ ๊ฐ์ ์ง์ ์ฐ๊ฒฐ์ ์ค์ ํ์ฌ ๋ฏธ๋์ด ์คํธ๋ฆผ(์ค๋์ค/๋น๋์ค) ๋๋ ์์์ ๋ฐ์ดํฐ๋ฅผ ๊ตํํฉ๋๋ค.
- ๋คํธ์ํฌ ์ถ์ํ: ๋ฐฉํ๋ฒฝ ๋ฐ ๋คํธ์ํฌ ์ฃผ์ ๋ณํ๊ธฐ(NAT)๋ฅผ ํฌํจํ ๋ณต์กํ ๋คํธ์ํฌ ํ ํด๋ก์ง๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
WebRTC์ ์ฅ์ ์ ํ์คํ์ ๋ธ๋ผ์ฐ์ ํตํฉ์ ์์ต๋๋ค. Chrome, Firefox, Safari, Edge์ ๊ฐ์ ์ฃผ์ ๋ธ๋ผ์ฐ์ ๋ชจ๋ WebRTC๋ฅผ ์ง์ํ์ฌ ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ด๋ฒ์ํ ๋๋ฌ ๋ฒ์๋ฅผ ๋ณด์ฅํฉ๋๋ค.
WebRTC ์ํคํ ์ฒ: ์ฌ์ธต ๋ถ์
WebRTC๋ ์ข ์ข '๋ธ๋ผ์ฐ์ ๊ฐ ํต์ '์ผ๋ก ๋จ์ํ๋์ง๋ง, ๊ทธ ๊ธฐ๋ณธ ์ํคํ ์ฒ๋ ์ ๊ตํ๋ฉฐ ์ฌ๋ฌ ๊ฐ๋ณ ๊ตฌ์ฑ ์์๊ฐ ํจ๊ป ์๋ํฉ๋๋ค. ์ด๋ฌํ ๊ตฌ์ฑ ์์๋ฅผ ์ดํดํ๋ ๊ฒ์ ์ฑ๊ณต์ ์ธ WebRTC ๊ตฌํ์ ๋งค์ฐ ์ค์ํฉ๋๋ค.
-
getUserMedia
API:์ด API๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฌ์ฉ์์ ๋ง์ดํฌ ๋ฐ ์น์บ ๊ณผ ๊ฐ์ ๋ก์ปฌ ๋ฏธ๋์ด ์ฅ์น์ ๋ํ ์ ๊ทผ์ ์์ฒญํ๋ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ ๋ชจ๋ ์ค๋์ค/๋น๋์ค ํต์ ์ ์ฒซ ๋จ๊ณ๋ก, ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฌ์ฉ์์ ์คํธ๋ฆผ(
MediaStream
๊ฐ์ฒด)์ ์บก์ฒํ ์ ์๊ฒ ํฉ๋๋ค.์์: ์ ์ธ๊ณ ํ์๋ค์ด ์์ด๋ฏผ๊ณผ ๋งํ๊ธฐ ์ฐ์ต์ ํ ์ ์๋๋ก ํ๋ ์ธ์ด ํ์ต ํ๋ซํผ์
getUserMedia
๋ฅผ ์ฌ์ฉํ์ฌ ์ค์๊ฐ ๋ํ๋ฅผ ์ํด ์ค๋์ค์ ๋น๋์ค๋ฅผ ์บก์ฒํฉ๋๋ค. -
RTCPeerConnection
API:์ด๋ ๋ ๋ธ๋ผ์ฐ์ (๋๋ ํธํ ์ ํ๋ฆฌ์ผ์ด์ ) ๊ฐ์ ์ง์ ์ ์ธ ํผ์ด ํฌ ํผ์ด ์ฐ๊ฒฐ์ ์ค์ ํ๊ณ ๊ด๋ฆฌํ๋ ์ญํ ์ ํ๋, ํ๋ฆผ์์ด WebRTC์ ๊ฐ์ฅ ์ค์ํ ๊ตฌ์ฑ ์์์ ๋๋ค. ๋ฏธ๋์ด ๊ธฐ๋ฅ ํ์, ๋ณด์ ์ฐ๊ฒฐ ์ค์ , ํผ์ด ๊ฐ ์ง์ ๋ฏธ๋์ด ๋ฐ ๋ฐ์ดํฐ ์คํธ๋ฆผ ๊ตํ๊ณผ ๊ฐ์ ๋ณต์กํ ์์ ์ ์ฒ๋ฆฌํฉ๋๋ค. ๋ค์ ์น์ ์์ ์ด ๊ตฌ์ฑ ์์๋ฅผ ํจ์ฌ ๋ ๊น์ด ๋ค๋ฃฐ ๊ฒ์ ๋๋ค.
์์: ์๊ฒฉ ํ๋ก์ ํธ ๊ด๋ฆฌ ๋๊ตฌ์์
RTCPeerConnection
์ ์๋ก ๋ค๋ฅธ ์๊ฐ๋์ ์์นํ ํ์๋ค ๊ฐ์ ์ง์ ์ ์ธ ํ์ ํ์ ๋งํฌ๋ฅผ ์ฉ์ดํ๊ฒ ํ์ฌ ์ ์ง์ฐ ํต์ ์ ๋ณด์ฅํฉ๋๋ค. -
RTCDataChannel
API:RTCPeerConnection
์ด ์ฃผ๋ก ์ค๋์ค์ ๋น๋์ค๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ๋ฉด,RTCDataChannel
์ ํผ์ด ๊ฐ์ ์์์ ๋ฐ์ดํฐ๋ฅผ ์ค์๊ฐ์ผ๋ก ๊ตํํ ์ ์๊ฒ ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ํ ์คํธ ๋ฉ์์ง, ํ์ผ ์ ์ก, ๊ฒ์ ์ ์ด ์ ๋ ฅ ๋๋ ๋๊ธฐํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ํ๊ฐ ํฌํจ๋ ์ ์์ต๋๋ค. ์ ๋ขฐํ ์ ์๋(์์ ๋ณด์ฅ ๋ฐ ์ฌ์ ์ก) ๋ฐ์ดํฐ ์ ์ก ๋ชจ๋์ ์ ๋ขฐํ ์ ์๋(์์ ๋ฏธ๋ณด์ฅ, ์ฌ์ ์ก ์์) ๋ฐ์ดํฐ ์ ์ก ๋ชจ๋๋ฅผ ๋ชจ๋ ์ ๊ณตํฉ๋๋ค.์์: ํ์ ๋์์ธ ์ ํ๋ฆฌ์ผ์ด์ ์
RTCDataChannel
์ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ๋์์ด๋๊ฐ ๋์์ ๋ณ๊ฒฝํ ๋ด์ฉ์ ๋๊ธฐํํ์ฌ ์ง๋ฆฌ์ ์์น์ ๊ด๊ณ์์ด ์ค์๊ฐ ๊ณต๋ ํธ์ง์ ๊ฐ๋ฅํ๊ฒ ํ ์ ์์ต๋๋ค. -
์๊ทธ๋๋ง ์๋ฒ:
๊ฒฐ์ ์ ์ผ๋ก, WebRTC ์์ฒด๋ ์๊ทธ๋๋ง ํ๋กํ ์ฝ์ ์ ์ํ์ง ์์ต๋๋ค. ์๊ทธ๋๋ง์ WebRTC ํตํ๋ฅผ ์ค์ ํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐ ํ์ํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๊ตํํ๋ ๊ณผ์ ์ ๋๋ค. ์ด ๋ฉํ๋ฐ์ดํฐ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค:
- ์ธ์ ๊ธฐ์ (SDP - Session Description Protocol): ๊ฐ ํผ์ด๊ฐ ์ ๊ณตํ๋ ๋ฏธ๋์ด ํธ๋(์ค๋์ค/๋น๋์ค), ์ฝ๋ฑ ๋ฐ ๋คํธ์ํฌ ๊ธฐ๋ฅ์ ๋ํ ์ ๋ณด.
- ๋คํธ์ํฌ ํ๋ณด(ICE ํ๋ณด): ๊ฐ ํผ์ด๊ฐ ํต์ ์ ์ฌ์ฉํ ์ ์๋ ๋คํธ์ํฌ ์ฃผ์(IP ์ฃผ์ ๋ฐ ํฌํธ)์ ๋ํ ์ ๋ณด.
์๊ทธ๋๋ง ์๋ฒ๋ ์ง์ ์ ์ธ ํผ์ด ํฌ ํผ์ด ์ฐ๊ฒฐ์ด ์ค์ ๋๊ธฐ ์ ์ ํผ์ด ๊ฐ์ ์ด ์ด๊ธฐ ์ค์ ์ ๋ณด๋ฅผ ๊ตํํ๋ ์์ ์ค๊ฐ์ ์ญํ ์ ํฉ๋๋ค. WebSocket, HTTP ๋กฑํด๋ง ๋๋ ์ฌ์ฉ์ ์ง์ ํ๋กํ ์ฝ๊ณผ ๊ฐ์ ๋ชจ๋ ๋ฉ์์ง ์ ๋ฌ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ๊ตฌํํ ์ ์์ต๋๋ค. ์ง์ ์ฐ๊ฒฐ์ด ์ค์ ๋๋ฉด ํด๋น ํน์ ์ธ์ ์ ๋ํ ์๊ทธ๋๋ง ์๋ฒ์ ์ญํ ์ ์ผ๋ฐ์ ์ผ๋ก ์๋ฃ๋ฉ๋๋ค.
์์: ๊ธ๋ก๋ฒ ์จ๋ผ์ธ ํํฐ๋ง ํ๋ซํผ์ ๋ธ๋ผ์ง์ ํ์๊ณผ ์ธ๋์ ํํฐ๋ฅผ ์ฐ๊ฒฐํ๊ธฐ ์ํด ์๊ทธ๋๋ง ์๋ฒ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์๋ฒ๋ ํ์ํ ์ฐ๊ฒฐ ์ธ๋ถ ์ ๋ณด๋ฅผ ๊ตํํ๋ ๋ฐ ๋์์ ์ฃผ์ง๋ง, ํตํ๊ฐ ์์๋๋ฉด ๋น๋์ค์ ์ค๋์ค๋ ์ง์ ํ๋ฆ ๋๋ค.
-
STUN/TURN ์๋ฒ (NAT ํต๊ณผ):
๋๋ถ๋ถ์ ์ฅ์น๋ ๋ผ์ฐํฐ๋ ๋ฐฉํ๋ฒฝ ๋ค์์ ์ธํฐ๋ท์ ์ฐ๊ฒฐ๋๋ฉฐ, ์ข ์ข ์ฌ์ค IP ์ฃผ์๋ฅผ ํ ๋นํ๋ ๋คํธ์ํฌ ์ฃผ์ ๋ณํ๊ธฐ(NAT)๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด๋ก ์ธํด ํผ์ด๋ค์ด ์๋ก์ ๊ณต์ฉ IP ์ฃผ์๋ ๋ฐฉํ๋ฒฝ์ ํต๊ณผํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ ์ง์ ์ ์ธ ํผ์ด ํฌ ํผ์ด ํต์ ์ด ์ด๋ ค์์ง๋๋ค. ์ด ๋ STUN ๋ฐ TURN ์๋ฒ๊ฐ ํ์ํฉ๋๋ค:
- STUN (Session Traversal Utilities for NAT) ์๋ฒ: ํผ์ด๊ฐ ์์ ์ ๊ณต์ฉ IP ์ฃผ์์ ์์ ์ด ์ํ NAT ์ ํ์ ๋ฐ๊ฒฌํ๋๋ก ๋์ต๋๋ค. ์ด ์ ๋ณด๋ ์๊ทธ๋๋ง์ ํตํด ๊ณต์ ๋์ด ํผ์ด๋ค์ด ์ง์ ์ฐ๊ฒฐ์ ์๋ํ ์ ์๊ฒ ํฉ๋๋ค.
- TURN (Traversal Using Relays around NAT) ์๋ฒ: ์ง์ ์ ์ธ ํผ์ด ํฌ ํผ์ด ์ฐ๊ฒฐ์ ์ค์ ํ ์ ์๋ ๊ฒฝ์ฐ(์: ์ ํ์ ์ธ ๋ฐฉํ๋ฒฝ์ผ๋ก ์ธํด), TURN ์๋ฒ๊ฐ ์ค๊ณ๊ธฐ ์ญํ ์ ํฉ๋๋ค. ๋ฏธ๋์ด ๋ฐ ๋ฐ์ดํฐ ์คํธ๋ฆผ์ TURN ์๋ฒ๋ก ์ ์ก๋ ๋ค์ ๋ค๋ฅธ ํผ์ด์๊ฒ ์ ๋ฌ๋ฉ๋๋ค. ์ด ๋ฐฉ๋ฒ์ ์ค๊ณ ์ง์ ์ ๋์ ํ์ฌ ์ฝ๊ฐ์ ์ง์ฐ ์๊ฐ ๋ฐ ๋์ญํญ ๋น์ฉ ์ฆ๊ฐ๋ฅผ ์ด๋ํ์ง๋ง, ๊ฑฐ์ ๋ชจ๋ ์๋๋ฆฌ์ค์์ ์ฐ๊ฒฐ์ฑ์ ๋ณด์ฅํฉ๋๋ค.
์์: ๋ณด์์ด ๊ฐํ๋ ์ฌ๋ฌด์ค ๋คํธ์ํฌ์์ ๊ทผ๋ฌดํ๋ ๊ธฐ์ ์ฌ์ฉ์๊ฐ ํ ๋คํธ์ํฌ์ ์๋ ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐํด์ผ ํฉ๋๋ค. STUN ์๋ฒ๋ ์๋ก๋ฅผ ์ฐพ๋ ๋ฐ ๋์์ ์ฃผ๋ฉฐ, ์ง์ ์ฐ๊ฒฐ์ด ์คํจํ ๊ฒฝ์ฐ TURN ์๋ฒ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ค๊ณํ์ฌ ํตํ๊ฐ ๊ณ์ ์งํ๋ ์ ์๋๋ก ๋ณด์ฅํฉ๋๋ค.
WebRTC ์์ฒด๋ ์ด๋ฌํ ๊ตฌ์ฑ ์์์ ๋ํ ํด๋ผ์ด์ธํธ ์ธก API๋ฅผ ์ ๊ณตํ๋ค๋ ์ ์ ๊ธฐ์ตํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์๊ทธ๋๋ง ์๋ฒ์ STUN/TURN ์๋ฒ๋ ์์ ํ WebRTC ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ฑํํ๊ธฐ ์ํด ๋ณ๋๋ก ๊ตฌํํ๊ฑฐ๋ ํ๋ก๋น์ ๋ํด์ผ ํ๋ ๋ฐฑ์๋ ์ธํ๋ผ์ ๋๋ค.
๋ฌธ์ ์ ํต์ฌ: RTCPeerConnection
vs. WebRTC ๊ตฌํ
๊ธฐ๋ฐ ๊ตฌ์ฑ ์์๋ฅผ ์ค๋ช
ํ์ผ๋ฏ๋ก, ์ด์ RTCPeerConnection
๊ณผ ์์ ํ WebRTC ๊ตฌํ ๊ฐ์ ์ฐจ์ด์ ์ ์ ํํ๊ฒ ๋ค๋ฃฐ ์ ์์ต๋๋ค. ์ด ์ฐจ์ด๋ ๋จ์ํ ์๋ฏธ๋ก ์ ์ธ ๊ฒ์ด ์๋๋ผ, ์ค์๊ฐ ํต์ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์ถํ๋ ๋ฐ ๊ด๋ จ๋ ๊ฐ๋ฐ ์์
์ ๋ฒ์์ ์ํคํ
์ฒ ๊ณ ๋ ค ์ฌํญ์ ๊ฐ์กฐํฉ๋๋ค.
RTCPeerConnection
์ดํดํ๊ธฐ: ์ง์ ์ฐ๊ฒฐ
RTCPeerConnection
API๋ WebRTC์ ์ด์์
๋๋ค. ์ด๋ ๋ ์๋ํฌ์ธํธ ๊ฐ์ ๋จ์ผ, ์ง์ , ํผ์ด ํฌ ํผ์ด ์ฐ๊ฒฐ์ ๋ํ๋ด๋ JavaScript ๊ฐ์ฒด์
๋๋ค. ์ค์๊ฐ ํต์ ์ด๋ผ๋ ์ฐจ๋์ ๊ตฌ๋ํ๋ ๊ณ ๋๋ก ์ ๋ฌธํ๋ ์์ง์ด๋ผ๊ณ ์๊ฐํ ์ ์์ต๋๋ค.
์ฃผ์ ์ฑ ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
-
์๊ทธ๋๋ง ์ํ ๊ด๋ฆฌ:
RTCPeerConnection
์์ฒด๋ ์๊ทธ๋๋ง ํ๋กํ ์ฝ์ ์ ์ํ์ง ์์ง๋ง, ์๊ทธ๋๋ง ์๋ฒ๋ฅผ ํตํด ๊ตํ๋ ์ธ์ ๊ธฐ์ ํ๋กํ ์ฝ(SDP)๊ณผ ICE ํ๋ณด๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ํ์์ ๋ด๋ถ ์ํ(์:have-local-offer
,have-remote-answer
)๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. -
ICE (Interactive Connectivity Establishment): ์ด๋
RTCPeerConnection
์ด ํผ์ด ๊ฐ ์ต์์ ํต์ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ๋ฐ ์ฌ์ฉํ๋ ํ๋ ์์ํฌ์ ๋๋ค. ๋ค์ํ ๋คํธ์ํฌ ํ๋ณด(๋ก์ปฌ IP ์ฃผ์, STUN์์ ํ์๋ ๊ณต์ฉ IP, TURN ์ค๊ณ ์ฃผ์)๋ฅผ ์์งํ๊ณ ๊ฐ์ฅ ํจ์จ์ ์ธ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐ์ ์๋ํฉ๋๋ค. ์ด ๊ณผ์ ์ ๋ณต์กํ๋ฉฐ ์ข ์ข ๊ฐ๋ฐ์์๊ฒ ๋ณด์ด์ง ์์ง๋ง API์ ์ํด ์๋์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. - ๋ฏธ๋์ด ํ์: ์ง์๋๋ ์ค๋์ค/๋น๋์ค ์ฝ๋ฑ, ๋์ญํญ ์ ํธ๋, ํด์๋ ๋ฑ ๊ฐ ํผ์ด์ ๊ธฐ๋ฅ์ ํ์ํฉ๋๋ค. ์ด๋ฅผ ํตํด ๊ธฐ๋ฅ์ด ๋ค๋ฅธ ์ฅ์น ๊ฐ์๋ ๋ฏธ๋์ด ์คํธ๋ฆผ์ ํจ๊ณผ์ ์ผ๋ก ๊ตํํ ์ ์์ต๋๋ค.
-
๋ณด์ ์ ์ก:
RTCPeerConnection
์ ํตํด ๊ตํ๋๋ ๋ชจ๋ ๋ฏธ๋์ด๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฏธ๋์ด์ฉ SRTP(Secure Real-time Transport Protocol)์ ํค ๊ตํ ๋ฐ ๋ฐ์ดํฐ ์ฑ๋์ฉ DTLS(Datagram Transport Layer Security)๋ฅผ ์ฌ์ฉํ์ฌ ์ํธํ๋ฉ๋๋ค. ์ด ๋ด์ฅ๋ ๋ณด์์ ์๋นํ ์ด์ ์ ๋๋ค. -
๋ฏธ๋์ด ๋ฐ ๋ฐ์ดํฐ ์คํธ๋ฆผ ๊ด๋ฆฌ: ๋ก์ปฌ ๋ฏธ๋์ด ํธ๋(
getUserMedia
์์)๊ณผ ๋ฐ์ดํฐ ์ฑ๋(RTCDataChannel
)์ ์๊ฒฉ ํผ์ด์๊ฒ ๋ณด๋ด๊ธฐ ์ํด ์ถ๊ฐํ ์ ์์ผ๋ฉฐ, ์๊ฒฉ ๋ฏธ๋์ด ํธ๋๊ณผ ๋ฐ์ดํฐ ์ฑ๋์ ์์ ํ๊ธฐ ์ํ ์ด๋ฒคํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. -
์ฐ๊ฒฐ ์ํ ๋ชจ๋ํฐ๋ง: ์ฐ๊ฒฐ ์ํ(์:
iceConnectionState
,connectionState
)๋ฅผ ๋ชจ๋ํฐ๋งํ๊ธฐ ์ํ ์ด๋ฒคํธ์ ์์ฑ์ ์ ๊ณตํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฐ๊ฒฐ ์คํจ๋ ์ฑ๊ณต์ ๋ฐ์ํ ์ ์๋๋ก ํฉ๋๋ค.
RTCPeerConnection
์ด ํ์ง ์๋ ๊ฒ์ ์ดํดํ๋ ๊ฒ๋ ๋๊ฐ์ด ์ค์ํฉ๋๋ค:
- ๋ค๋ฅธ ํผ์ด๋ฅผ ๋ฐ๊ฒฌํ์ง ์์ต๋๋ค.
- ํผ์ด ๊ฐ ์ด๊ธฐ ์๊ทธ๋๋ง ๋ฉ์์ง(SDP offer/answer, ICE ํ๋ณด)๋ฅผ ๊ตํํ์ง ์์ต๋๋ค.
- ํผ์ด ์ฐ๊ฒฐ ์์ฒด๋ฅผ ๋์ด์๋ ์ฌ์ฉ์ ์ธ์ฆ์ด๋ ์ธ์ ๊ด๋ฆฌ๋ฅผ ํ์ง ์์ต๋๋ค.
๋ณธ์ง์ ์ผ๋ก, RTCPeerConnection
์ ๋ ์ง์ ๊ฐ์ ์์ ํ๊ณ ํจ์จ์ ์ธ ์ง์ ์ฐ๊ฒฐ์ ์ค์ ํ๊ณ ์ ์งํ๋ ๋ณต์กํ ์ธ๋ถ ์ฌํญ์ ์บก์ํํ๋ ๊ฐ๋ ฅํ ์ ์์ค API์
๋๋ค. ๋คํธ์ํฌ ํต๊ณผ, ๋ฏธ๋์ด ํ์ ๋ฐ ์ํธํ์ ํ๋ ์์
์ ์ฒ๋ฆฌํ์ฌ ๊ฐ๋ฐ์๊ฐ ๋ ๋์ ์์ค์ ์ ํ๋ฆฌ์ผ์ด์
๋ก์ง์ ์ง์คํ ์ ์๋๋ก ํฉ๋๋ค.
๋ ๋์ ๋ฒ์: 'WebRTC ๊ตฌํ'
๋ฐ๋ฉด์ 'WebRTC ๊ตฌํ'์ WebRTC API๋ฅผ ์ฌ์ฉํ๊ณ ๊ทธ ์ฃผ๋ณ์ ๊ตฌ์ถ๋ ์ ์ฒด ๊ธฐ๋ฅ์ ์ ํ๋ฆฌ์ผ์ด์
๋๋ ์์คํ
์ ์๋ฏธํฉ๋๋ค. RTCPeerConnection
์ด ์์ง์ด๋ผ๋ฉด, WebRTC ๊ตฌํ์ ์์ ํ ์ฐจ๋(์๋์ฐจ, ํธ๋ญ ๋๋ ์ฐ์ฃผ ์๋ณต์ )์ผ๋ก, ํน์ ๋ชฉ์ ์ ์ํด ์ค๊ณ๋๊ณ ํ์ํ ๋ชจ๋ ๋ณด์กฐ ์์คํ
์ ๊ฐ์ถ๊ณ ์ฌ์ฉ์๋ฅผ ๋ชฉ์ ์ง๊น์ง ์ด์กํ ์ค๋น๊ฐ ๋ ๊ฒ์
๋๋ค.
ํฌ๊ด์ ์ธ WebRTC ๊ตฌํ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค:
- ์๊ทธ๋๋ง ์๋ฒ ๊ฐ๋ฐ: ์ด๋ ์ข ์ข ๋ธ๋ผ์ฐ์ API ์ธ๋ถ์์ ๊ฐ์ฅ ์ค์ํ ๊ตฌํ ๋ถ๋ถ์ ๋๋ค. ์ฐธ์ฌ์ ๊ฐ์ ์๊ทธ๋๋ง ๋ฉ์์ง๋ฅผ ์์ ์ ์ผ๋ก ๊ตํํ ์ ์๋ ์๋ฒ๋ฅผ ์ค๊ณ, ๊ตฌ์ถ ๋ฐ ๋ฐฐํฌํด์ผ ํฉ๋๋ค(๋๋ ํ์ฌ ์๋น์ค๋ฅผ ์ฌ์ฉ). ์ฌ๊ธฐ์๋ ํ์์ค ๊ด๋ฆฌ, ์ฌ์ฉ์ ์ํ ๊ด๋ฆฌ ๋ฐ ์ธ์ฆ์ด ํฌํจ๋ฉ๋๋ค.
- STUN/TURN ์๋ฒ ํ๋ก๋น์ ๋: STUN ๋ฐ ๋ ์ค์ํ๊ฒ๋ TURN ์๋ฒ๋ฅผ ์ค์ ํ๊ณ ๊ตฌ์ฑํ๋ ๊ฒ์ ๊ธ๋ก๋ฒ ์ฐ๊ฒฐ์ฑ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๊ณต๊ฐ STUN ์๋ฒ๊ฐ ์กด์ฌํ์ง๋ง, ํ๋ก๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ ์์ ์ฑ๊ณผ ์ฑ๋ฅ์ ๋ณด์ฅํ๊ธฐ ์ํด ์์ฒด ์๋ฒ๋ ๊ด๋ฆฌํ ์๋น์ค๊ฐ ํ์ํฉ๋๋ค. ํนํ ์ ์ธ๊ณ ๊ธฐ์ ์ด๋ ๊ธฐ๊ด ๋คํธ์ํฌ์์ ํํ ๋ณผ ์ ์๋ ์ ํ์ ์ธ ๋ฐฉํ๋ฒฝ ๋ค์ ์ฌ์ฉ์์๊ฒ๋ ๋์ฑ ๊ทธ๋ ์ต๋๋ค.
- ์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI) ๋ฐ ์ฌ์ฉ์ ๊ฒฝํ(UX): ์ฌ์ฉ์๊ฐ ํตํ๋ฅผ ์์, ์ฐธ์ฌ, ๊ด๋ฆฌ ๋ฐ ์ข ๋ฃํ๊ณ , ํ๋ฉด์ ๊ณต์ ํ๊ณ , ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ฑฐ๋ ํ์ผ์ ์ ์กํ ์ ์๋ ์ง๊ด์ ์ธ ์ธํฐํ์ด์ค๋ฅผ ์ค๊ณํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋ฏธ๋์ด ๊ถํ ์ฒ๋ฆฌ, ์ฐ๊ฒฐ ์ํ ํ์ ๋ฐ ์ฌ์ฉ์์๊ฒ ํผ๋๋ฐฑ ์ ๊ณต์ด ํฌํจ๋ฉ๋๋ค.
-
์ ํ๋ฆฌ์ผ์ด์
๋ก์ง: ์ด๋ ์ค์๊ฐ ํต์ ์ ๋๋ฌ์ผ ๋ชจ๋ ๋น์ฆ๋์ค ๋ก์ง์ ํฌํจํฉ๋๋ค. ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ์ฌ์ฉ์ ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ.
- ํตํ ์ด๋ ๋ฐ ์๋ฆผ ๊ด๋ฆฌ.
- ๋ค์๊ฐ ํตํ ์กฐ์จ (์: SFU - Selective Forwarding Units ๋๋ MCU - Multipoint Control Units ์ฌ์ฉ).
- ๋ นํ ๊ธฐ๋ฅ.
- ๋ค๋ฅธ ์๋น์ค์์ ํตํฉ (์: CRM, ์ค์ผ์ค๋ง ์์คํ ).
- ๋ค์ํ ๋คํธ์ํฌ ์กฐ๊ฑด์ ๋ํ ๋์ฒด ๋ฉ์ปค๋์ฆ.
-
๋ฏธ๋์ด ๊ด๋ฆฌ:
getUserMedia
๊ฐ ๋ฏธ๋์ด์ ๋ํ ์ ๊ทผ์ ์ ๊ณตํ์ง๋ง, ๊ตฌํ์ ์ด๋ฌํ ์คํธ๋ฆผ์ด ์ด๋ป๊ฒ ํ์๋๊ณ , ์กฐ์๋๊ณ (์: ์์๊ฑฐ/์์๊ฑฐ ํด์ ), ๋ผ์ฐํ ๋๋์ง๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ๋ค์๊ฐ ํตํ์ ๊ฒฝ์ฐ, ์ด๋ ์๋ฒ ์ธก ๋ฏน์ฑ์ด๋ ์ง๋ฅํ ๋ผ์ฐํ ์ ํฌํจํ ์ ์์ต๋๋ค. - ์ค๋ฅ ์ฒ๋ฆฌ ๋ฐ ๋ณต์๋ ฅ: ๊ฒฌ๊ณ ํ ๊ตฌํ์ ๋คํธ์ํฌ ์ค๋จ, ์ฅ์น ๊ณ ์ฅ, ๊ถํ ๋ฌธ์ ๋ฐ ๊ธฐํ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ๋ฅผ ์์ธกํ๊ณ ์ฐ์ํ๊ฒ ์ฒ๋ฆฌํ์ฌ ์ฌ์ฉ์์ ํ๊ฒฝ์ด๋ ์์น์ ๊ด๊ณ์์ด ์์ ์ ์ธ ๊ฒฝํ์ ๋ณด์ฅํฉ๋๋ค.
- ํ์ฅ์ฑ ๋ฐ ์ฑ๋ฅ ์ต์ ํ: ์ฆ๊ฐํ๋ ๋์ ์ฌ์ฉ์ ์๋ฅผ ์ฒ๋ฆฌํ๊ณ ์ ์ง์ฐ ๋ฐ ๊ณ ํ์ง ๋ฏธ๋์ด๋ฅผ ๋ณด์ฅํ๋๋ก ์ ์ฒด ์์คํ ์ ์ค๊ณํฉ๋๋ค. ํนํ ๋คํธ์ํฌ ์กฐ๊ฑด์ด ํฌ๊ฒ ๋ค๋ฅผ ์ ์๋ ๊ธ๋ก๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์ํฉ๋๋ค.
- ๋ชจ๋ํฐ๋ง ๋ฐ ๋ถ์: ํตํ ํ์ง, ์ฐ๊ฒฐ ์ฑ๊ณต๋ฅ , ์๋ฒ ๋ถํ ๋ฐ ์ฌ์ฉ์ ์ฐธ์ฌ๋๋ฅผ ์ถ์ ํ๋ ๋๊ตฌ๋ก, ์๋น์ค ์ ์ง ๋ฐ ๊ฐ์ ์ ํ์์ ์ ๋๋ค.
๋ฐ๋ผ์ WebRTC ๊ตฌํ์ RTCPeerConnection
์ด ์ค์ ๋ฏธ๋์ด ๋ฐ ๋ฐ์ดํฐ ๊ตํ์ ์ฉ์ดํ๊ฒ ํ๋ ๊ฐ๋ ฅํ ๊ธฐ๋ณธ ๊ตฌ์ฑ ์์์ด์ง๋ง, ๋ค๋ฅธ ์๋ง์ ์๋น์ค์ ์ ํ๋ฆฌ์ผ์ด์
๋ก์ง์ ์ํด ์ง์๋๊ณ ์กฐ์จ๋๋ ์ ์ฒด์ ์ธ ์์คํ
์
๋๋ค.
์ฃผ์ ์ฐจ์ด์ ๊ณผ ์ํธ ์์กด์ฑ
๊ด๊ณ๋ฅผ ์์ฝํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
-
๋ฒ์:
RTCPeerConnection
์ ํผ์ด ํฌ ํผ์ด ์ฐ๊ฒฐ์ ๋ด๋นํ๋ WebRTC ํ์ค ๋ด์ ํน์ API์ ๋๋ค. WebRTC ๊ตฌํ์RTCPeerConnection
(๋ค๋ฅธ WebRTC API ๋ฐ ์ฌ์ฉ์ ์ง์ ์๋ฒ ์ธก ๋ก์ง๊ณผ ํจ๊ป)์ ํ์ฉํ์ฌ ์์ ํ ์ค์๊ฐ ํต์ ๊ฒฝํ์ ์ ๊ณตํ๋ ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ๋๋ ์๋น์ค์ ๋๋ค. -
์ฑ
์:
RTCPeerConnection
์ ์ง์ ์ฐ๊ฒฐ์ ์ค์ ํ๊ณ ๋ณดํธํ๋ ์ ์์ค์ ๋ณต์กํ ์ธ๋ถ ์ฌํญ์ ์ฒ๋ฆฌํฉ๋๋ค. WebRTC ๊ตฌํ์ ์ ์ฒด ์ฌ์ฉ์ ํ๋ฆ, ์ธ์ ๊ด๋ฆฌ, ์๊ทธ๋๋ง, ๋คํธ์ํฌ ํต๊ณผ ์ธํ๋ผ ๋ฐ ๊ธฐ๋ณธ ํผ์ด ํฌ ํผ์ด ๋ฐ์ดํฐ ๊ตํ์ ๋์ด์๋ ์ถ๊ฐ ๊ธฐ๋ฅ์ ์ฑ ์์ง๋๋ค. -
์์กด์ฑ:
RTCPeerConnection
์ ํ์ฉํ์ง ์๊ณ ๋ ๊ธฐ๋ฅ์ ์ธ WebRTC ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ์ง ์ ์์ต๋๋ค. ๋ฐ๋๋ก,RTCPeerConnection
์ ์๊ทธ๋๋ง์ ์ ๊ณตํ๊ณ , ํผ์ด๋ฅผ ๋ฐ๊ฒฌํ๊ณ , ์ฌ์ฉ์ ๊ฒฝํ์ ๊ด๋ฆฌํ๋ ์ฃผ๋ณ ๊ตฌํ ์์ด๋ ๊ฑฐ์ ์๋ํ์ง ์์ต๋๋ค. -
๊ฐ๋ฐ์ ์ด์ :
RTCPeerConnection
์ผ๋ก ์์ ํ ๋ ๊ฐ๋ฐ์๋ ํด๋น API ๋ฉ์๋(setLocalDescription
,setRemoteDescription
,addIceCandidate
,addTrack
๋ฑ)์ ์ด๋ฒคํธ ํธ๋ค๋ฌ์ ์ง์คํฉ๋๋ค. WebRTC ๊ตฌํ์ ๊ตฌ์ถํ ๋ ์ด์ ์ ๋ฐฑ์๋ ์๋ฒ ๊ฐ๋ฐ, UI/UX ๋์์ธ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ํตํฉ, ํ์ฅ์ฑ ์ ๋ต ๋ฐ ์ ์ฒด ์์คํ ์ํคํ ์ฒ๋ฅผ ํฌํจํ๋๋ก ํ์ฅ๋ฉ๋๋ค.
๋ฐ๋ผ์ RTCPeerConnection
์ด ์์ง์ด๋ผ๋ฉด, WebRTC ๊ตฌํ์ ๊ฒฌ๊ณ ํ ์๊ทธ๋๋ง ์์คํ
์ผ๋ก ์ฐ๋ฃ๋ฅผ ๊ณต๊ธ๋ฐ๊ณ , STUN/TURN์ ์ํด ๋ค์ํ ๋คํธ์ํฌ ๋ฌธ์ ๋ฅผ ํต๊ณผํ๋ฉฐ, ์ ์ค๊ณ๋ ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ฌ์ฉ์์๊ฒ ์ ๊ณต๋๋ ์ ์ฒด ์ฐจ๋์ผ๋ก, ์ด ๋ชจ๋ ๊ฒ์ด ํจ๊ป ์๋ํ์ฌ ์ํํ ์ค์๊ฐ ํต์ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.
๊ฒฌ๊ณ ํ WebRTC ๊ตฌํ์ ์ํ ํต์ฌ ๊ตฌ์ฑ ์์
์ฑ๊ณต์ ์ธ WebRTC ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์ถํ๋ ค๋ฉด ์ฌ๋ฌ ํต์ฌ ๊ตฌ์ฑ ์์๋ฅผ ์ ์คํ๊ฒ ๊ณ ๋ คํ๊ณ ํตํฉํด์ผ ํฉ๋๋ค. RTCPeerConnection
์ด ์ง์ ์ ์ธ ๋ฏธ๋์ด ํ๋ฆ์ ์ฒ๋ฆฌํ๋ ๋์, ์ ์ฒด ๊ตฌํ์ ์ ๋ขฐ์ฑ, ์ฑ๋ฅ ๋ฐ ๊ธ๋ก๋ฒ ๋๋ฌ ๋ฒ์๋ฅผ ๋ณด์ฅํ๊ธฐ ์ํด ์ด๋ฌํ ์์๋ค์ ์ธ์ฌํ๊ฒ ์กฐ์จํด์ผ ํฉ๋๋ค.
์๊ทธ๋๋ง: ์จ์ ์์
์ด๋ฏธ ์ค๋ช ํ๋ฏ์ด, WebRTC ์์ฒด๋ ์๊ทธ๋๋ง ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํ์ง ์์ต๋๋ค. ์ฆ, ์ง์ ๊ตฌ์ถํ๊ฑฐ๋ ์ ํํด์ผ ํฉ๋๋ค. ์๊ทธ๋๋ง ์ฑ๋์ ํผ์ด ์ฐ๊ฒฐ ์ค์ ์ ํ ๋ฐ ๋์ค์ ์ค์ํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๊ตํํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์์ ํด๋ผ์ด์ธํธ-์๋ฒ ์ฐ๊ฒฐ์ ๋๋ค. ํจ๊ณผ์ ์ธ ์๊ทธ๋๋ง ์์ด๋ ํผ์ด๋ค์ด ์๋ก๋ฅผ ์ฐพ๊ฑฐ๋, ๊ธฐ๋ฅ์ ํ์ํ๊ฑฐ๋, ์ง์ ์ ์ธ ์ฐ๊ฒฐ์ ์ค์ ํ ์ ์์ต๋๋ค.
- ์ญํ : ์ธ์ ๊ธฐ์ ํ๋กํ ์ฝ(SDP) ์คํผ์ ์ค์๋ฅผ ๊ตํํ์ฌ ๋ฏธ๋์ด ํ์, ์ฝ๋ฑ ๋ฐ ์ฐ๊ฒฐ ์ ํธ๋๋ฅผ ์์ธํ ๊ธฐ์ ํ๊ณ , ์ง์ ํผ์ด ํฌ ํผ์ด ํต์ ์ ์ํ ์ ์ฌ์ ๋คํธ์ํฌ ๊ฒฝ๋ก์ธ ICE(Interactive Connectivity Establishment) ํ๋ณด๋ฅผ ์ค๊ณํฉ๋๋ค.
-
๊ธฐ์ : ์๊ทธ๋๋ง์ ์ํ ์ผ๋ฐ์ ์ธ ์ ํ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ์น์์ผ(WebSockets): ์ ์ด์ค, ์ ์ง์ฐ ํต์ ์ ์ ๊ณตํ์ฌ ์ค์๊ฐ ๋ฉ์์ง ๊ตํ์ ์ด์์ ์ ๋๋ค. ๋๋ฆฌ ์ง์๋๋ฉฐ ๋งค์ฐ ํจ์จ์ ์ ๋๋ค.
- MQTT: IoT์์ ์์ฃผ ์ฌ์ฉ๋๋ ๊ฒฝ๋ ๋ฉ์์ง ํ๋กํ ์ฝ์ด์ง๋ง, ํนํ ๋ฆฌ์์ค๊ฐ ์ ํ๋ ํ๊ฒฝ์์ ์๊ทธ๋๋ง์ ์ ํฉํฉ๋๋ค.
- HTTP ๋กฑํด๋ง(HTTP Long-polling): ์น์์ผ๋ณด๋ค ๋ ํจ์จ์ ์ด์ง๋ง ์ผ๋ถ ๊ธฐ์กด ์ํคํ ์ฒ์์๋ ๊ตฌํ์ด ๋ ๊ฐ๋จํ ์ ํต์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ๋๋ค.
- ์ฌ์ฉ์ ์ง์ ์๋ฒ ๊ตฌํ: Node.js, Python/Django, Ruby on Rails ๋๋ Go์ ๊ฐ์ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฉ ์๊ทธ๋๋ง ์๋น์ค๋ฅผ ๊ตฌ์ถํฉ๋๋ค.
-
๊ธ๋ก๋ฒ ๊ท๋ชจ๋ฅผ ์ํ ์ค๊ณ ๊ณ ๋ ค ์ฌํญ:
- ํ์ฅ์ฑ: ์๊ทธ๋๋ง ์๋ฒ๋ ๋ง์ ์์ ๋์ ์ฐ๊ฒฐ๊ณผ ๋ฉ์์ง ์ฒ๋ฆฌ๋์ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค. ๋ถ์ฐ ์ํคํ ์ฒ์ ๋ฉ์์ง ํ๊ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
- ์ ๋ขฐ์ฑ: ์ฐ๊ฒฐ ์คํจ๋ฅผ ํผํ๊ธฐ ์ํด ๋ฉ์์ง๋ ์ ์ํ๊ณ ์ ํํ๊ฒ ์ ๋ฌ๋์ด์ผ ํฉ๋๋ค. ์ค๋ฅ ์ฒ๋ฆฌ ๋ฐ ์ฌ์๋ ๋ฉ์ปค๋์ฆ์ด ํ์์ ์ ๋๋ค.
- ๋ณด์: ์๊ทธ๋๋ง ๋ฐ์ดํฐ๋ ์ง์ ์ ์ธ ๋ฏธ๋์ด๋ ์๋์ง๋ง ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ํฌํจํ ์ ์์ต๋๋ค. ๋ณด์ ํต์ (์น์์ผ์ ๊ฒฝ์ฐ WSS, HTTP์ ๊ฒฝ์ฐ HTTPS)๊ณผ ์ฌ์ฉ์์ ๋ํ ์ธ์ฆ/๊ถํ ๋ถ์ฌ๊ฐ ๊ฐ์ฅ ์ค์ํฉ๋๋ค.
- ์ง๋ฆฌ์ ๋ถ์ฐ: ๊ธ๋ก๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ ์ฌ๋ฌ ์ง์ญ์ ์๊ทธ๋๋ง ์๋ฒ๋ฅผ ๋ฐฐํฌํ๋ฉด ์ ์ธ๊ณ ์ฌ์ฉ์์ ๋๊ธฐ ์๊ฐ์ ์ค์ผ ์ ์์ต๋๋ค.
์ ์ค๊ณ๋ ์๊ทธ๋๋ง ๊ณ์ธต์ ์ต์ข ์ฌ์ฉ์์๊ฒ๋ ๋ณด์ด์ง ์์ง๋ง ์ํํ WebRTC ๊ฒฝํ์ ์ํด ํ์์ ์ ๋๋ค.
NAT ํต๊ณผ ๋ฐ ๋ฐฉํ๋ฒฝ ํ์นญ (STUN/TURN)
์ค์๊ฐ ํต์ ์์ ๊ฐ์ฅ ๋ณต์กํ ๊ณผ์ ์ค ํ๋๋ ๋คํธ์ํฌ ํต๊ณผ์ ๋๋ค. ๋๋ถ๋ถ์ ์ฌ์ฉ์๋ IP ์ฃผ์๋ฅผ ์์ ํ๊ณ ๋ค์ด์ค๋ ์ฐ๊ฒฐ์ ์ฐจ๋จํ๋ ๋คํธ์ํฌ ์ฃผ์ ๋ณํ๊ธฐ(NAT) ๋ฐ ๋ฐฉํ๋ฒฝ ๋ค์ ์์ต๋๋ค. WebRTC๋ ์ด๋ฌํ ์ฅ์ ๋ฌผ์ ๊ทน๋ณตํ๊ธฐ ์ํด ICE(Interactive Connectivity Establishment)๋ฅผ ํ์ฉํ๋ฉฐ, STUN/TURN ์๋ฒ๋ ICE์ ํ์์ ์ ๋๋ค.
- ๊ณผ์ : ์ฅ์น๊ฐ NAT ๋ค์ ์์ ๋, ๊ทธ ์ฌ์ค IP ์ฃผ์๋ ๊ณต์ฉ ์ธํฐ๋ท์์ ์ง์ ๋๋ฌํ ์ ์์ต๋๋ค. ๋ฐฉํ๋ฒฝ์ ์ฐ๊ฒฐ์ ๋์ฑ ์ ํํ์ฌ ์ง์ ์ ์ธ ํผ์ด ํฌ ํผ์ด ํต์ ์ ์ด๋ ต๊ฑฐ๋ ๋ถ๊ฐ๋ฅํ๊ฒ ๋ง๋ญ๋๋ค.
-
STUN (Session Traversal Utilities for NAT) ์๋ฒ:
STUN ์๋ฒ๋ ํด๋ผ์ด์ธํธ๊ฐ ์์ ์ ๊ณต์ฉ IP ์ฃผ์์ ์์ ์ด ์ํ NAT ์ ํ์ ๋ฐ๊ฒฌํ๋๋ก ํ์ฉํฉ๋๋ค. ์ด ์ ๋ณด๋ ์๊ทธ๋๋ง์ ํตํด ๋ค๋ฅธ ํผ์ด์๊ฒ ์ ์ก๋ฉ๋๋ค. ๋ ํผ์ด ๋ชจ๋ ๊ณต์ฉ ์ฃผ์๋ฅผ ๊ฒฐ์ ํ ์ ์๋ค๋ฉด ์ข ์ข ์ง์ ์ ์ธ UDP ์ฐ๊ฒฐ(UDP ํ ํ์นญ)์ ์ค์ ํ ์ ์์ต๋๋ค.
์๊ตฌ ์ฌํญ: ๋๋ถ๋ถ์ ๊ฐ์ ๋ฐ ์ฌ๋ฌด์ค ๋คํธ์ํฌ์์๋ STUN๋ง์ผ๋ก๋ ์ง์ ์ ์ธ ํผ์ด ํฌ ํผ์ด ์ฐ๊ฒฐ์ ์ถฉ๋ถํฉ๋๋ค.
-
TURN (Traversal Using Relays around NAT) ์๋ฒ:
STUN์ด ์คํจํ ๊ฒฝ์ฐ(์: ๋์นญ NAT ๋๋ UDP ํ ํ์นญ์ ๋ฐฉ์งํ๋ ์ ํ์ ์ธ ๊ธฐ์ ๋ฐฉํ๋ฒฝ), TURN ์๋ฒ๊ฐ ์ค๊ณ๊ธฐ ์ญํ ์ ํฉ๋๋ค. ํผ์ด๋ค์ ์์ ์ ๋ฏธ๋์ด์ ๋ฐ์ดํฐ ์คํธ๋ฆผ์ TURN ์๋ฒ๋ก ๋ณด๋ด๊ณ , ์๋ฒ๋ ์ด๋ฅผ ๋ค๋ฅธ ํผ์ด์๊ฒ ์ ๋ฌํฉ๋๋ค. ์ด๋ ๊ฑฐ์ ๋ชจ๋ ์๋๋ฆฌ์ค์์ ์ฐ๊ฒฐ์ฑ์ ๋ณด์ฅํ์ง๋ง, ์ง์ฐ ์๊ฐ, ๋์ญํญ ์ฌ์ฉ๋ ๋ฐ ์๋ฒ ๋ฆฌ์์ค ๋น์ฉ์ด ์ฆ๊ฐํฉ๋๋ค.
์๊ตฌ ์ฌํญ: TURN ์๋ฒ๋ ๊ฒฌ๊ณ ํ ๊ธ๋ก๋ฒ WebRTC ๊ตฌํ์ ํ์์ ์ด๋ฉฐ, ์ด๋ ค์ด ๋คํธ์ํฌ ์กฐ๊ฑด์ ๋ํ ๋์ฒด ์๋จ์ ์ ๊ณตํ์ฌ ๋ค์ํ ๊ธฐ์ , ๊ต์ก ๋๋ ๊ณ ๋๋ก ์ ํ๋ ๋คํธ์ํฌ ํ๊ฒฝ์ ์ฌ์ฉ์๊ฐ ์ฐ๊ฒฐํ ์ ์๋๋ก ๋ณด์ฅํฉ๋๋ค.
- ๊ธ๋ก๋ฒ ์ฐ๊ฒฐ์ฑ์ ์ค์์ฑ: ๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ฅผ ๋์์ผ๋ก ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ STUN๊ณผ TURN์ ์กฐํฉ์ ์ ํ ์ฌํญ์ด ์๋๋ผ ํ์์ ๋๋ค. ๋คํธ์ํฌ ํ ํด๋ก์ง, ๋ฐฉํ๋ฒฝ ๊ท์น ๋ฐ ISP ๊ตฌ์ฑ์ ๊ตญ๊ฐ ๋ฐ ์กฐ์ง์ ๋ฐ๋ผ ํฌ๊ฒ ๋ค๋ฆ ๋๋ค. ์ ์ธ๊ณ์ ๋ถ์ฐ๋ STUN/TURN ์๋ฒ ๋คํธ์ํฌ๋ ๋๊ธฐ ์๊ฐ์ ์ต์ํํ๊ณ ๋ชจ๋ ๊ณณ์ ์ฌ์ฉ์์๊ฒ ์์ ์ ์ธ ์ฐ๊ฒฐ์ ๋ณด์ฅํฉ๋๋ค.
๋ฏธ๋์ด ์ฒ๋ฆฌ ๋ฐ ๋ฐ์ดํฐ ์ฑ๋
์ฐ๊ฒฐ ์ค์ ์ธ์๋ ์ค์ ๋ฏธ๋์ด ๋ฐ ๋ฐ์ดํฐ ์คํธ๋ฆผ์ ๊ด๋ฆฌํ๋ ๊ฒ์ด ๊ตฌํ์ ํต์ฌ ๋ถ๋ถ์ ๋๋ค.
-
getUserMedia
: ์ด API๋ ์ฌ์ฉ์์ ์นด๋ฉ๋ผ์ ๋ง์ดํฌ๋ก ๊ฐ๋ ๊ด๋ฌธ์ ๋๋ค. ์ ์ ํ ๊ตฌํ์๋ ๊ถํ ์์ฒญ, ์ฌ์ฉ์ ๋์ ์ฒ๋ฆฌ, ์ ์ ํ ์ฅ์น ์ ํ ๋ฐ ๋ฏธ๋์ด ํธ๋ ๊ด๋ฆฌ(์: ์์๊ฑฐ/์์๊ฑฐ ํด์ , ์ผ์ ์ค์ง/์ฌ๊ฐ)๊ฐ ํฌํจ๋ฉ๋๋ค. -
๋ฏธ๋์ด ์ฝ๋ฑ ๋ฐ ๋์ญํญ ๊ด๋ฆฌ: WebRTC๋ ๋ค์ํ ์ค๋์ค(์: Opus, G.711) ๋ฐ ๋น๋์ค(์: VP8, VP9, H.264, AV1) ์ฝ๋ฑ์ ์ง์ํฉ๋๋ค. ๊ตฌํ์ ํตํ ํ์ง์ ์ ์งํ๊ธฐ ์ํด ํน์ ์ฝ๋ฑ์ ์ฐ์ ์ํ๊ฑฐ๋ ๋ค์ํ ๋์ญํญ ์กฐ๊ฑด์ ์ ์ํด์ผ ํ ์ ์์ต๋๋ค.
RTCPeerConnection
์ ์ด ์ค ๋ง์ ๋ถ๋ถ์ ์๋์ผ๋ก ์ฒ๋ฆฌํ์ง๋ง, ์ ํ๋ฆฌ์ผ์ด์ ์์ค์ ํต์ฐฐ๋ ฅ์ผ๋ก ๊ฒฝํ์ ์ต์ ํํ ์ ์์ต๋๋ค. -
RTCDataChannel
: ์ค๋์ค/๋น๋์ค ์ด์์ ๊ฒ์ด ํ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ,RTCDataChannel
์ ์์์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ์ ์๋ ๊ฐ๋ ฅํ๊ณ ์ ์ฐํ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ ์ฑํ ๋ฉ์์ง, ํ์ผ ๊ณต์ , ์ค์๊ฐ ๊ฒ์ ์ํ ๋๊ธฐํ, ํ๋ฉด ๊ณต์ ๋ฐ์ดํฐ ๋๋ ์๊ฒฉ ์ ์ด ๋ช ๋ น์ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ ์ ์ก ์๊ตฌ์ ๋ฐ๋ผ ์ ๋ขฐํ ์ ์๋(TCP์ ์ ์ฌ) ๋ชจ๋์ ์ ๋ขฐํ ์ ์๋(UDP์ ์ ์ฌ) ๋ชจ๋ ์ค์์ ์ ํํ ์ ์์ต๋๋ค.
๋ณด์ ๋ฐ ๊ฐ์ธ ์ ๋ณด ๋ณดํธ
์ค์๊ฐ ํต์ ์ ๋ฏผ๊ฐํ ํน์ฑ์ ๊ณ ๋ คํ ๋, ๋ณด์ ๋ฐ ๊ฐ์ธ ์ ๋ณด ๋ณดํธ๋ ๊ฐ์ฅ ์ค์ํ๋ฉฐ WebRTC ๊ตฌํ์ ๋ชจ๋ ๊ณ์ธต์ ๋ด์ฅ๋์ด์ผ ํฉ๋๋ค.
-
์๋ ํฌ ์๋ ์ํธํ (๋ด์ฅ): WebRTC์ ๊ฐ์ฅ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ ์ค ํ๋๋ ํ์ ์ํธํ์
๋๋ค.
RTCPeerConnection
์ ํตํด ๊ตํ๋๋ ๋ชจ๋ ๋ฏธ๋์ด ๋ฐ ๋ฐ์ดํฐ๋ SRTP(Secure Real-time Transport Protocol) ๋ฐ DTLS(Datagram Transport Layer Security)๋ฅผ ์ฌ์ฉํ์ฌ ์ํธํ๋ฉ๋๋ค. ์ด๋ ๋ํ ๋ด์ฉ์ด ๋์ฒญ์ผ๋ก๋ถํฐ ๋ณดํธ๋๋ ๊ฐ๋ ฅํ ์์ค์ ๋ณด์์ ์ ๊ณตํฉ๋๋ค. -
๋ฏธ๋์ด ์ ๊ทผ์ ๋ํ ์ฌ์ฉ์ ๋์:
getUserMedia
API๋ ์นด๋ฉ๋ผ๋ ๋ง์ดํฌ์ ์ ๊ทผํ๊ธฐ ์ ์ ๋ช ์์ ์ธ ์ฌ์ฉ์ ํ๊ฐ๋ฅผ ์๊ตฌํฉ๋๋ค. ๊ตฌํ์ ์ด๋ฅผ ์กด์คํ๊ณ ๋ฏธ๋์ด ์ ๊ทผ์ด ํ์ํ ์ด์ ๋ฅผ ๋ช ํํ๊ฒ ์ ๋ฌํด์ผ ํฉ๋๋ค. - ์๊ทธ๋๋ง ์๋ฒ ๋ณด์: WebRTC ํ์ค์ ์ผ๋ถ๋ ์๋์ง๋ง, ์๊ทธ๋๋ง ์๋ฒ๋ ๋ณด์๋์ด์ผ ํฉ๋๋ค. ์ด๋ ํต์ ์ WSS(WebSocket Secure) ๋๋ HTTPS๋ฅผ ์ฌ์ฉํ๊ณ , ๊ฒฌ๊ณ ํ ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ ๋ฉ์ปค๋์ฆ์ ๊ตฌํํ๋ฉฐ, ์ผ๋ฐ์ ์ธ ์น ์ทจ์ฝ์ ์ผ๋ก๋ถํฐ ๋ณดํธํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค.
- ์ต๋ช ์ฑ ๋ฐ ๋ฐ์ดํฐ ๋ณด์กด: ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ๋ผ ์ฌ์ฉ์ ์ต๋ช ์ฑ๊ณผ ๋ฐ์ดํฐ ๋ฐ ๋ฉํ๋ฐ์ดํฐ ์ ์ฅ ๋ฐฉ์(๋๋ ์ฌ๋ถ)์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ๊ธ๋ก๋ฒ ๊ท์ ์ค์(์: GDPR, CCPA)๋ฅผ ์ํด ๋ฐ์ดํฐ ํ๋ฆ ๋ฐ ์ ์ฅ ์ ์ฑ ์ ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
์ด๋ฌํ ๊ฐ ๊ตฌ์ฑ ์์๋ฅผ ์ธ์ฌํ๊ฒ ์ฒ๋ฆฌํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ ๊ธฐ๋ฅ์ ์ผ ๋ฟ๋ง ์๋๋ผ ์ ์ธ๊ณ ์ฌ์ฉ์ ๊ธฐ๋ฐ์ ์ํด ๊ฒฌ๊ณ ํ๊ณ ์์ ํ๋ฉฐ ์ฑ๋ฅ์ด ๋ฐ์ด๋ WebRTC ๊ตฌํ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
์ค์ ์ ์ฉ ์ฌ๋ก ๋ฐ ๊ธ๋ก๋ฒ ์ํฅ
RTCPeerConnection
์ ์ง์ ์ ์ธ ์ฐ๊ฒฐ์ฑ์ ํ์
์ด WebRTC์ ๋ค์ฌ๋ค๋ฅํจ์ ๋ค์ํ ๋ถ๋ฌธ์ ๊ฑธ์ณ ์๋ง์ ๋ณํ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ธธ์ ์ด์์ผ๋ฉฐ, ์ ์ธ๊ณ์ ์ผ๋ก ์ถ๊ณผ ๋น์ฆ๋์ค์ ์ํฅ์ ๋ฏธ์น๊ณ ์์ต๋๋ค. ๋ค์์ ๋ช ๊ฐ์ง ๋ํ์ ์ธ ์์
๋๋ค:
ํตํฉ ์ปค๋ฎค๋์ผ์ด์ ํ๋ซํผ
Google Meet, Microsoft Teams์ ๊ฐ์ ํ๋ซํผ ๋ฐ ์๋ง์ ์๊ท๋ชจ ์ ๋ฌธ ์๋ฃจ์ ๋ค์ ํต์ฌ์ ์ธ ์ค๋์ค/๋น๋์ค ํ์, ํ๋ฉด ๊ณต์ ๋ฐ ์ฑํ ๊ธฐ๋ฅ์ ์ํด WebRTC๋ฅผ ํ์ฉํฉ๋๋ค. ์ด๋ฌํ ๋๊ตฌ๋ค์ ๊ธ๋ก๋ฒ ๊ธฐ์ , ์๊ฒฉ ํ ๋ฐ ์ด๋ฌธํ ํ์ ์ ํ์์ ์ด ๋์์ผ๋ฉฐ, ์ง๋ฆฌ์ ์์น์ ๊ด๊ณ์์ด ์ํํ ์ํธ ์์ฉ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. ์ฌ๋ฌ ๋๋ฅ์ ๊ฑธ์ณ ๋ถ์ฐ๋ ์ธ๋ ฅ์ ๋ณด์ ํ ํ์ฌ๋ค์ ์ผ์ผ ์คํ ๋์ , ์ ๋ต ๊ธฐํ ํ์ ๋ฐ ํด๋ผ์ด์ธํธ ํ๋ ์ ํ ์ด์ ์ ์ฉ์ดํ๊ฒ ํ๊ธฐ ์ํด WebRTC์ ์์กดํ์ฌ ์ฌ์ค์ ์ธ๊ณ๋ฅผ ํ๋์ ๊ฐ์ ํ์์ค๋ก ์ถ์์ํต๋๋ค.
์๊ฒฉ ์๋ฃ ๋ฐ ์๊ฒฉ ๊ฑด๊ฐ ๊ด๋ฆฌ
WebRTC๋ ํนํ ์๋ฃ ์ ๋ฌธ๊ฐ์ ๋ํ ์ ๊ทผ์ด ์ ํ๋ ์ง์ญ์์ ์๋ฃ ์๋น์ค ์ ๊ณต์ ํ์ ํ๊ณ ์์ต๋๋ค. ์๊ฒฉ ์๋ฃ ํ๋ซํผ์ ํ์์ ์์ฌ ๊ฐ์ ๊ฐ์ ์๋ด, ์๊ฒฉ ์ง๋จ, ์ฌ์ง์ด ์์ฒด ์ ํธ์ ์ค์๊ฐ ๋ชจ๋ํฐ๋ง์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. ์ด๋ ๊ฐ๋ฐ ๋์๊ตญ์ ๋์ด ์ง์ญ ํ์๋ค์ ๋์ ์ ๋ฌธ๊ฐ์ ์ฐ๊ฒฐํ๊ฑฐ๋, ๊ฐ์ธ์ด ์์ ํ ๋ค๋ฅธ ๋๋ผ์ ์๋ ์ ๋ฌธ๊ฐ๋ก๋ถํฐ ์น๋ฃ๋ฅผ ๋ฐ์ ์ ์๋๋ก ํ์ฌ ์ค์ํ ์๋ฃ ์๋น์ค๋ฅผ ์ํด ๊ด๋ํ ๊ฑฐ๋ฆฌ๋ฅผ ์๋ ๋ฐ ํนํ ์ํฅ๋ ฅ์ด ์ปธ์ต๋๋ค.
์จ๋ผ์ธ ๊ต์ก ๋ฐ E-๋ฌ๋
๊ธ๋ก๋ฒ ๊ต์ก ํ๊ฒฝ์ WebRTC์ ์ํด ๊ทผ๋ณธ์ ์ผ๋ก ์ฌํธ๋์์ต๋๋ค. ๊ฐ์ ๊ต์ค, ๋ํํ ํํฐ๋ง ์ธ์ ๋ฐ ์จ๋ผ์ธ ๊ฐ์ข ์ ๊ณต ํ๋ซํผ์ ์ค์๊ฐ ๊ฐ์, ๊ทธ๋ฃน ํ ๋ก ๋ฐ ์ผ๋์ผ ํ์-๊ต์ฌ ์ํธ ์์ฉ์ ์ํด WebRTC๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ๊ธฐ์ ์ ๋ํ์ด ๊ตญ๊ฒฝ์ ๋์ด ํ์๋ค์๊ฒ ๊ฐ์ข๋ฅผ ์ ๊ณตํ๊ณ , ์ธ์ด ๊ตํ ํ๋ก๊ทธ๋จ์ ์ด์งํ๋ฉฐ, ์๊ธฐ์น ์์ ๊ธ๋ก๋ฒ ์ด๋ฒคํธ ๋์ ๊ต์ก์ ์ฐ์์ฑ์ ๋ณด์ฅํ์ฌ ์ ์ธ๊ณ ์๋ฐฑ๋ง ๋ช ์๊ฒ ์์ง์ ํ์ต ๊ธฐํ๋ฅผ ์ ๊ณตํฉ๋๋ค.
๊ฒ์ ๋ฐ ์ธํฐ๋ํฐ๋ธ ์ํฐํ ์ธ๋จผํธ
์จ๋ผ์ธ ๊ฒ์์์๋ ์ ์ง์ฐ ํต์ ์ด ๊ฐ์ฅ ์ค์ํฉ๋๋ค. WebRTC์ RTCDataChannel
์ ๋ฉํฐํ๋ ์ด์ด ๊ฒ์์์ ์ง์ ์ ์ธ ํผ์ด ํฌ ํผ์ด ๋ฐ์ดํฐ ๊ตํ์ ์ ์ ๋ ๋ง์ด ์ฌ์ฉ๋์ด ์๋ฒ ๋ถํ๋ฅผ ์ค์ด๊ณ ์ง์ฐ์ ์ต์ํํฉ๋๋ค. ๋ํ, ์ข
์ข
WebRTC๋ก ๊ตฌ๋๋๋ ๊ฒ์ ๋ด ์์ฑ ์ฑํ
๊ธฐ๋ฅ์ ๋ค์ํ ์ธ์ด์ ๋ฐฐ๊ฒฝ์ ๊ฐ์ง ํ๋ ์ด์ด๋ค์ด ์ค์๊ฐ์ผ๋ก ํ๋ ฅํ๊ณ ์ ๋ต์ ์ธ์ธ ์ ์๊ฒ ํ์ฌ ๊ฒ์์ ํ๋ ฅ์ ์ด๊ณ ๊ฒฝ์์ ์ธ ์ธก๋ฉด์ ํฅ์์ํต๋๋ค.
๊ณ ๊ฐ ์ง์ ๋ฐ ์ฝ์ผํฐ
๋ง์ ํ๋ ๊ณ ๊ฐ ์ง์ ์๋ฃจ์ ์ WebRTC๋ฅผ ํตํฉํ์ฌ ๊ณ ๊ฐ์ด ๋ฒํธ๋ฅผ ๋๋ฅด๊ฑฐ๋ ๋ณ๋์ ์ํํธ์จ์ด๋ฅผ ๋ค์ด๋ก๋ํ์ง ์๊ณ ๋ ์น์ฌ์ดํธ๋ ๋ชจ๋ฐ์ผ ์ฑ์์ ์ง์ ์์ฑ ๋๋ ์์ ํตํ๋ฅผ ์์ํ ์ ์๋๋ก ํฉ๋๋ค. ์ด๋ ์๋ด์์ด ๊ณ ๊ฐ์ด ๋ณด๋ ๊ฒ์ ๋ณผ ์ ์๋ ์๊ฐ์ ์ง์(์: ์ฅ์น์ ๊ธฐ์ ์ ๋ฌธ์ ํด๊ฒฐ)์ ํฌํจํ์ฌ ์ฆ๊ฐ์ ์ด๊ณ ๊ฐ์ธํ๋ ์ง์์ ์ ๊ณตํจ์ผ๋ก์จ ๊ณ ๊ฐ ๊ฒฝํ์ ํฅ์์ํต๋๋ค. ์ด๋ ๋ค์ํ ์๊ฐ๋์ ์ง์ญ์ ๊ณ ๊ฐ์๊ฒ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๊ตญ์ ๋น์ฆ๋์ค์ ๋งค์ฐ ์ ์ฉํฉ๋๋ค.
IoT ๋ฐ ์ฅ์น ์ ์ด
์ธ๊ฐ ๋ ์ธ๊ฐ ํต์ ์ ๋์ด, WebRTC๋ ์ฌ๋ฌผ ์ธํฐ๋ท(IoT) ๋ด์์ ์ฅ์น ๋ ์ฅ์น ๋ฐ ์ธ๊ฐ ๋ ์ฅ์น ์ํธ ์์ฉ์์ ํ์ ์์ฅ์ ์ฐพ๊ณ ์์ต๋๋ค. ๋ณด์ ์นด๋ฉ๋ผ, ๋๋ก ์ ์ด ๋๋ ์ฐ์ ์ฅ๋น์ ์ค์๊ฐ ์๊ฒฉ ๋ชจ๋ํฐ๋ง์ ๊ฐ๋ฅํ๊ฒ ํ์ฌ ์ด์์๊ฐ ์ ์ธ๊ณ ์ด๋์์๋ ์น ๋ธ๋ผ์ฐ์ ์์ ์ค์๊ฐ ํผ๋๋ฅผ ๋ณด๊ณ ๋ช ๋ น์ ๋ณด๋ผ ์ ์๊ฒ ํฉ๋๋ค. ์ด๋ ์๊ฒฉ ํ๊ฒฝ์์์ ์ด์ ํจ์จ์ฑ๊ณผ ์์ ์ฑ์ ํฅ์์ํต๋๋ค.
์ด๋ฌํ ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ๋ค์ ์ง์ ์ ์ด๊ณ ์์ ํ๋ฉฐ ํจ์จ์ ์ธ ์ค์๊ฐ ์ํธ ์์ฉ์ ์ด์งํ๋ WebRTC์ ๊ฐ๋ ฅํ ๋ฅ๋ ฅ์ ๊ฐ์กฐํ๋ฉฐ, ๊ธ๋ก๋ฒ ์ปค๋ฎค๋ํฐ ์ ๋ฐ์ ๊ฑธ์ณ ํ์ ์ ์ฃผ๋ํ๊ณ ๋ ํฐ ์ฐ๊ฒฐ์ฑ์ ์กฐ์ฑํฉ๋๋ค.
WebRTC ๊ตฌํ์ ๊ณผ์ ์ ๋ชจ๋ฒ ์ฌ๋ก
WebRTC๋ ๋ง๊ฐํ ํ๊ณผ ์ ์ฐ์ฑ์ ์ ๊ณตํ์ง๋ง, ํนํ ๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ฅผ ๋์์ผ๋ก ํ๋ ํ๋ก๋์ ์์ค์ WebRTC ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋ฐ์๋ ๊ณ ์ ํ ๊ณผ์ ๊ฐ ๋ฐ๋ฆ ๋๋ค. ์ด๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํด๊ฒฐํ๋ ค๋ฉด ๊ธฐ๋ณธ ๊ธฐ์ ์ ๋ํ ๊น์ ์ดํด์ ๋ชจ๋ฒ ์ฌ๋ก ์ค์๊ฐ ํ์ํฉ๋๋ค.
์ผ๋ฐ์ ์ธ ๊ณผ์
- ๋คํธ์ํฌ ๊ฐ๋ณ์ฑ: ์ฌ์ฉ์๋ค์ ๊ณ ์ ๊ด์ฌ์ , ํผ์กํ ๋ชจ๋ฐ์ผ ๋ฐ์ดํฐ, ์๊ฒฉ ์ง์ญ์ ์์ฑ ์ธํฐ๋ท ๋ฑ ๋ค์ํ ๋คํธ์ํฌ ํ๊ฒฝ์์ ์ฐ๊ฒฐํฉ๋๋ค. ์ง์ฐ ์๊ฐ, ๋์ญํญ, ํจํท ์์ค์ด ๊ทน์ ์ผ๋ก ๋ฌ๋ผ์ ธ ํตํ ํ์ง๊ณผ ์ ๋ขฐ์ฑ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ์ด๋ฌํ ์กฐ๊ฑด ์ ๋ฐ์ ๊ฑธ์น ๋ณต์๋ ฅ์ ์ค๊ณํ๋ ๊ฒ์ด ์ฃผ์ ์ฅ์ ๋ฌผ์ ๋๋ค.
- NAT/๋ฐฉํ๋ฒฝ ๋ณต์ก์ฑ: ์์ ๋ ผ์ํ๋ฏ์ด, ๋ค์ํ ์ ํ์ NAT์ ๊ธฐ์ ๋ฐฉํ๋ฒฝ์ ํต๊ณผํ๋ ๊ฒ์ ์ฌ์ ํ ์ค์ํ ๊ณผ์ ์ ๋๋ค. STUN๊ณผ TURN์ด ํด๊ฒฐ์ฑ ์ด์ง๋ง, ๊ธ๋ก๋ฒ ์ธํ๋ผ ์ ๋ฐ์ ๊ฑธ์ณ ์ด๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ตฌ์ฑํ๊ณ ๊ด๋ฆฌํ๋ ค๋ฉด ์ ๋ฌธ ์ง์๊ณผ ๋ฆฌ์์ค๊ฐ ํ์ํฉ๋๋ค.
- ๋ธ๋ผ์ฐ์ ๋ฐ ์ฅ์น ํธํ์ฑ: WebRTC๋ ๋๋ฆฌ ์ง์๋์ง๋ง, ๋ธ๋ผ์ฐ์ ๊ตฌํ, ๊ธฐ๋ณธ ์ด์ ์ฒด์ ๋ฐ ํ๋์จ์ด ๊ธฐ๋ฅ(์: ์น์บ ๋๋ผ์ด๋ฒ, ์ค๋์ค ์ฒ๋ฆฌ)์ ๋ฏธ๋ฌํ ์ฐจ์ด๋ก ์ธํด ์๊ธฐ์น ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ๋ชจ๋ฐ์ผ ๋ธ๋ผ์ฐ์ ์ ํน์ Android/iOS ๋ฒ์ ์ ๋ณต์ก์ฑ์ ๋์ฑ ๊ฐ์ค์ํต๋๋ค.
- ๋ค์๊ฐ ํตํ์ ํ์ฅ์ฑ: WebRTC๋ ๋ณธ์ง์ ์ผ๋ก ํผ์ด ํฌ ํผ์ด(์ผ๋์ผ)์ ๋๋ค. ๋ค์๊ฐ ํตํ(3๋ช ์ด์)์ ๊ฒฝ์ฐ, ์ง์ ์ ์ธ ๋ฉ์ ์ฐ๊ฒฐ์ ๊ฐ ํด๋ผ์ด์ธํธ์ ๋์ญํญ๊ณผ ์ฒ๋ฆฌ ๋ฅ๋ ฅ ๋ฉด์์ ๋น ๋ฅด๊ฒ ๊ด๋ฆฌํ๊ธฐ ์ด๋ ค์์ง๋๋ค. ์ด๋ก ์ธํด SFU(Selective Forwarding Units) ๋๋ MCU(Multipoint Control Units)์ ๊ฐ์ ์๋ฒ ์ธก ์๋ฃจ์ ์ด ํ์ํ๋ฉฐ, ์ด๋ ์๋นํ ์ธํ๋ผ ๋ณต์ก์ฑ๊ณผ ๋น์ฉ์ ์ถ๊ฐํฉ๋๋ค.
- ๋๋ฒ๊น ๋ฐ ๋ชจ๋ํฐ๋ง: WebRTC๋ ๋ณต์กํ ๋คํธ์ํฌ ์ํธ ์์ฉ๊ณผ ์ค์๊ฐ ๋ฏธ๋์ด ์ฒ๋ฆฌ๋ฅผ ํฌํจํฉ๋๋ค. ์ฐ๊ฒฐ ๋ฌธ์ , ๋ฎ์ ์ค๋์ค/๋น๋์ค ํ์ง ๋๋ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ๋๋ฒ๊น ํ๋ ๊ฒ์ ์์คํ ์ ๋ถ์ฐ๋ ํน์ฑ๊ณผ ๋ธ๋ผ์ฐ์ ๊ฐ ์ผ๋ถ ์์ ์ ๋ธ๋๋ฐ์ค๋ก ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ์ด๋ ค์ธ ์ ์์ต๋๋ค.
- ์๋ฒ ์ธํ๋ผ ๊ด๋ฆฌ: ๋ธ๋ผ์ฐ์ ๋ฅผ ๋์ด, ์๊ทธ๋๋ง ์๋ฒ์ ๊ฒฌ๊ณ ํ๊ณ ์ง๋ฆฌ์ ์ผ๋ก ๋ถ์ฐ๋ STUN/TURN ์ธํ๋ผ๋ฅผ ์ ์งํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋ชจ๋ํฐ๋ง, ํ์ฅ ๋ฐ ๊ณ ๊ฐ์ฉ์ฑ ๋ณด์ฅ์ ํฌํจํ ์๋นํ ์ด์ ์ค๋ฒํค๋๊ฐ ์๋ฐ๋ฉ๋๋ค.
๊ธ๋ก๋ฒ ๋ฐฐํฌ๋ฅผ ์ํ ๋ชจ๋ฒ ์ฌ๋ก
์ด๋ฌํ ๊ณผ์ ๋ฅผ ๊ทน๋ณตํ๊ณ ์ฐ์ํ ๊ธ๋ก๋ฒ ์ค์๊ฐ ํต์ ๊ฒฝํ์ ์ ๊ณตํ๋ ค๋ฉด ๋ค์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๊ณ ๋ คํ์ญ์์ค:
-
๊ฒฌ๊ณ ํ ์๊ทธ๋๋ง ์ํคํ
์ฒ:
์๊ทธ๋๋ง ์๋ฒ๋ฅผ ๊ณ ๊ฐ์ฉ์ฑ, ์ ์ง์ฐ ๋ฐ ๋ด๊ฒฐํจ์ฑ์ ์ํด ์ค๊ณํ์ญ์์ค. ์น์์ผ๊ณผ ๊ฐ์ ํ์ฅ ๊ฐ๋ฅํ ๊ธฐ์ ์ ํ์ฉํ๊ณ , ์ฌ๋ฌ ์ง์ญ์ ๊ฑธ์ณ ์ฌ์ฉ์์ ๋๊ธฐ ์๊ฐ์ ์ค์ด๊ธฐ ์ํด ์ง๋ฆฌ์ ์ผ๋ก ๋ถ์ฐ๋ ์๊ทธ๋๋ง ์๋ฒ๋ฅผ ๊ณ ๋ คํ์ญ์์ค. ๋ช ํํ ์ํ ๊ด๋ฆฌ ๋ฐ ์ค๋ฅ ๋ณต๊ตฌ ๊ธฐ๋ฅ์ ๊ตฌํํ์ญ์์ค.
-
์ง๋ฆฌ์ ์ผ๋ก ๋ถ์ฐ๋ STUN/TURN ์๋ฒ:
๊ธ๋ก๋ฒ ๋๋ฌ ๋ฒ์๋ฅผ ์ํด ์ ์ธ๊ณ์ ์ ๋ต์ ์ผ๋ก ์์นํ ๋ฐ์ดํฐ ์ผํฐ์ STUN ๋ฐ ํนํ TURN ์๋ฒ๋ฅผ ๋ฐฐํฌํ์ญ์์ค. ์ด๋ ์ค๊ณ๋ ๋ฏธ๋์ด๋ฅผ ๊ฐ๋ฅํ ๊ฐ์ฅ ๊ฐ๊น์ด ์๋ฒ๋ฅผ ํตํด ๋ผ์ฐํ ํ์ฌ ๋๊ธฐ ์๊ฐ์ ์ต์ํํ๊ณ ๋ค์ํ ์์น์ ์ฌ์ฉ์์ ๋ํ ํตํ ํ์ง์ ํฌ๊ฒ ํฅ์์ํต๋๋ค.
-
์ ์ํ ๋นํธ๋ ์ดํธ ๋ฐ ๋คํธ์ํฌ ๋ณต์๋ ฅ:
์ ์ํ ๋นํธ๋ ์ดํธ ์คํธ๋ฆฌ๋ฐ์ ๊ตฌํํ์ญ์์ค. WebRTC๋ ๋ณธ์ง์ ์ผ๋ก ์ผ๋ถ ์ ์ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์ง๋ง, ์ ํ๋ฆฌ์ผ์ด์ ์ ๋คํธ์ํฌ ์ํ(์:
RTCRTPSender.getStats()
์ฌ์ฉ)๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ๋ฏธ๋์ด ํ์ง์ ์กฐ์ ํ๊ฑฐ๋ ๋์ญํญ์ด ์ฌ๊ฐํ๊ฒ ์ ํ๋ ๊ฒฝ์ฐ ์ค๋์ค ์ ์ฉ์ผ๋ก ์ ํํ์ฌ ์ถ๊ฐ๋ก ์ต์ ํํ ์ ์์ต๋๋ค. ์ ๋์ญํญ ์ํฉ์์๋ ๋น๋์ค๋ณด๋ค ์ค๋์ค๋ฅผ ์ฐ์ ์ํ์ญ์์ค. -
ํฌ๊ด์ ์ธ ์ค๋ฅ ์ฒ๋ฆฌ ๋ฐ ๋ก๊น
:
WebRTC ์ด๋ฒคํธ, ์ฐ๊ฒฐ ์ํ ๋ฐ ์ค๋ฅ์ ๋ํด ์์ธํ ํด๋ผ์ด์ธํธ ์ธก ๋ฐ ์๋ฒ ์ธก ๋ก๊น ์ ๊ตฌํํ์ญ์์ค. ์ด ๋ฐ์ดํฐ๋ ํนํ ๋คํธ์ํฌ ํต๊ณผ ๋๋ ๋ธ๋ผ์ฐ์ ๋ณ ํน์ด ์ฌํญ๊ณผ ๊ด๋ จ๋ ๋ฌธ์ ๋ฅผ ์ง๋จํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋ ์ฌ์ฉ์์๊ฒ ๋ช ํํ๊ณ ์คํ ๊ฐ๋ฅํ ํผ๋๋ฐฑ์ ์ ๊ณตํ์ญ์์ค.
-
๋ณด์ ๊ฐ์ฌ ๋ฐ ๊ท์ ์ค์:
์๊ทธ๋๋ง ์๋ฒ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ ๋ํด ์ ๊ธฐ์ ์ผ๋ก ๋ณด์ ์ทจ์ฝ์ ์ ๊ฐ์ฌํ์ญ์์ค. ์ฌ์ฉ์ ๋ฐ์ดํฐ, ๋ฏธ๋์ด ๋์ ๋ฐ ๋ นํ์ ๊ด๋ จ๋ ๊ธ๋ก๋ฒ ๋ฐ์ดํฐ ๊ฐ์ธ ์ ๋ณด ๋ณดํธ ๊ท์ (์: GDPR, CCPA)์ ์ค์ํ์ญ์์ค. ๊ฐ๋ ฅํ ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ญ์์ค.
-
์ฌ์ฉ์ ๊ฒฝํ(UX) ์ฐ์ ์์ ์ง์ :
์ํํ๊ณ ์ง๊ด์ ์ธ UX๋ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์นด๋ฉ๋ผ/๋ง์ดํฌ ์ ๊ทผ, ์ฐ๊ฒฐ ์ํ ๋ฐ ์ค๋ฅ ๋ฉ์์ง์ ๋ํ ๋ช ํํ ํ์๊ธฐ๋ฅผ ์ ๊ณตํ์ญ์์ค. ์ข ์ข ๋ค๋ฅธ ๋คํธ์ํฌ ์กฐ๊ฑด๊ณผ ์ฌ์ฉ์ ์ํธ ์์ฉ ํจํด์ ๊ฐ์ง ๋ชจ๋ฐ์ผ ์ฅ์น์ ์ต์ ํํ์ญ์์ค.
-
์ง์์ ์ธ ๋ชจ๋ํฐ๋ง ๋ฐ ๋ถ์:
์ผ๋ฐ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง ์ธ์๋ WebRTC ๊ด๋ จ ๋ฉํธ๋ฆญ(์: ์งํฐ, ํจํท ์์ค, ์๋ณต ์๊ฐ)์ ํ์ฉํ์ญ์์ค. ๋ค์ํ ์ฌ์ฉ์ ์ธ๊ทธ๋จผํธ์ ์ง๋ฆฌ์ ์์น์ ๊ฑธ์น ํตํ ํ์ง ๋ฐ ์ฐ๊ฒฐ ์ฑ๊ณต๋ฅ ์ ๋ํ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํ๋ ๋๊ตฌ๋ ์ง์์ ์ธ ์ต์ ํ์ ์ฌ์ ๋ฌธ์ ํด๊ฒฐ์ ํ์์ ์ ๋๋ค.
-
๊ด๋ฆฌํ ์๋น์ค ๊ณ ๋ ค:
์๊ท๋ชจ ํ์ด๋ WebRTC๋ฅผ ์ฒ์ ์ ํ๋ ํ์ ๊ฒฝ์ฐ, ๊ด๋ฆฌํ WebRTC ํ๋ซํผ์ด๋ API(์: Twilio, Vonage, Agora.io, Daily.co)๋ฅผ ํ์ฉํ๋ ๊ฒ์ ๊ณ ๋ คํ์ญ์์ค. ์ด๋ฌํ ์๋น์ค๋ ์๊ทธ๋๋ง, STUN/TURN ๋ฐ SFU ์ธํ๋ผ ๊ด๋ฆฌ์ ๋ณต์ก์ฑ์ ์๋น ๋ถ๋ถ ์ถ์ํํ์ฌ ํต์ฌ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ ์ง์คํ ์ ์๋๋ก ํฉ๋๋ค.
์ ๋ต์ ์ธ ์ ๊ทผ ๋ฐฉ์์ผ๋ก ์ด๋ฌํ ๊ณผ์ ๋ฅผ ์ฌ์ ์ ํด๊ฒฐํ๊ณ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ค์ํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ ๊ฐ๋ ฅํ ๋ฟ๋ง ์๋๋ผ ๋ณต์๋ ฅ ์๊ณ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ์ ์ธ๊ณ ์ฌ์ฉ์์๊ฒ ๊ณ ํ์ง์ ์ค์๊ฐ ํต์ ๊ฒฝํ์ ์ ๊ณตํ ์ ์๋ WebRTC ๊ตฌํ์ ๋ง๋ค ์ ์์ต๋๋ค.
WebRTC๋ฅผ ํตํ ์ค์๊ฐ ํต์ ์ ๋ฏธ๋
WebRTC๋ ์ด๋ฏธ ๋์งํธ ํต์ ํ๊ฒฝ์ ๋ณํ์์ผฐ์ง๋ง, ๊ทธ ์งํ๋ ์์ง ๋๋์ง ์์์ต๋๋ค. ํ์ค ๋ฐ ๊ด๋ จ ๊ธฐ์ ์ ์ง์์ ์ธ ๊ฐ๋ฐ์ ์ค์๊ฐ ์ํธ ์์ฉ์ ์ํ ํจ์ฌ ๋ ํ๋ถํ๊ณ ํตํฉ์ ์ด๋ฉฐ ์ฑ๋ฅ์ด ๋ฐ์ด๋ ๋ฏธ๋๋ฅผ ์ฝ์ํฉ๋๋ค.
์ต์ ๋ํฅ ๋ฐ ๊ฐ๋ฐ
- WebTransport ๋ฐ WebRTC NG: WebRTC๋ฅผ ๋ฐ์ ์ํค๊ธฐ ์ํ ๋ ธ๋ ฅ์ด ์งํ ์ค์ ๋๋ค. WebTransport๋ QUIC๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ผ์ด์ธํธ-์๋ฒ ํต์ ์ ํ์ฉํ๋ API๋ก, ์น์์ผ๋ณด๋ค ๋ฎ์ ๋๊ธฐ ์๊ฐ์ ์ ๊ณตํ๊ณ UDP์ ๊ฐ์ ์ ๋ขฐํ ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์ง์ ์ ์ธ ๋์ฒด๋ ์๋์ง๋ง, WebRTC ๊ธฐ๋ฅ์ ์ผ๋ถ, ํนํ ๋ฐ์ดํฐ ์ฑ๋์ ํฅ์์ํฌ ์ ์๋ ๋ณด์์ ์ธ ๊ธฐ์ ์ ๋๋ค. WebRTC NG(์ฐจ์ธ๋)๋ ํต์ฌ ํ๋กํ ์ฝ ๋ฐ API์ ๋ํ ๋ฏธ๋์ ํฅ์๋ ๊ธฐ๋ฅ์ ๊ฒํ ํ๋ ๋ ๋์ ์ด๋์ ํฐ๋ธ๋ก, ๋ค์๊ฐ ์๋๋ฆฌ์ค๋ฅผ ๋จ์ํํ๊ณ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
- AI/ML๊ณผ์ ํตํฉ: WebRTC์ ์ธ๊ณต์ง๋ฅ ๋ฐ ๋จธ์ ๋ฌ๋์ ๊ฒฐํฉ์ ๊ฐ๋ ฅํ ํธ๋ ๋์ ๋๋ค. ์์ ํตํ ์ค ์ค์๊ฐ ์ธ์ด ๋ฒ์ญ, ์ง๋ฅํ ์์ ์ต์ , ๊ณ ๊ฐ ์ง์ ์ํธ ์์ฉ์์์ ๊ฐ์ ๋ถ์ ๋๋ ํ์์ ์ฐธ์ฌํ๋ AI ๊ธฐ๋ฐ ๊ฐ์ ๋น์ ๋ฑ์ ์์ํด ๋ณด์ญ์์ค. ์ด๋ฌํ ํตํฉ์ ์ค์๊ฐ ํต์ ์ ๊ฐ์น์ ์ ๊ทผ์ฑ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค.
- ํฅ์๋ ๊ฐ์ธ ์ ๋ณด ๋ณดํธ ๋ฐ ๋ณด์ ๊ธฐ๋ฅ: ๊ฐ์ธ ์ ๋ณด ๋ณดํธ์ ๋ํ ์ฐ๋ ค๊ฐ ์ปค์ง์ ๋ฐ๋ผ, ๋ฏธ๋์ WebRTC ๊ฐ๋ฐ์๋ ๋ ์ธ๋ถํ๋ ๊ถํ ๊ด๋ฆฌ, ํฅ์๋ ์ต๋ช ํ ๊ธฐ์ , ๊ทธ๋ฆฌ๊ณ ์ ์ฌ์ ์ผ๋ก ๋ณด์ ๋ค์๊ฐ ๊ณ์ฐ๊ณผ ๊ฐ์ ๊ณ ๊ธ ์ํธํ ๊ธฐ๋ฅ๊ณผ ๊ฐ์ ๋์ฑ ๊ฐ๋ ฅํ ๊ฐ์ธ ์ ๋ณด ๋ณดํธ ์ ์ด๊ฐ ํฌํจ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
- ๋ ๋์ ์ฅ์น ์ง์: WebRTC๋ ์ด๋ฏธ ๋ธ๋ผ์ฐ์ ์ ๋ชจ๋ฐ์ผ ์ฑ์์ ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์์ง๋ง, ๊ทธ ๋ฒ์๋ ์ค๋งํธ ์ฅ์น, IoT ์๋ํฌ์ธํธ ๋ฐ ์๋ฒ ๋๋ ์์คํ ์ผ๋ก ํ์ฅ๋๊ณ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ค๋งํธ ํ ์ฅ์น์์ ์ฐ์ ์ฉ ์ผ์์ ์ด๋ฅด๊ธฐ๊น์ง ๋ ๋์ ๋ฒ์์ ํ๋์จ์ด์ ์ค์๊ฐ ์ํธ ์์ฉ์ด ๊ฐ๋ฅํด์ง ๊ฒ์ ๋๋ค.
- XR (์ฆ๊ฐ ํ์ค/๊ฐ์ ํ์ค) ํตํฉ: AR ๋ฐ VR์ ๋ชฐ์ ํ ๊ฒฝํ์ ์ค์๊ฐ ํต์ ์ ์์ฐ์ค๋ฝ๊ฒ ์ด์ธ๋ฆฝ๋๋ค. WebRTC๋ ๊ณต์ ๊ฐ์ ๊ณต๊ฐ, ํ์ AR ๊ฒฝํ ๋ฐ ์ด๋ฌํ ์๋ก์ด ํ๋ซํผ ๋ด์์์ ๊ณ ํ์ง ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํ ๊ฒ์ด๋ฉฐ, ์๋ก์ด ํํ์ ๊ธ๋ก๋ฒ ์ํธ ์์ฉ๊ณผ ํ์ ์ ์ด์งํ ๊ฒ์ ๋๋ค.
- ์๋น์ค ๋ฉ์ ๋ฐ ์ฃ์ง ์ปดํจํ : ๋๊ธฐ ์๊ฐ์ ๋์ฑ ์ค์ด๊ณ ๋๊ท๋ชจ ๊ธ๋ก๋ฒ ํธ๋ํฝ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด, WebRTC ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฃ์ง ์ปดํจํ ๋ฐ ์๋น์ค ๋ฉ์ ์ํคํ ์ฒ๋ฅผ ์ ์ ๋ ๋ง์ด ํ์ฉํ ๊ฒ์ ๋๋ค. ์ด๋ ์ฒ๋ฆฌ๋ฅผ ์ฌ์ฉ์์๊ฒ ๋ ๊ฐ๊น๊ฒ ๊ฐ์ ธ์ค๊ณ , ๋คํธ์ํฌ ๊ฒฝ๋ก๋ฅผ ์ต์ ํํ๋ฉฐ, ํนํ ์ง๋ฆฌ์ ์ผ๋ก ๋ถ์ฐ๋ ์ฐธ์ฌ์๋ค์ ์ ๋ฐ์ ์ธ ์๋ต์ฑ์ ํฅ์์ํค๋ ๊ฒ์ ํฌํจํฉ๋๋ค.
RTCPeerConnection
์ ์ง์์ ์ธ ์ญํ
์ด๋ฌํ ๋ฐ์ ์๋ ๋ถ๊ตฌํ๊ณ , RTCPeerConnection
์ ์ํด ์บก์ํ๋ ๊ธฐ๋ณธ ๊ฐ๋
, ์ฆ ์ง์ ์ ์ด๊ณ ์์ ํ๋ฉฐ ํจ์จ์ ์ธ ํผ์ด ํฌ ํผ์ด ๋ฏธ๋์ด ๋ฐ ๋ฐ์ดํฐ ๊ตํ์ ๊ณ์ํด์ ์ค์ฌ์ ์ธ ์ญํ ์ ํ ๊ฒ์
๋๋ค. ์ฃผ๋ณ์ WebRTC ๊ตฌํ์ ์๋ฒ ์ธก ๊ตฌ์ฑ ์์, AI ํตํฉ ๋ฐ ์๋ก์ด ๋คํธ์ํฌ ํ๋กํ ์ฝ๋ก ๋์ฑ ์ ๊ตํด์ง๋ฉฐ ๊ณ์ ์งํํ๊ฒ ์ง๋ง, RTCPeerConnection
์ ์ง์ ์ ์ธ ์ค์๊ฐ ์ํธ ์์ฉ์ ์ํ ํ์์ ์ธ ํต๋ก๋ก ๊ณ์ ๋จ์ ๊ฒ์
๋๋ค. ๊ทธ ๊ฒฌ๊ณ ํจ๊ณผ ๋ด์ฅ๋ ๊ธฐ๋ฅ์ WebRTC์ ํต์ฌ ๊ธฐ๋ฅ์ ์ํด ๋์ฒด ๋ถ๊ฐ๋ฅํ๊ฒ ๋ง๋ญ๋๋ค.
์ค์๊ฐ ํต์ ์ ๋ฏธ๋๋ ์ํธ ์์ฉ์ด ์ฆ๊ฐ์ ์ผ ๋ฟ๋ง ์๋๋ผ ์ง๋ฅ์ ์ด๊ณ ๋ชฐ์ ์ ์ด๋ฉฐ ์ฐ๋ฆฌ ๋์งํธ ์ํ์ ๋ชจ๋ ์ธก๋ฉด์ ์ํํ๊ฒ ํตํฉ๋๋ ํ๊ฒฝ์ ์ฝ์ํ๋ฉฐ, ์ด ๋ชจ๋ ๊ฒ์ WebRTC๋ฅผ ๋๋ฌ์ผ ์ง์์ ์ธ ํ์ ์ ์ํด ๊ตฌ๋๋ฉ๋๋ค.
๊ฒฐ๋ก
๊ฒฐ๋ก ์ ์ผ๋ก, 'WebRTC ๊ตฌํ'๊ณผ 'RTCPeerConnection
'์ด๋ผ๋ ์ฉ์ด๊ฐ ์ข
์ข
ํผ์ฉ๋์ง๋ง, ๊ฐ๋ฐ์์ ์ํคํ
ํธ๋ ์ด๋ค์ ๋๋ ทํ๋ฉด์๋ ์ํธ ์์กด์ ์ธ ์ญํ ์ ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. RTCPeerConnection
์ ๋ฏธ๋์ด ๋ฐ ๋ฐ์ดํฐ ๊ตํ์ ์ํ ์ง์ ์ ์ธ ํผ์ด ํฌ ํผ์ด ์ฐ๊ฒฐ์ ์ค์ ํ๊ณ ๊ด๋ฆฌํ๋ ๊ฐ๋ ฅํ ์ ์์ค API๋ก, NAT ํต๊ณผ, ๋ฏธ๋์ด ํ์, ๋ด์ฅ ๋ณด์๊ณผ ๊ฐ์ ๋ณต์กํ ์์
์ ์ฒ๋ฆฌํฉ๋๋ค.
๊ทธ๋ฌ๋ ์์ ํ 'WebRTC ๊ตฌํ'์ RTCPeerConnection
์ ๋๋ฌ์ธ๊ณ ์กฐ์จํ๋ ์ ์ฒด์ ์ธ ์์คํ
์
๋๋ค. ์ฌ๊ธฐ์๋ ํ์์ ์ธ ์๊ทธ๋๋ง ์๋ฒ, ๊ฒฌ๊ณ ํ STUN/TURN ์ธํ๋ผ, ์ฌ์ฉ์ ์นํ์ ์ธ ์ธํฐํ์ด์ค, ํฌ๊ด์ ์ธ ์ ํ๋ฆฌ์ผ์ด์
๋ก์ง, ๊ทธ๋ฆฌ๊ณ ์ค๋ฅ ์ฒ๋ฆฌ, ํ์ฅ์ฑ ๋ฐ ๋ณด์์ ์ํ ์ ๊ตํ ๋ฉ์ปค๋์ฆ์ด ํฌํจ๋ฉ๋๋ค. ์ ๊ณ ๋ ค๋ ๊ตฌํ ์์ด๋ RTCPeerConnection
์ ๊ฐ๋ ฅํ์ง๋ง ์๋ํ์ง ์๋ ๊ตฌ์ฑ ์์๋ก ๋จ๊ฒ ๋ฉ๋๋ค.
๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ฅผ ์ํ ์ค์๊ฐ ํต์ ์๋ฃจ์ ์ ๊ตฌ์ถํ๋ ๊ฒ์ ๋คํธ์ํฌ ๊ฐ๋ณ์ฑ, ๋ฐฉํ๋ฒฝ ๋ณต์ก์ฑ ๋ฐ ํ์ฅ์ฑ๊ณผ ๊ด๋ จ๋ ๋ ํนํ ๊ณผ์ ๋ฅผ ์ ์ํฉ๋๋ค. ๊ฒฌ๊ณ ํ ์๊ทธ๋๋ง ์ํคํ ์ฒ ์ค๊ณ, ์ง๋ฆฌ์ ์ผ๋ก ๋ถ์ฐ๋ STUN/TURN ์๋ฒ ๋ฐฐํฌ, ์ ์ํ ๋นํธ๋ ์ดํธ ์คํธ๋ฆฌ๋ฐ ๊ตฌํ, ์ฌ์ฉ์ ๊ฒฝํ ๋ฐ ๋ณด์ ์ฐ์ ์์ ์ง์ ๊ณผ ๊ฐ์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ค์ํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ ์ด๋ฌํ ์ฅ์ ๋ฌผ์ ๊ทน๋ณตํ ์ ์์ต๋๋ค.
WebRTC๋ ํต์ ๋ถ์ผ์ ํ์ ์ ์ด๋๋ ์๋๋ ฅ์ผ๋ก ๊ณ์ํด์ ์์ฉํ๋ฉฐ, ์ค์๊ฐ ์ํธ ์์ฉ์ด ๋ ์ง๋ฅ์ ์ด๊ณ ๋ชฐ์ ์ ์ด๋ฉฐ ๋ชจ๋ ์ฌ๋์๊ฒ, ์ด๋์์๋ ์ ๊ทผ ๊ฐ๋ฅํ ๋ฏธ๋๋ฅผ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. WebRTC์ ํต์ฌ ๊ตฌ์ฑ ์์์ ๋ ๋์ ๊ตฌํ ๋ ธ๋ ฅ ์ฌ์ด์ ๋ฏธ๋ฌํ ์ฐจ์ด๋ฅผ ์ดํดํ๋ ๊ฒ์ด ๊ทธ ์ ์ฌ๋ ฅ์ ์ต๋ํ ํ์ฉํ๊ณ ์ง์ ์ผ๋ก ์ํฅ๋ ฅ ์๋ ๊ธ๋ก๋ฒ ํต์ ์๋ฃจ์ ์ ๊ตฌ์ถํ๋ ์ด์ ์ ๋๋ค.