-
Notifications
You must be signed in to change notification settings - Fork 4
๐ ๊ธฐํ ๋ฐ MVP ์ ์ง ํ์
Junsang Yu edited this page Nov 12, 2024
·
1 revision
๐ก
- ๊ธฐํ๊ณผ MVP ์ ์ง?
- ์์ ์ ํ๋ค๋ฉด ์ด๋๋ฅผ?
- โย ๊ฐ์ธ ๋ชฉํ
- ์ฃผ๋ง์ ์๊ฐํด์ ๋ ธ์ ์ ์ ์ด๋๊ธฐ
- ๋ค๋ฅธ ์ฌ๋๋ค ๊ฐ์ธ ๋ชฉํ๋ ์ข ๋ณด๊ธฐ
- ๋ค๋ฅธ ์ฌ๋ ์๊ฐ ์ํ๊ณ ์ด๊ธฐ์ ์ผ๋ก ๋ชฉํ ์๊ฐํด์ค๊ธฐ
- ์กฐ๊ธ ๋ ๊ตฌ์ฒด์ ์ผ๋ก, ์ด ํ๋ก์ ํธ๋ฅผ ํตํด ๋ญ ์ป๊ณ ์ถ์์ง?
- ๊ฐ ๋ถ์ผ์ ๋ชฉํ
- ๋ค์ ํ ๋ฒ ํ์ฅ(์ค์ฌ์)?
- ์ด๋ฒ ์ฃผ ๊ณํ ์์ฑ
- J025
- ํน์ ํ๋ ์์ํฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ด์ ์ ๋ํด์ ๊ทผ๊ฑฐ๋ฅผ ๋ฌธ์ํ
- WebRTC, WebSocket ๋๋ [Socket.IO](http://Socket.IO)์ ๋ํด ๊น๊ฒ ์ดํดํ๊ธฐ
- React์ ์ปดํฌ๋ํธ, ์ํ ๊ด๋ฆฌ, ํ
, ๋ ๋๋ง ์ต์ ํ์ ๋ํ ๊น๊ฒ ์ดํดํ๊ธฐ
- ์ฌ๋ฌ ๊ฐ์ง ์ปดํฌ๋ํธ ์ค๊ณ ํจํด์ ๋ํด ๊ณ ๋ฏผํด๋ณด๊ณ ์ ์ฉํด๋ณด๊ธฐ
- ์ฌ์ฌ์ฉ๊ฐ๋ฅํ๊ณ ๋ ๋ฆฝ์ ์ธ ์ปดํฌ๋ํธ ์ค๊ณ โ Storybook์ ์ ํ์ฉํด๋ณด๊ณ ์ถ๋ค.
- ์๋ฒ ์ํ๊ด๋ฆฌ(useQuery), ํด๋ผ์ด์ธํธ ์ํ๊ด๋ฆฌ(Zustand) ๋ฑ์ ํ์ฉํ ์ต์ ํ๋ ์ํ ๊ด๋ฆฌ ์ค๊ณ
- ์ ์ ํ๊ฒ ์ปค์คํ ํ ์ ์ ํ์ฉํด๋ณด๊ธฐ
- useCallback, useMemo ๋ฑ์ ์ฌ์ฉํ ๋ ๋๋ง ์ต์ ํ
- ์ฌ์ฉ์ ๊ฒฝํ(UX) ๊ณ ๋ คํ๊ธฐ
- ๊ฐ์ธ์ ์ธ ์์ฌ
- ๋ฒ ์ด์ค ๊ธฐ๋ฅ ์ดํ์ ๋จ์ํ โ์ดํํโ ์๋น์ค๋ก์์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ๊ฒ๋ณด๋ค๋ ์๋์ ๊ฐ์ด ์๋น์ค ์ธก๋ฉด์์๋ ๋ถ๊ฐ์ ์ด๋๋ผ๋ ๋์ ํด๋ณผ๋งํ ๋ถ๋ถ์ ํด๋ณด๊ณ ์ถ์
- [Socket.IO](http://Socket.IO) ๊ธฐ๋ฐ์ ์ค์๊ฐ ๋ฐ์ดํฐ ์ ํ๋ฅผ ํตํ ๊ณต์ฉ ์บ๋ฒ์ค ๋ฑ์ ์ค์๊ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋๋ ๋ค์ค ๋ฝ๋ชจ๋๋ก ํ์ด๋จธ ์ค์๊ฐ ๊ณต์
- ๋๋ MediaPipe(์ผ๊ตด์ธ์), WebGL(์๋ฐํ๋ ๋๋ง) ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉ์ ์ผ๊ตด์ ์๋ฐํ๋ฅผ ์์ฐ๋ ๊ธฐ๋ฅ
- J046
- ๊ธฐ๋ณธ๊ธฐ ๋ค์ง๊ธฐ
- ์ต์ ๋ด๊ฐ ์ง ์ฝ๋, ์ต๋ ํ๋ก ํธ์๋ ์ฝ๋ ์๋ฒฝ ์ดํดํ๊ธฐ
- webRTC ์งํ๊ฒ ํ์ตํด๋ณด๊ธฐ
- ์ ๊ทผ์ฑ ์ ๊ฒฝ์ฐ๊ธฐ
- J129
- ํ๋ก์ ํธ์ ๋ฒ ์ด์ค ๊ธฐ์ (WebRTC, WebSocket, ์น(api) ๋ฑ..)์ ๋ํด ๋ฅ๋ค์ด๋ธ ํด๋ณด๋ ๊ฒฝํ.
- ๋ฐฐํฌ์ ๋ํด ๊ฒฝํํด๋ณด๊ธฐ + ๋ฐฐํฌ ์ดํ ์ ์ ํผ๋๋ฐฑ ๊ฒฝํํด๋ณด๊ธฐ.
- ์ฌ์ค ํน์ ๊ธฐ์ ์ ๋ํ ๊น์ด ์๋ ํ์ต + ๋น ๋ฅธ ๋ฐฐํฌ๋ฅผ ํตํ ํ์ต ๋ชจ๋ ํด๋ณด๊ณ ์ถ๊ธด ํจ.
- ๋ค๋ง, ํ๋ก์ ํธ ๋ฒ ์ด์ค ๊ธฐ์ ์ ์ฒ์ ํ์ตํ๋ ์ ์ฅ์ด๋ผ ํ๋ก์ ํธ ์ง๋์ ๋ํ ๊ฑฑ์ ์ด ์์.
- ์ ๋ฆฌ๋ ๋ฌธ์ํ๋ฅผ ํด๋ณด๋ฉด ์ข๊ฒ ๋ค. ์ด์ ์๋ ๋๋ฌด ์ค๊ตฌ๋๋ฐฉ์ผ๋ก ๋ฌธ์ํ๋ฅผ ์งํํ์.
- J166
- ์ฒ์์ ๋น๋์ค ์ฃผ์ ๊ณ ๋ฅผ๋ HLS ๊ฐ์ ๋น๋์ค ํ๋กํ ์ฝ ์ฌ์ฉํด์ ํ๋ก์ ํธ ๋ง๋ค๊ณ ์ถ์์ต๋๋ค.
- ์๋ฒ์์ ์ค์ผ์ผ๋ง ์ฌ์ด ๊ตฌ์กฐ๋ก ์ฌ์ฉ์ ํธ๋ํฝ์ด ๋ง์์ง๋ฉด ์๋ฒ๊ฐ ์ค์ผ์ผ ์์ ํ ์ ์๋ ๊ตฌ์กฐ
- ์ด์ ๋ชฉํ
- ๊ธฐ์ ์ ์ธ ๋์
- ์๋ฒ ์ํคํ ์ณ ์ค์ผ์ผ๋ง ์ฌ์ด ๊ตฌ์กฐ
- ์๋ฒ API docs ๋ฌธ์ํ(swagger)
- ์๋ฌ์ฒ๋ฆฌ ์ํ๊ธฐ
- CI/CD ์คํฌ๋ฆฝํธ๋ก ์ฌ์ด ๋ฐฐํฌ
- ์๋ฌ ์์ธ ๋ถ์ ๋ก๊ทธ ๊ด๋ฆฌํ๊ธฐ(sentry?)
- ํ ์คํธ?
- ๋ฌธ์ํ ์ํ๊ธฐ
- ์๋ฌด๋ ์์ฐ๋๊ฑฐ๋ณด๋ค ๋๋ง์ด๋ผ๋ ์ฐ๊ณ ์ถ์ ๊ธฐํ
- ๊ธฐ์ ์ ์ธ ๋์
- J290 : ์ฝ๋์ ๋ํ ๊ทผ๊ฑฐ๋ฅผ ๋ฌธ์ํํ์ โ ๊ฐ๋ฐ์ผ์ง ๋๋
- WebRTC ํ์ต ๋ฐ ๊ตฌํํ๊ธฐ
- 3~4์ฃผ ์ฐจ ๊ธฐํ ๊ณต์ ์ ๋ฐฐํฌํ๊ธฐ
- ์ถํ ์คํ ์ค์ผ์ผ๋ง์ ๋ํด ํ์ต
- latency ๊ฐ์ ๋ฐฉ๋ฒ ํ์ต
- ๋ฌธ์ํ ์ต๊ดํ
- ํ๋ก ํธ์๋ ์ฝ๋๋ ์ด๋์ ๋ ํ์ตํ๊ณ ์ถ์ต๋๋ค
- ๊ธฐ์กด ์๊ฐ โ๋๋ผ๋ฉด ์ธ ์๋น์ค์ธ๊ฐ?โ โ ์ด๊ฑด ํ์ง
-
J166
-
์ฒ์
์์ ์คํธ๋ฆฌ๋ฐ์ ๊ณ ๋ฅธ ์ด์ : HLS๊ฐ์ ์ค์๊ฐ ์์ ์คํธ๋ฆฌ๋ฐ ํ๋กํ ์ฝ์ ๊ด์ฌ์ด ๋ง์์โ HLS ์ฌ์ฉ ์ ๊ธฐํ ์์ ํ์
-
์ด๋ค ๊ธฐ๋ฅ/๊ด์ ์ผ๋ก ํ๋ก์ ํธ๋ฅผ ํ ๊ฒ์ธ๊ฐ โ ๋ฐฑ์๋์์๋ ์ค์ผ์ผ๋งํ๊ธฐ ์ฌ์ด ๊ตฌ์กฐ์ ๊ฐ๋ช ๋ฐ์
-
WebRTC๋ ํน์ดํ ๊ธฐ์ ๊ฐ์ + ํ๊ณ ๋ง์
-
๋ก์ปฌ์์๋ ํด๋ณด์์ง๋ง ์ธ๋ถ์์ ํ ์คํธ๋ฅผ ํด๋ณด์ง ์์์
-
WebRTC์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๋ ค๋ฉด ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ/์๋น์ค(์์ : OpenVidu) ๋ฅผ ์ฌ์ฉํด์ผํ๋ค๋ ์ ์ด ์์ฌ์ ์
-
-
J290
- ์ค์ผ์ผ๋งํ๊ธฐ ์ฌ์ด ๊ตฌ์กฐ๋ฅผ ๋ชฉํ๋ก ํ๊ณ ์ถ๋ค.
- ์ฒ์์๋ WebRTC๋ก ์ค์ผ์ผ๋ง์ ์๊ฐํ๋๋ฐ, WebRTC๋ก๋ ์ค์ผ์ผ๋ง์ ํ๊ณ๊ฐ ์๋ ๊ฒ ๊ฐ๋ค.
- WebRTC์ SFU๋ฅผ ์ ์ฉํ๋ ๊ฒ๋ ๊ด์ฐฎ์ง ์์๊น?
-
J025
- (ํ์ฌ ๊ธฐํ ๊ธฐ์ค WebRTC + Socket IO ๊ฐ์) ํต์ฌ ๊ธฐ๋ฅ์ ๊น์ด ๊ณต๋ถํ๋ ๊ฒ์ด ์ค์ํ๋ค๊ณ ์๊ฐ
- ์๋น์ค์ ์ธ ๊ธฐ๋ฅ ์ถ๊ฐ๋ก๋ ๋ฐฐ์๊ฐ๋ ๊ฒ์ด ๋ง์ง ์์ ๊ฒ ๊ฐ์
- ํ๋ก ํธ์์ ํด๋ณผ ์ ์๋ ๋์ ์ ํด๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค ex. ์ค์๊ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ
- ๋ฆฌ์กํธ๋ฅผ ํ์คํ ๋ฐฐ์๊ฐ๋ ๊ฒ์ด ํ๋ก ํธ์๋์์์ ๊ฐ์ธ์ ๋ชฉํ
- ์ ๊ทผ์ฑ โ ์์ ์ชฝ ์ฃผ์ ์์ ์น ์ ๊ทผ์ฑ์ด ๋ง์ด ์ค์ํ ๊น..?
- WebRTC์ ํ๊ณ๋ผ๊ธฐ ๋ณด๋ค๋ ๋์ ํด๋ณผ ์ ์๋ ์ฌํญ?
-
J046
- ์ถ๊ฐ ๊ธฐ๋ฅ ์์ด ํต์ฌ ๊ธฐ๋ฅ์ ์ง์คํ์. ๋์ ํ๋ฆฌํฐ ์๊ฒ
- ๊ธฐํ์ ์ง๊ธ ๋ณ๊ฒฝํ๋๊ฑด x
- ๋ฒ ์ด์ค ๊ธฐ๋ฅ์ ์ง์คํ๊ธฐ
-
J129
- ๊ธฐ์ ์ ๊น๊ฒ ํ์ตํ๋ ๊ฒ์ด๋ผ๋ฉด ์ฃผ์ ๊ฐ ๋ฐ๋์ด๋ ๊ด์ฐฎ์ ๊ฒ ๊ฐ๋ค.
๊ณตํต ์๊ฒฌ : ํต์ฌ์ ์ง์คํ์
SFU ์๋ฒ๋ฅผ ์ง์ ๋ง๋๋ ๋ถ๋ถ์ด ์ถฉ๋ถํ ์ฑ๋ฆฐ์งํ ๊ณผ์ ์ผ ๊ฑฐ ๊ฐ์ต๋๋ค.
- ๊ฐ์ฅ ํต์ฌ ๊ธฐ๋ฅ์ธ ํ์ ํ์ ๊ธฐ๋ฅ ํ์ต ๋ฐ ๊ฐ๋ฐ์ ์ง์คํ๋ค.
- ๊ธฐ์กด ๊ธฐํ์ ์ ์งํ๋ SFU ์๋ฒ๋ฅผ ์ง์ ๋ง๋๋ ๋ฐฉํฅ์ผ๋ก ์งํ
- ๐ง ํ ๋น๋ฉ ๋ฐ ๋ธ๋์น ์ ๋ต
- ๐ง ์ฃผ์ ์ ์ ๋ฐ ํ ํ๋ฆฟ ์์ฑ
- ๐ป ํ๋ก์ ํธ ์ด๋ฆ ๋ฐ ๋ก๊ณ ์ ํ๊ธฐ
- ๐ป ๊ธฐํ ์ธ๋ถ์ฌํญ ์ ํ๊ธฐ
- ๐ป ๊ธฐ์ ์คํ ์์
- ๐ป ๋ฐฑ๋ก๊ทธ ์ด์ ์์ฑ
- ๐ป ๊นํ๋ธ ์ํค
- ๐ ๊ธฐํ ๋ฐ MVP ์ ์ง ํ์
- 2๏ธโฃ ์คํ๋ฆฐํธ 2 ์ฃผ๊ฐ ๊ณํ
- ๐งญ ๊ณตํต ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ํ
- ๐ฆบ ์ด๋ฒคํธ ํ๋ฆ๋
- ๐ฅ ๋ฐฑ์๋ ์๊ทธ๋๋ง ์๋ฒ ๋ฌธ์
- ๐ฝ ์คํ๋ฆฐํธ 5โ 6 ๋ฐฉํฅ์ฑ
- ๐ ์ต์ข ๋ฐํ ์ค๋น
- ๐ฟ Github Actions CD(์๋๋ฐฐํฌ)
- ๐ API
- โซ forEach๋ async๋ฅผ ๊ธฐ๋ค๋ ค์ฃผ์ง ์๋๋ค
- ๐งช WebRTC SFU ๋ฐ๋ชจ
- ๐ TURN ์๋ฒ ์ธ์ฆ ๋ฐฉ์
- ๐ ๏ธ [ํธ๋ฌ๋ธ์ํ ] /socket.io ๊ฒฝ๋ก๋ก ์ง์์ ์ผ๋ก HTTP ์์ฒญ์ ๋ณด๋ด๋ ๋ฌธ์
- ๐น WebRTC ํ์ํ์์์ ์นด๋ฉ๋ผ ์ํ์ ๋ฐ๋ฅธ ์์คํ ์์ ์ฌ์ฉ๋ ๋ถ์
- ๐ฅ ๋์นญ NAT์์์ WebRTC ์ฐ๊ฒฐ ์๋ฆฝ ๊ณผ์
- ๐ ํ ์คํธ ์ฝ๋์ ๋ชจํน