-
Notifications
You must be signed in to change notification settings - Fork 0
๐ useWebRTCํ ๋ฆฌํฉํ ๋ง ์ฌ์ : ๋ณต์กํจ์ ๋จ์ํ๊ฒ, ๋ ๋์ ๊ฒฝํ์ผ๋ก ๐
์ด๋ฐ์๋ ๋ชจ๋ ๊ฑธ ํ
์ผ๋ก ๊ตฌํ ํ๋ ค๋ค ๋ณด๋ ๋ฆฌ์กํธ์ ๋ผ์ดํ ์ฌ์ดํด์ ์ต์ง๋ก WebRTC ๊ธฐ๋ฅ์ด ๋ค์ด๊ฐ ์์๋ค.
๊ทธ๋์ ๊ฐ๋ฐ์ ์งํํ๋ฉฐ ์ด ์ํ๋ก๋ ๊ธฐ๋ฅ ์ถ๊ฐ๋ ๋ฒ๊ทธ ํฝ์ค๊ฐ ์ด๋ ต๋ค๊ณ ํ๋จํด ๋ชจ๋ํ๋ฅผ ์งํํ๋ค.
๋ฆฌํฉํ ๋ง ํ์ ์๋ก ์์กดํ๋ ๋ถ๋ถ์ด ๋ง์ด ํด์๋์๊ธฐ์ ๊ธฐ๋ฅ์ถ๊ฐ๋ ๋ฒ๊ทธํฝ์ค์ ์์๋๋ ์๊ฐ์ด ๋ง์ด ์ค์ด๋ค๊ฒ์ผ๋ก ๊ธฐ๋ํ๊ณ ์๋ค.
์ฝ๋๋ก ํ
๋ด๋ถ๋ฅผ ๋ณด๋ฉด ๊ทธ๋ฅ ๋ณด๊ธฐ๋ง ํด๋ ๋งค์ฐ ๋ณต์กํ๋ค.
ํ
์์ ํ
์์ ์์ฑ๋ ๊ฐ์ ๋ค๋ฅธ ํ
์ด ์ธ์๋ก ๋ฐ๊ณ
๊ทธ ํ ๋ค๋ฅธ ํ
์ด ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ๋ฐ๊ณ
๋ง์ง๋ง์ผ๋ก ๋ชจ๋ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํดํด์ค๋ค.
๊ธ๋ก ์์ฑ ํ๋ฉด์๋ ํท๊ฐ๋ฆฌ๋ ๊ธฐ๋ถ์ด๋ค.
์ด๊ฑธ ๊ทธ๋ฆผ์ผ๋ก ํํ ํด ๋ดค๋๋ฐ ์ดํด๊ฐ ์ดํดํ๊ธฐ ์ฝ์ง๋ง ๋ณต์กํด๋ณด์ธ๋ค.
useControllMediaํ
์ ์ธ๊ฐ์ง ํ
์ ์ฐธ์กฐํ๋๋ฐ ์คํ ์์๋ฅผ ์ ์ง์ผ์ค์ผ ์คํ์ด ๋ณด์ฅ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ธ๊ฐ์ ํ
์ ๋ชจ๋ WebRTC ๊ด๋ จ ํจ์๊ฐ ํ์ํ๋๋ฐ ๋ฐ๋ก ๋๋์ด ์์๋ค.
๊ทธ๋์ ๊ธฐ๋ฅ์ ์ถ๊ฐ ํ๊ฑฐ๋ ์์ ํ ๋ ์ฝ๋์ ํ๋ฆ์ ์ฝ๊ธฐ ์ด๋ ค์ ๋ค.
Props Drilling ๋ฌธ์ ๋ ๋ฐ์ํ๋ค.
๋ชจ๋ ๊ธฐ๋ฅ์ useWebRTC ํ
์ด ๋๋งก์ ์ฒ๋ฆฌํด์ฃผ๊ธฐ ๋๋ฌธ์ด๋ค.
๋๋ฌธ์ ์ด ํ
์ ๋ฐ๋์ ์ปดํฌ๋ํธ ์ต์๋จ์์ ํธ์ถ ๋์์ผ ํ๊ณ , ํ๋จ์์ ์ด๋ฅผ ๋ฐ์์ ์จ์ผ ํ๋ค.
์ด ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๊ธฐ ์ํด ๊ณตํต๋ ๋ก์ง์ ๋ฐ์ผ๋ก ์์ ๋นผ๊ณ ์ด๊ฑธ ๋ฐ์ ์ฐ๋๋ก ๋ฐ๊พธ์๋ค.
WebRTC๋ ์ฑ์์ ํ๋ฒ๋ง ํธ์ถ๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ฑ๊ธํค ํจํด์ ์ ์ฉ ํด ์ฃผ์๋ค.
์ฒ์์ ๋ณต์กํด ๋ณด์๋ ์์กด๊ด๊ณ๊ฐ ์์ด์ง๊ณ ํ
์ ๊ฐ๋จํ ์ฌ์ฉํ ์ ์๊ฒ ๋์๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฌด์กฐ๊ฑด ์ต์๋จ์ ์ปดํฌ๋ํธ์์ ํธ์ถํ ํ์๊ฐ ์์ด์ ธ Props Drilling ์ญ์ ํด๊ฒฐ ๋์๋ค.
์์ ๊ฒฐ๊ณผ๋ก ์ธํด useWebRTC ํ ์ ์ด์ ์ด๋ผํด์ก๋ค. ๋ฌด์ํ ๋ง์ ๋ณ์, ํจ์๋ฅผ ๋ฆฌํด ํ์๋๋ฐ ์ด์ startWebRTC, endWebRTC ํจ์๋ง ๋ฆฌํดํ๋ค.
ํ ์ฌ์ฉ์ฑ์ด ๊ฐ์ ๋์๊ธฐ์ ์ด๋ค ํ ์ด ์ด๋ค ๊ธฐ๋ฅ์ ํ๋์ง ํ๋์ ํ์ ํ๊ธฐ ์ฌ์์ก๋ค. ์ถ๊ฐ์ ์ผ๋ก ๋๋ฒ๊น , ์ฝ๋์ ์ถ๊ฐ์ ์์ ์ญ์ ์ฌ์์ง๊ฒ ๋์๋ค.
๋ง์ง๋ง์ผ๋ก ์ด๋ฒ์ ์ด๋ ๊ฒ ๋ฆฌํฉํ ๋ง์ ์งํํ๋ฉด์ ๋๊ฐ์ง๋ฅผ ๋ฐฐ์ ๋ค.
- ํ ์ ์์ฑํ๊ธฐ ์ ์๋ ์ ๋ง ๋ผ์ดํ ์ฌ์ดํด ์์ ํฌํจ๋์ด์ผ ํ๋ ๋ก์ง์ธ์ง ์๊ฐ์ ํ์
- ํ ์คํธ ์ฝ๋๋ฅผ ๋ฐ๋์ ์์ฑํ์.
ํ ์คํธ ์ฝ๋๊ฐ ์์ด์ ๋ฆฌํฉํ ๋ง์ ํ ๋ ์์ ํ ์คํธ๋ฅผ ์งํํ๊ธฐ์ ํ ์คํธ ์ฝ๋๊ฐ ๋ ์๋ฟ์๋ค. ๊ทธ๋์ ์ด๋ฒ ๋ถ์คํธ ์บ ํ ์ผ์ ์ด ๋๋๋ฉด ํ ์คํธ ์ฝ๋๋ฅผ ์ ์ผ ๋จผ์ ์์ฑํ ์์ ์ด๋ค.
๐ฎ ํ๋ก๋ฐํฌํฐ
๐ป ํ๋ก์ ํธ
- ์ผ ๋๋ ๋ฌด์ค๋จ ๋ฐฐํฌ ํ ์ ์์ด ๐ซต
- SWAGํ๊ฒ Swagger ์ฌ์ฉํ๋ ๋ฒ ๐ค (Feat. Swagger ๋ฐ์ฝ๋ ์ดํฐ๋ฅผ ์ํ ํจํค์ง ๋ง๋ค๊ธฐ)
- ์ธํฐ๋ํฐ๋ธ ์น: ์นด๋ ์ ๋๋ฉ์ด์
- ๐ป Context API, Provider ์ง์ฅ ๊ทธ๋ฆฌ๊ณ ๊ท์ฌ์ด ๊ณฐ๋์ด ๐ป
- ๐ ๋ณต์กํจ์ ๋จ์ํ๊ฒ, ๋ ๋์ ๊ฒฝํ์ผ๋ก ๐
- UX๋ฅผ ์ํด AI ์ฑํ ๋ฐ์ ์๋๋ฅผ 84.87%๊น์ง ๊ฐ์ ํ ๋ฐฉ๋ฒ ๐
- ์์ผ ์์ด๊ณ ๐ (Feat. socket.io๋ ํ์ฑ์ ํด)
- ๐ ์ ์ ํ์ผ public vs src/assets
- ๐ ์นด์นด์คํก ๊ณต์
- ๐ ์ธํฐ๋ํฐ๋ธ ์น ๊ตฌํ
- ๐ ๋ฐ์ํ ์น - ๋จ์๋ฅผ ์ ์ ํ๊ฒ ์ฌ์ฉํ๊ธฐ
- ๐ชฒ vite์์ tailwindcss ์ ์ฉ ์ด์
- ๐ชฒ tailwind์ ์ฅ๋จ์
- ๐ NCP ์ธํ๋ผ ๊ตฌ์ถํ๊ธฐ
- ๐ GitHub Actions๋ก CI/CD ์๋ํํ๊ธฐ
- ๐ SSL ์ธ์ฆ์ ๋ฐ๊ธ๋ฐ๊ธฐ
- ๐ ๋ธ๋ฃจ/๊ทธ๋ฆฐ ๋ฌด์ค๋จ ๋ฐฐํฌ ๊ตฌํํ๊ธฐ
- ๐ graceful shutdown์ผ๋ก ์ฌ์ฉ์ ๊ฒฝํ ์ ํ ๋ฐฉ์งํ๊ธฐ
- ๐ winston๊ณผ sentry๋ก ์๋ฒ๊ฐ ํฐ์ง๋ ์ด์ ๋ถ์ํ๊ธฐ (+ slack webhook)
- ๐ ์นด์นด์ค ๋ก๊ทธ์ธ ๋์ ํ๊ธฐ
- ๐ health check๋ก ์๋ฒ ์ํ ํ์ธํ๊ธฐ
- ๐ Jest์ Supertest๋ก ์ฝ๋ ๋์ ํ ์คํธํ๊ธฐ
- ๐ ๋์ปค ์บ์ฑ์ผ๋ก ๋น๋์๊ฐ 67% ๊ฐ์ ํ๊ธฐ
- ๐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ต์ ํํ๊ธฐ
- ๐ชฒ 521 Web server is down
- ๐ชฒ ๋์ปค ์ปจํ ์ด๋์์ ํธ์คํธ MySQL์ ์ ๊ทผ ๋ชปํ๋ ์ด์