
๐ค ๊ฐ์
์ค๋ง์ผ๊ฒ์ดํธ ์คํ ๋ธ์์ DEV CAMP ์ธํด ํ๋์ ์งํํ๋ฉฐ ๋ง๋ ํ๋ก์ ํธ์ด๋ค.
์์ฑ ์ฑํ
, ํ
์คํธ ์ฑํ
์ ๋ด์ฅํ ์ดํ๋ฆฌ์ผ์ด์
์ด๋ฉฐ ์น๊ณผ ์ฑ์ผ๋ก ์ฌ์ฉ๊ฐ๋ฅํ๋๋ก ์น ๋ฒ์ , ๋ชจ๋ฐ์ผ ๋ฒ์ ์ผ๋ก ๊ฐ๋ฐํ๋ค.
๊ธฐ์ ์คํ
Front-end : VueJS(Web), Android(Mobile), WebRTC(์์ฑ ํผ์ด ์ฐ๊ฒฐ)
Back-end : Spring boot, Spring WebSocket (STOMP Pub/Sub), Spring Security, Redis, MariaDB, CoTRUN
Infra : Aws S3, Aws RDS, Aws Elastic LoadBalance, Nginx
ํ์
: GIT, GitLab, Zira
์ญํ
์๊ทธ๋๋ง ์๋ฒ ๊ตฌ์ถ
- WebRTC ์ ์ก ์ ๋ณด ์ค๊ณ ๋ก์ง ๊ตฌํ ( ์ฐธ๊ณ : https://withseungryu.tistory.com/category/WebRTC )
- ์์ฑ ์ฑํ ๋ฐฉ ์ ์ฅ ๋ฐ ํด์ฅ ๋ก์ง ๊ตฌํ
- ๋ค์ค ์ธ์คํด์ค ํ๊ฒฝ ๊ตฌ์ถ ( ์ฐธ๊ณ : https://withseungryu.tistory.com/139?category=931345 )
ํ ์คํธ ์ฑํ ์๋ฒ ๊ตฌ์ถ
- ํ ์คํธ ์ฑํ ๋ฐฉ ์ ์ฅ ๋ฐ ํด์ฅ ๋ก์ง ๊ตฌํ
- ๋ฉ์ธ์ง DB & FILE ๋ก๊น
- RabbitMQ STOMP Broker ์ฌ์ฉ
์น ํ๋ก ํธ ๊ตฌํ
- ์์ฑ ์ฑํ ๊ธฐ๋ฅ ๋ฐ UI ๊ตฌํ
- ์์ฑ ์ปจํธ๋กค ๊ธฐ๋ฅ ๊ตฌํ
- ๋น๋๊ธฐ ์ฒ๋ฆฌ
์ ์ฒด ์ํคํ ์ฒ

์ธ์ฆ ์ฑ๋ ์ํคํ ์ฒ

ํ ์คํธ ์ฑํ ์ํคํ ์ฒ

์์ฑ ์ฑํ ์ํคํ ์ฒ


์์ฑ ํต์ ๊ธฐ๋ฅ์ ๊ตฌํ์ ์ํ Peer ์ฐ๊ฒฐ๋ก Full Mesh ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋๋ฐ,
Full Mesh๋ฅผ ์ฌ์ฉํ ์ด์ ๋ ํด๋น ์ดํ๋ฆฌ์ผ์ด์
์ ์ค๊ณํ ๋ ์ต๋ ์ธ์์ 8์ธ ์ดํ๋ก ์ค์ ํด๋์๊ณ ,
์์๋ฐ์ดํฐ๊ฐ ์๋ ์์ฑ๋ฐ์ดํฐ๋ง์ ์ง์ํ๊ธฐ ๋๋ฌธ์ Full Mesh ๊ตฌ์กฐ๋ฅผ ์ ํํ๋ค.
๐ค ์ฑ๊ณผ ๋ฐ ๋ฌ์ฑ
์์ฑ์ฑํ
- WebRTC๋ฅผ ์ํ ์ฌ์ฉ์์ ๋คํธ์ํฌ ์ ๋ณด ๊ตํ ( ICE candidate ), ๋ฏธ๋์ด ์ ๋ณด ๊ตํ, ์ธ์ ์ปจํธ๋กค ์ํ
- ๋ณด์์ ์ํ ์ธ์ ์ฐ๊ฒฐ ์ JWT๋ฅผ ์ฌ์ฉํด AUTH ์๋ฒ๋ก ์ธ์ฆ
- ๋ค์ค ์ธ์คํด์ค ํ๊ฒฝ ๊ด๋ฆฌ๋ฅผ ์ํด ๊ฐ ์ธ์คํด์ค์ ์ฐ๊ฒฐ๋ ์ธ์ ์๋ฅผ Redis์ ์บ์ฑ
- ๋ฐฉํ๋ฒฝ์ ์ํ Symmetric NAT ํ๊ฒฝ์ ๋๋นํ ๋ฆด๋ ์ด ํต์ ์ ์ง์ํด์ฃผ๋ TURN ์๋ฒ ๊ตฌ์ถ
์ฐธ๊ณ : https://withseungryu.tistory.com/138?category=917456
[WebRTC] TURN ์๋ฒ์ ํ์์ฑ
WebRTC ๊ธฐ์ ์ ์ฌ์ฉํด ์์ฑ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค์ด ํ ์คํธํ๋ ์ค P2P ์ฐ๊ฒฐ์ด ์ ์ ๋๋ ๋ฌธ์ ๊ฐ ์์๋ค. ์์ธ์ ์ฐพ์๋ณด๋ ค๊ณ ์ฝ๋๋ฅผ ๊ณ์ ์์ ํ์ง๋ง ์คํ์ด ๋์ง ์์๋ค. ๊ทธ๋ฌ๋ ์ค LTE๋ฅผ ์ฌ์ฉํ๊ณ
withseungryu.tistory.com


ํ ์คํธ์ฑํ
- ๋ฉ์์ง์ ํจ์จ์ ์ธ ์ ์ก์ ์ํ STOMP ํ๋กํ ์ฝ ์ฌ์ฉ
- ๋ณด์์ ์ํ ์ธ์ ์ฐ๊ฒฐ ์ JWT๋ฅผ ์ฌ์ฉํด AUTH ์๋ฒ๋ก ์ธ์ฆ๊ณผ ๋ฉ์์ง ๋ก๊น
- ํ์ฅ์ฑ, ๊ฒฐํจ ํ์ฉ์ฑ, ๊ฐํธํ ๋ชจ๋ํฐ๋ง์ ์ํ External Broker๋ก RabbitMQ STOMP ๋ธ๋ก์ปค ์ฌ์ฉ

๐ค ๋ฐํ ์์
'Project' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฏธํ ์์ ๋ง๋ ์ฌ์ด (0) | 2021.01.09 |
---|---|
[์ค๋งํธ ์ํฐ] AI Express ( ๋ฅ๋ฌ๋์ ํ์ฉํ ์ด์ฌ ์ง์ญ ์ถ์ฒ ํ๋ซํผ ) (9) | 2020.12.26 |
[Vue] ์ํ ํํฐ ๊ตฌํํ๊ธฐ (feat. Typescript, ToastUI Chart) (0) | 2020.06.27 |
[GCSU] Medical System ๊ตฌ์ถํ๊ธฐ (feat. G.Y.C) (0) | 2020.04.05 |
[๋ฉ์์ด ์ฌ์์ฒ๋ผ 4๊ธฐ] ์์ธ์๋ฆฝ๋ ์ถ์ ์ฌ์ดํธ - ๋ชจ๋ฐ์ผ ๋ฒ์ - (0) | 2020.02.13 |