Skip to content

๐Ÿš€ useWebRTCํ›… ๋ฆฌํŒฉํ† ๋ง ์—ฌ์ •: ๋ณต์žกํ•จ์„ ๋‹จ์ˆœํ•˜๊ฒŒ, ๋” ๋‚˜์€ ๊ฒฝํ—˜์œผ๋กœ ๐Ÿš€

Song_Minhyung edited this page Dec 15, 2023 · 3 revisions

useWebRTC ํ›…์˜ ๋ชจ๋“ˆํ™”๊ฐ€ ํ•„์š”ํ–ˆ๋˜ ์ด์œ 

img_052 ์ดˆ๋ฐ˜์—๋Š” ๋ชจ๋“ ๊ฑธ ํ›…์œผ๋กœ ๊ตฌํ˜„ ํ•˜๋ ค๋‹ค ๋ณด๋‹ˆ ๋ฆฌ์•กํŠธ์˜ ๋ผ์ดํ”„ ์‚ฌ์ดํด์— ์–ต์ง€๋กœ WebRTC ๊ธฐ๋Šฅ์ด ๋“ค์–ด๊ฐ€ ์žˆ์—ˆ๋‹ค.
๊ทธ๋ž˜์„œ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๋ฉฐ ์ด ์ƒํƒœ๋กœ๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€๋‚˜ ๋ฒ„๊ทธ ํ”ฝ์Šค๊ฐ€ ์–ด๋ ต๋‹ค๊ณ  ํŒ๋‹จํ•ด ๋ชจ๋“ˆํ™”๋ฅผ ์ง„ํ–‰ํ–ˆ๋‹ค.
๋ฆฌํŒฉํ† ๋ง ํ›„์— ์„œ๋กœ ์˜์กดํ•˜๋Š” ๋ถ€๋ถ„์ด ๋งŽ์ด ํ•ด์†Œ๋˜์—ˆ๊ธฐ์— ๊ธฐ๋Šฅ์ถ”๊ฐ€๋‚˜ ๋ฒ„๊ทธํ”ฝ์Šค์‹œ ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„์ด ๋งŽ์ด ์ค„์–ด๋“ค๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ•˜๊ณ ์žˆ๋‹ค.

ํ›…์˜ ๋‚ด๋ถ€๊ฐ€ ๋„ˆ๋ฌด ๋ณต์žกํ•˜๋‹ค.

img_053 ์ฝ”๋“œ๋กœ ํ›… ๋‚ด๋ถ€๋ฅผ ๋ณด๋ฉด ๊ทธ๋ƒฅ ๋ณด๊ธฐ๋งŒ ํ•ด๋„ ๋งค์šฐ ๋ณต์žกํ•˜๋‹ค.
ํ›… ์•ˆ์˜ ํ›…์—์„œ ์ƒ์„ฑ๋œ ๊ฐ’์„ ๋‹ค๋ฅธ ํ›…์ด ์ธ์ž๋กœ ๋ฐ›๊ณ  ๊ทธ ํ›„ ๋‹ค๋ฅธ ํ›…์ด ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ ๋ฐ›๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ชจ๋“  ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํ„ดํ•ด์ค€๋‹ค.

๊ธ€๋กœ ์ž‘์„ฑ ํ•˜๋ฉด์„œ๋„ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๊ธฐ๋ถ„์ด๋‹ค.

์˜์กด๊ด€๊ณ„๋ฅผ ๊ทธ๋ ค๋ด๋„ ์ •๋ง ๋ณต์žกํ•˜๋‹ค.

img_054 ์ด๊ฑธ ๊ทธ๋ฆผ์œผ๋กœ ํ‘œํ˜„ ํ•ด ๋ดค๋Š”๋ฐ ์ดํ•ด๊ฐ€ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ์ง€๋งŒ ๋ณต์žกํ•ด๋ณด์ธ๋‹ค.
useControllMediaํ›…์€ ์„ธ๊ฐ€์ง€ ํ›…์„ ์ฐธ์กฐํ•˜๋Š”๋ฐ ์‹คํ–‰ ์ˆœ์„œ๋ฅผ ์ž˜ ์ง€์ผœ์ค˜์•ผ ์‹คํ–‰์ด ๋ณด์žฅ๋œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์„ธ๊ฐœ์˜ ํ›…์€ ๋ชจ๋‘ WebRTC ๊ด€๋ จ ํ•จ์ˆ˜๊ฐ€ ํ•„์š”ํ–ˆ๋Š”๋ฐ ๋”ฐ๋กœ ๋‚˜๋‰˜์–ด ์žˆ์—ˆ๋‹ค.
๊ทธ๋ž˜์„œ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ ํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•  ๋•Œ ์ฝ”๋“œ์˜ ํ๋ฆ„์„ ์ฝ๊ธฐ ์–ด๋ ค์› ๋‹ค.

useWebRTC์—์„œ ๋ชจ๋“ ๊ฑธ ์ฒ˜๋ฆฌํ•ด์ฃผ๋‹ˆ Props Drilling๋„ ๋ฐœ์ƒํ•œ๋‹ค.

img_055 Props Drilling ๋ฌธ์ œ๋„ ๋ฐœ์ƒํ–ˆ๋‹ค.
๋ชจ๋“  ๊ธฐ๋Šฅ์„ useWebRTC ํ›…์ด ๋„๋งก์•„ ์ฒ˜๋ฆฌํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
๋•Œ๋ฌธ์— ์ด ํ›…์€ ๋ฐ˜๋“œ์‹œ ์ปดํฌ๋„ŒํŠธ ์ตœ์ƒ๋‹จ์—์„œ ํ˜ธ์ถœ ๋˜์•„์•ผ ํ•˜๊ณ , ํ•˜๋‹จ์—์„œ ์ด๋ฅผ ๋ฐ›์•„์„œ ์จ์•ผ ํ–ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๊ณตํ†ต์ ์ธ ๋ถ€๋ถ„์„ ์ถ”์ƒํ™” ํ•ด์ฃผ์—ˆ๋‹ค.

