-
Notifications
You must be signed in to change notification settings - Fork 4
๐ป ๋ฐฑ๋ก๊ทธ ์ด์ ์์ฑ
Junsang Yu edited this page Nov 12, 2024
·
1 revision
- ์ฐธ๊ณ ๋ฐฑ๋ก๊ทธ
-
์ค์๊ฐ ํ์ต ๊ณต์
-
์ฐธ์ฌ์ ๋ชฉ๋ก
-
์ฑํ
-
ํ์ด๋จธ
-
๊ณต๋ถ๋ฐฉ ๋ชฉ๋ก
-
๋นํ์ ๋ก๊ทธ์ธ
-
story๋ฅผ ๋จผ์ ์ง๊ณ , ๊ฑฐ๊ธฐ์ ๋๋๋ ๊ฑฐ๋ฅผ epic์ผ๋ก ์์ฑ
-
๊ธฐ๋ฅ + ํ์ด์ง ๋จ์๋ก epic ์์ฑ
- ๋ฉ์ธ ํ์ด์ง(= ํ์/๋นํ์ ์ ํ ํ์ด์ง) (์: https://www.gomterview.com/)
- ๋นํ์ ์ ํ์ ๋ํ ์ฉ์ด ์์ : ๋นํ์ ์ด์ฉ โ ๋ก๊ทธ์ธ ์์ด ์ด์ฉํ๊ธฐ
- ๊ณต๋ถ๋ฐฉ ๋ฆฌ์คํธ ํ์ด์ง
- ๊ณต๋ถ๋ฐฉ ํ์ด์ง
-
์ ์ ๋ ๋ฉ์ธ ํ์ด์ง๋ฅผ ๋ณผ ์ ์๋ค.
- GOMZ ๋ก๊ณ ๋ฅผ ํ์ํ๋ค.
- โ๋ก๊ทธ์ธ ์์ด ์ด์ฉํ๊ธฐโ ๋ฒํผ์ ํ์ํ๋ค.
-
์ ์ ๋ ๊ณต๋ถ๋ฐฉ ๋ฆฌ์คํธ ํ์ด์ง๋ก ์ ๊ทผํ๊ธฐ ์ํด โ๋ก๊ทธ์ธ ์์ด ์ด์ฉํ๊ธฐโ ๋ฒํผ์ ๋๋ฅธ๋ค.
- ๊ณต๋ถ๋ฐฉ ๋ฆฌ์คํธ ํ์ด์ง๋ก ์ ๊ทผํ๋ค.
- ๋๋ค ๋๋ค์์ ์์ฑํด์ ๋ธ๋ผ์ฐ์ ์ ์ ์ฅํ๋ค.
-
๋น์ธ๊ฐ ์ ์ (์ ์ ์ ๋ณด๊ฐ ์์)๋ ๋ค๋ฅธ ํ์ด์ง์ ์ ๊ทผํ ์ ์๋ค.
- ๋ธ๋ผ์ฐ์ ์ ์ ์ฅ๋ ๋๋ค์์ด ์์ผ๋ฉด ๋ฉ์ธ ํ์ด์ง๋ก ๋ฆฌ๋ค์ด๋ ํธํ๋ค.
-
์ ์ ๋ ๊ณต๋ถ๋ฐฉ ๋ฆฌ์คํธ ํ์ด์ง๋ฅผ ๋ณผ ์ ์๋ค.
- ํ์ด๋จธ๋ฅผ ํ์ํ๋ค.
- ๊ณต๋ถ๋ฐฉ ๋ฆฌ์คํธ๋ฅผ ํ์ํ๋ค.
- ๊ณต๋ถ๋ฐฉ ์์ฑ ๋ฒํผ์ ํ์ํ๋ค.
-
์ ์ ๋ ์์ ์ ํ๋ฃจ ๋์ ๊ณต๋ถ ์๊ฐ์ ํ์ธํ ์ ์๋ค.
- ์์ ์ด ๋๋ฉด ๋ธ๋ผ์ฐ์ ์ ์ ์ฅ๋ ํ์ด๋จธ๊ฐ ์ด๊ธฐํ๋๋ค.
- ๋ธ๋ผ์ฐ์ ์ ์ ์ฅ๋ ํ์ด๋จธ ๊ฐ์ ๊ฐ์ ธ์จ๋ค.
-
์ ์ ๋ ๊ณต๋ถ๋ฐฉ ๋ฆฌ์คํธ๋ฅผ ํ์ธํ ์ ์๋ค.
- ์๋ฒ์์ ๊ณต๋ถ๋ฐฉ ๋ชฉ๋ก์ ์ฃผ๊ธฐ์ ์ผ๋ก ๊ฐ์ ธ์จ๋ค.
- ๊ณต๋ถ๋ง ๋ชฉ๋ก์ ๊ฐ์ ธ์ค๋ API๋ฅผ ๋ง๋ ๋ค. (๊ณต๋ถ๋ฐฉ ์ ๋ชฉ, ๊ณต๋ถ๋ฐฉ ์ฐธ์ฌ์ธ์, ๊ณต๊ฐ์ฌ๋ถ)
- ๊ณต๋ถ๋ฐฉ์ ์ฐธ์ฌ ์ค์ธ ์ธ์์ ํ์ธํ ์ ์๋ค.
- ๊ณต๋ถ๋ฐฉ์ ๊ณต๊ฐ ์ฌ๋ถ๋ฅผ ํ์ธํ ์ ์๋ค.
-
์ ์ ๋ ๊ณต๋ถ๋ฐฉ์ ์์ฑํ ์ ์๋ค.
- ๊ณต๋ถ๋ฐฉ ์์ฑ ์ฐฝ์ ํ์ํ๋ค.
- ๊ณต๋ถ๋ฐฉ ์ ๋ชฉ์ ์ค์ ํ ์ ์๋ค.
- ๊ณต๋ถ๋ฐฉ ๊ณต๊ฐ ์ฌ๋ถ๋ฅผ ์ค์ ํ ์ ์๋ค.
- ๊ณต๋ถ๋ฐฉ ๋น๋ฐ๋ฒํธ๋ฅผ ์ค์ ํ ์ ์๋ค.
- ๊ณต๋ถ๋ฐฉ์ ์์ฑํ๋ API๋ฅผ ๋ง๋ ๋ค. (๊ณต๋ถ๋ฐฉ ์ ๋ชฉ, ๊ณต๊ฐ์ฌ๋ถ, ๋น๋ฐ๋ฒํธ)
- ๊ณต๋ถ๋ฐฉ ์์ฑ ์์ฒญ์ ๋ณด๋ธ๋ค.
-
์ ์ ๋ ๊ณต๋ถ๋ฐฉ์ ์
์ฅํ ์ ์๋ค.
- ๋น๋ฐ๋ฐฉ์ธ ๊ฒฝ์ฐ ๋น๋ฐ๋ฒํธ ์ ๋ ฅ ์ฐฝ์ด ํ์๋๋ค.
- ๋น๋ฐ๋ฒํธ ํ์ธ ์์ฒญ์ ๋ณด๋ธ๋ค.
- ๊ณต๋ถ๋ฐฉ ๋น๋ฐ๋ฒํธ ํ์ธ API๋ฅผ ๋ง๋ ๋ค(๊ณต๋ถ๋ฐฉ id, ๋น๋ฐ๋ฒํธ โ ๋น๋ฐ๋ฒํธ ์ ํจ์ฌ๋ถ)
- ๊ณต๋ถ๋ฐฉ ํ์ด์ง๋ก ์ด๋ํ๋ค.
-
์ ์ ๋ ๊ณต๋ถ๋ฐฉ ํ์ด์ง๋ฅผ ๋ณผ ์ ์๋ค.
- ํ์ด๋จธ๋ฅผ ํ์ํ๋ค.
- ์ฐธ์ฌ ์ ์ ๋ชฉ๋ก์ ํ์ํ๋ค.
- ์ฑํ ์ ํ์ํ๋ค.
- ๊ณต์ ๋ ํ๋ฉด์ ํ์ํ๋ค.
- ํ๋ฉด ์ต์ ๋ฐ๋ฅผ ํ์ํ๋ค.
- ํด์ฅ ๋ฒํผ์ ํ์ํ๋ค.
-
์ ์ ๋ ๊ณต๋ถ๋ฐฉ์ ์
์ฅํ ์ ์๋ค.
- ํ์ํ์๋ฅผ ๋น ํ๋ฉด์ผ๋ก ๋ณด์ฌ์ค๋ค.
- ๋ชจ๋ ๊ณต๋ถ๋ฐฉ ๋ฉค๋ฒ์ WebRTC ์ปค๋ฅ์ ์ ์์ฑํ๋ค
- ์น ์์ผ์ ์ฐ๊ฒฐํ๋ค.
- ์ฑํ ์๋ฒ์ ์ฐ๊ฒฐํ๋ค.
- ์ ์ฅ ์๋ด ๋ฌธ๊ตฌ๋ฅผ ์ฑํ ์ฐฝ์ ์ถ๋ ฅํ๋ค.
-
์ ์ ๋ ๊ณต๋ถ๋ฐฉ์ ํด์ฅํ ์ ์๋ค.
- ๋ค๋ก๊ฐ๊ธฐ ๋ฒํผ์ผ๋ก ํด์ฅํ๋ค.
- ํด์ฅํ๊ธฐ ๋ฒํผ์ผ๋ก ํด์ฅํ๋ค.
- ๊ณต๋ถ๋ฐฉ ๋ฆฌ์คํธ ํ์ด์ง๋ก ์ด๋ํ๋ค.
- ๊ณต๋ถ๋ฐฉ ์ฐธ์ฌ์ธ์์ ์ค์ธ๋ค.
- ๊ณต๋ถ๋ฐฉ์ ์ธ์์ด ์์ผ๋ฉด ๊ณต๋ถ๋ฐฉ์ ์ญ์ ํ๋ค.
- ํด์ฅํ ์ ์ ์ ํ์ํ์๋ฅผ ์ค์งํ๋ค.
-
์ ์ ๋ ์์์ ๊ณต์ ํ ์ ์๋ค.
- ์ก์ถ ์นด๋ฉ๋ผ๋ฅผ ์ ํํ ์ ์๋ค.
- WebRTC๋ก ๊ณต์ ๋ฅผ ์์/์ข ๋ฅ ํ ์ ์๋ค.
-
์ ์ ๋ ์์ฑ์ ๊ณต์ ํ ์ ์๋ค.
- ์ก์ถ ๋ง์ดํฌ/์คํผ์ปค๋ฅผ ์ ํํ ์ ์๋ค.
- WebRTC์ ์์ฑ ๊ธฐ๋ฅ์ ์์/์ข ๋ฃ ํ ์ ์๋ค.
-
์ ์ ๋ ๊ณต๋ถ๋ฐฉ์ ์ฐธ์ฌํ ์ ์ ๋ชฉ๋ก์ ํ์ธํ ์ ์๋ค.
- ์ฑํ ์๋ฒ ์ ์ํ ๋ ์ ์ ๋ชฉ๋ก ์์ผ์ผ๋ก ์ ์กํ๋ค.
- ์ ์ ์ ์/ํด์ฅ์ ์ ๋ฐ์ดํธ ๋ด์ฉ๋ ์์ผ์ผ๋ก ์ ์กํ๋ค.
-
์ ์ ๋ ๊ณต๋ถ๋ฐฉ์ ๋ค๋ฅธ ์ ์ ๋ค๊ณผ ์ฑํ
ํ ์ ์๋ค.
- ๋ฉ์์ง๋ฅผ ์ ๋ ฅํ๊ณ ์ ์กํ ์ ์๋ค.
- ์ฑํ ์์ผ์ ๋ค๋ฅธ ์ ์ ๋ค์๊ฒ ๋ฉ์์ง๋ฅผ ์ ์กํ ์ ์๋ค.
- ์ฑํ ์์ผ์์ ๋ค๋ฅธ ์ ์ ๋ค์ ๋ฉ์์ง๋ฅผ ์์ ํ ์ ์๋ค.
- ๊ณต๋ถ๋ฐฉ ์ฐธ์ฌ ์ ์ ์ ์ฑํ ์ด ์์์๋ถํฐ ์์ธ๋ค.
-
์ ์ ๋ ๊ณต๋ถ ์๊ฐ์ ๊ธฐ๋กํ ์ ์๋ค.
- ์ ์ ๋ณ ํ์ด๋จธ๋ฅผ ๊ฐ์ง๋ค.
- ํ์ด๋จธ๋ฅผ ์์/์ผ์ ์ ์งํ ์ ์๋ค.
- ๋ธ๋ผ์ฐ์ ์ ์ฅ์์ ์ ์ ๋ณ ํ์ด๋จธ ์๊ฐ์ ์ ์ฅํ๋ค.
-
๊ณตํต ๊ฐ๋ฐ ํ๊ฒฝ ์ค์
- Typescript ์ค์ ์ ์๋ฃํ๋ค.
- Prettier ์ค์ ์ ์๋ฃํ๋ค.
- ESLint ์ค์ ์ ์๋ฃํ๋ค.
-
FE ๊ฐ๋ฐ ํ๊ฒฝ ์ค์
- React ํ๊ฒฝ ์ค์ ์ ์๋ฃํ๋ค.
- ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์ ์ ์๋ฃํ๋ค.
- ์คํ์ผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์ ์ ์๋ฃํ๋ค.
- ํธ๋์คํ์ผ๋ฌ + ๋ฒ๋ค๋ฌ ์ค์ ์ ์๋ฃํ๋ค.
- Mock ํ๊ฒฝ ์ค์ ์ ์๋ฃํ๋ค.
- ํ ์คํ ํ๊ฒฝ ์ค์ ์ ์๋ฃํ๋ค.
-
BE ๊ฐ๋ฐ ํ๊ฒฝ ์ค์
- ncloud ํด๋ผ์ฐ๋ ์๋ฒ๋ฅผ ์์ฑํ๋ค.
- API ์๋ฒ ์ค์ ์ ์๋ฃํ๋ค.
- ์น์์ผ ์ฑํ ์๋ฒ ์ค์ ์ ์๋ฃํ๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง๋ฅผ ์์ฑํ๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ๋ฅผ ์ค์นํ๋ค.
- WebRTC ํ๊ฒฝ(STUN, TURN ์๋ฒ)๋ฅผ ๊ตฌ์ถํ๋ค.
- ์น์๋ฒ(nginx, apache)๋ฅผ ๋ฆฌ๋ฒ์ค ํ๋ก์ ์๋ฒ๋ก ์ค์ ํ๋ค.
- ํ์ํ๋ฉด ๋๋ฉ์ธ ์ค์ ๊ณผ TLS๋ ์ค์ ํ๋ค.
๊ณต๋ถ๋ฐฉ ์ญ์ ์ ์ฑ
- ๊ณต๋ถ๋ฐฉ ๊ตฌ์ฑ์ ๋ชจ๋๊ฐ ๊ณต๋ถ๋ฐฉ์ ์ญ์ ํ ์ ์๋ค.
- ๊ณต๋ถ๋ฐฉ์ ์์ฑํ ๊ตฌ์ฑ์๋ง ๊ณต๋ถ๋ฐฉ์ ์ญ์ ํ ์ ์๋ค.
- ๊ณต๋ถ๋ฐฉ ๊ตฌ์ฑ์์ด ์๋ฌด๋ ์์ผ๋ฉด ๊ณต๋ถ๋ฐฉ์ ์๋ ์ญ์ ํ๋ค.
- ๐ง ํ ๋น๋ฉ ๋ฐ ๋ธ๋์น ์ ๋ต
- ๐ง ์ฃผ์ ์ ์ ๋ฐ ํ ํ๋ฆฟ ์์ฑ
- ๐ป ํ๋ก์ ํธ ์ด๋ฆ ๋ฐ ๋ก๊ณ ์ ํ๊ธฐ
- ๐ป ๊ธฐํ ์ธ๋ถ์ฌํญ ์ ํ๊ธฐ
- ๐ป ๊ธฐ์ ์คํ ์์
- ๐ป ๋ฐฑ๋ก๊ทธ ์ด์ ์์ฑ
- ๐ป ๊นํ๋ธ ์ํค
- ๐ ๊ธฐํ ๋ฐ MVP ์ ์ง ํ์
- 2๏ธโฃ ์คํ๋ฆฐํธ 2 ์ฃผ๊ฐ ๊ณํ
- ๐งญ ๊ณตํต ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ํ
- ๐ฆบ ์ด๋ฒคํธ ํ๋ฆ๋
- ๐ฅ ๋ฐฑ์๋ ์๊ทธ๋๋ง ์๋ฒ ๋ฌธ์
- ๐ฝ ์คํ๋ฆฐํธ 5โ 6 ๋ฐฉํฅ์ฑ
- ๐ ์ต์ข ๋ฐํ ์ค๋น
- ๐ฟ Github Actions CD(์๋๋ฐฐํฌ)
- ๐ API
- โซ forEach๋ async๋ฅผ ๊ธฐ๋ค๋ ค์ฃผ์ง ์๋๋ค
- ๐งช WebRTC SFU ๋ฐ๋ชจ
- ๐ TURN ์๋ฒ ์ธ์ฆ ๋ฐฉ์
- ๐ ๏ธ [ํธ๋ฌ๋ธ์ํ ] /socket.io ๊ฒฝ๋ก๋ก ์ง์์ ์ผ๋ก HTTP ์์ฒญ์ ๋ณด๋ด๋ ๋ฌธ์
- ๐น WebRTC ํ์ํ์์์ ์นด๋ฉ๋ผ ์ํ์ ๋ฐ๋ฅธ ์์คํ ์์ ์ฌ์ฉ๋ ๋ถ์
- ๐ฅ ๋์นญ NAT์์์ WebRTC ์ฐ๊ฒฐ ์๋ฆฝ ๊ณผ์
- ๐ ํ ์คํธ ์ฝ๋์ ๋ชจํน