img_056 ์ด ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ณตํ†ต๋œ ๋กœ์ง์„ ๋ฐ–์œผ๋กœ ์•„์˜ˆ ๋นผ๊ณ  ์ด๊ฑธ ๋ฐ›์•„ ์“ฐ๋„๋ก ๋ฐ”๊พธ์—ˆ๋‹ค.
WebRTC๋Š” ์•ฑ์—์„œ ํ•œ๋ฒˆ๋งŒ ํ˜ธ์ถœ๋˜์–ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์„ ์ ์šฉ ํ•ด ์ฃผ์—ˆ๋‹ค.

๊ทธ๊ฒฐ๊ณผ ์˜์กด๊ด€๊ณ„๊ฐ€ ๋‹จ์ˆœํ•ด์กŒ๋‹ค.

img_057 ์ฒ˜์Œ์— ๋ณต์žกํ•ด ๋ณด์˜€๋˜ ์˜์กด๊ด€๊ณ„๊ฐ€ ์—†์–ด์ง€๊ณ  ํ›…์„ ๊ฐ„๋‹จํžˆ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๋ฌด์กฐ๊ฑด ์ตœ์ƒ๋‹จ์˜ ์ปดํฌ๋„ŒํŠธ์—์„œ ํ˜ธ์ถœํ•  ํ•„์š”๊ฐ€ ์—†์–ด์ ธ Props Drilling ์—ญ์‹œ ํ•ด๊ฒฐ ๋˜์—ˆ๋‹ค.

useWebRTCํ›…๋„ ๋‹จ์ˆœํ•ด์กŒ๋‹ค.

img_058 ์œ„์˜ ๊ฒฐ๊ณผ๋กœ ์ธํ•ด useWebRTC ํ›…์€ ์ด์ œ ์ดˆ๋ผํ•ด์กŒ๋‹ค. ๋ฌด์ˆ˜ํžˆ ๋งŽ์€ ๋ณ€์ˆ˜, ํ•จ์ˆ˜๋ฅผ ๋ฆฌํ„ด ํ–ˆ์—ˆ๋Š”๋ฐ ์ด์ œ startWebRTC, endWebRTC ํ•จ์ˆ˜๋งŒ ๋ฆฌํ„ดํ•œ๋‹ค.

๋‹ค์‹œ ๋น„๊ตํ•ด๋ด๋„ ์ •๋ง ๋‹จ์ˆœํ•ด์กŒ๋‹ค.

img_059 ํ›… ์‚ฌ์šฉ์„ฑ์ด ๊ฐœ์„ ๋˜์—ˆ๊ธฐ์— ์–ด๋–ค ํ›…์ด ์–ด๋–ค ๊ธฐ๋Šฅ์„ ํ•˜๋Š”์ง€ ํ•œ๋ˆˆ์— ํŒŒ์•…ํ•˜๊ธฐ ์‰ฌ์›Œ์กŒ๋‹ค. ์ถ”๊ฐ€์ ์œผ๋กœ ๋””๋ฒ„๊น…, ์ฝ”๋“œ์˜ ์ถ”๊ฐ€์™€ ์ˆ˜์ • ์—ญ์‹œ ์‰ฌ์›Œ์ง€๊ฒŒ ๋˜์—ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ์ด๋ฒˆ์— ์ด๋ ‡๊ฒŒ ๋ฆฌํŒฉํ† ๋ง์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋‘๊ฐ€์ง€๋ฅผ ๋ฐฐ์› ๋‹ค.

  1. ํ›…์„ ์ž‘์„ฑํ•˜๊ธฐ ์ „์—๋Š” ์ •๋ง ๋ผ์ดํ”Œ ์‚ฌ์ดํด ์•ˆ์— ํฌํ•จ๋˜์–ด์•ผ ํ•˜๋Š” ๋กœ์ง์ธ์ง€ ์ƒ๊ฐ์„ ํ•˜์ž
  2. ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋“œ์‹œ ์ž‘์„ฑํ•˜์ž.

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๊ฐ€ ์—†์–ด์„œ ๋ฆฌํŒฉํ† ๋ง์„ ํ•  ๋•Œ ์†์ˆ˜ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ๊ธฐ์— ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๊ฐ€ ๋” ์™€๋‹ฟ์•˜๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ ๋ถ€์ŠคํŠธ ์บ ํ”„ ์ผ์ •์ด ๋๋‚˜๋ฉด ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ œ์ผ ๋จผ์ € ์ž‘์„ฑํ•  ์˜ˆ์ •์ด๋‹ค.

๐Ÿ’ฆ ์šฐ๋‹นํƒ•ํƒ• ์ด์Šˆ ํ•ด๊ฒฐ๊ธฐ

BE

FE

FE/BE

๐Ÿง‘โ€๐Ÿซ ๋ฉ˜ํ† ๋ง ์ผ์ง€

๐Ÿ“ข ํšŒ์˜๋ก

๐Ÿ’ฌ ์Šคํฌ๋Ÿผ

๐Ÿ’ญ ํŒ€ ํšŒ๊ณ 

๐Ÿ’ญ ๊ฐœ์ธ ํšŒ๊ณ 

๐Ÿƒ Ongoing Project

Clone this wiki locally