OpenVidu๊ฐ ๋ญ๊น?
์ฐ๋ฆฌ์ ์น ํ๋ก์ ํธ ๋์ ํ๋ฆ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ์น ํ์ด์ง ์ ์
- vue๋ก ๊ตฌํํ ํ๋ก ํธ์๋ ํด๋ผ์ด์ธํธ ํ์ด์ง๊ฐ ๋์์ง๋ค.
- ํ๋ก ํธ ๋จ์์ ํด๋ผ์ด์ธํธ๊ฐ http ์์ฒญ์ ๋ณด๋ธ๋ค.
- spring์ผ๋ก ๊ตฌํํ ๋ฐฑ์๋ ์๋ฒ๊ฐ http ์์ฒญ์ ๋ฐ์ ์ฒ๋ฆฌํ๋ค.
- ๋ฐฑ์๋ ๋จ์์ ์๋ฒ๊ฐ http ์๋ต์ ๋ณด๋ธ๋ค.
- ํ๋ก ํธ์๋ ํด๋ผ์ด์ธํธ ํ์ด์ง๋ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ ์๋ต ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค.
์ฆ vue ํด๋ผ์ด์ธํธ + spring ์๋ฒ ๋ก ๊ตฌ์ฑ๋ ์ํ
์ฌ๊ธฐ์ ํด๋ผ์ด์ธํธ๋ผ๋ฆฌ ์ค์๊ฐ์ผ๋ก ํ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ(WebRTC) ์ํด ๋ฏธ๋์ด ์๋ฒ๋ฅผ ์ถ๊ฐํ๋ค.(์ฌ์ค ํ๋ก ํธ ๋จ(ํด๋ผ์ด์ธํธ)์์ P2P ํต์ ์ด ๊ฐ๋ฅํ์ง๋ง ๋ถํ๊ฐ ๋ง์ด ๊ฑธ๋ฆด ๊ฒฝ์ฐ ์ด๋ฅผ ๊ฐ๋นํ์ง ๋ชปํ๊ฒ ๋จ. ๋ฐ๋ผ์ ํด๋ผ์ด์ธํธ ์ฌ์ด์ ๋ฏธ๋์ด ์๋ฒ๋ฅผ ๊ตฌ์ถํ์ฌ ๊ฐ ํด๋ผ์ด์ธํธ์ ์์ฒญ๊ณผ ์๋ต์ ๋ฏธ๋์ด ์๋ฒ๊ฐ ๊ฐ๋นํ๋๋ก ํ๋ค. ๋ง์น happyhouse ํ๋ก์ ํธ๋ฅผ ํ ๋ ํ๋ก ํธ์์ ๊ณต๊ณต๋ฐ์ดํฐ ํฌํธ๋ก ๋ฐ์ดํฐ๋ฅผ ์์ฒญํด์ ๋ฐ์ ์ ์์์ง๋ง cors ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ฒ๋ผ(๋ถํ์ ๊ด๋ จ๋ ๋ฌธ์ ๋ ์๋์ง๋ฏผ) ํด๋ผ์ด์ธํธ๋ผ๋ฆฌ ์ง์ ํต์ ํ๋ฉด ์ฌ๋ฌ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์)
WebRTC(Web Real-Time Communication) : ์น ๋ธ๋ผ์ฐ์ (ํด๋ผ์ด์ธํธ) ๊ฐ ํต์ ์ ์ํ API. ํ์, ์์ฑ ๋ฑ์ ๋ฐ์ดํฐ๋ฅผ ํต์ ํ์ฌ ์ฌ์ฉ์ ๊ฐ ํตํ, ํ์ผ ์ก์์ ์ ๊ฐ๋ฅํ๊ฒ ํจ
Kurento๋ผ๋ ๋ฏธ๋์ด ์๋ฒ๋ฅผ ์ฌ์ฉํ ๊ฒ์ด๊ณ ์ด๋ฅผ ๊ตฌํํด๋ OpenVidu API๋ฅผ ์ฌ์ฉํ๋ค. ์ด์ ์ฐ๋ฆฌ ํ๋ก์ ํธ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์์ง๋ค.
vue ํด๋ผ์ด์ธํธ + ์๋ฒ 2๊ฐ(์ ํ๋ฆฌ์ผ์ด์ ์ฉ ์๋ฒ(spring ์๋ฒ), webRTC ์ฉ ์๋ฒ(OpenVidu ์๋ฒ))
์ฐ๋ฆฌ ํ๋ก์ ํธ์์๋ AWS์ ํด๋ผ์ฐ๋ Linux ์๋ฒ ํ๊ฒฝ์ด๋ค. ๋ฆฌ๋ ์ค ์๋ฒ์ ๋์ปค๋ฅผ ํ์ฉํ์ฌ ์ฐ๋ฆฌ ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ์ธ spring ๋ฐฑ์๋ ์๋ฒ๋ฅผ ๋น๋ํ๊ณ ๋ฐฐํฌํ๋ค. ์ด์ ์ฐ๋ฆฌ ์๋ฒ๋ www์ ๊ณต๊ฐ๋์ด ์ด๋์๋ ์ ์ํ ์ ์๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก OpenVidu ์๋ฒ๋ ๋น๋ํ๊ณ ๋ฐฐํฌํ๋ค.
๋์ ํ๋ฆ์์ ํด๋ผ์ด์ธํธ์ ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ์ ํต์ ์ http ํต์ ์ผ๋ก ์ด๋ฃจ์ด์ง๊ฒ ์ง๋ง, ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ์ ๋ฏธ๋์ด ์๋ฒ์ ํต์ ์ WebSocket์ผ๋ก ์ด๋ฃจ์ด์ง๋ค.(์๋ง?) ์ถ๊ฐ๋ ํ๋ฆ๋ง ํ์ธํ๋ฉด ๋ค์๊ณผ ๊ฐ์์ง๋ค.
- ์น ํ์ด์ง ์ ์
- vue๋ก ๊ตฌํํ ํ๋ก ํธ์๋ ํด๋ผ์ด์ธํธ ํ์ด์ง๊ฐ ๋์์ง๋ค.
- ํ๋ก ํธ ๋จ์์ ํด๋ผ์ด์ธํธ๊ฐ http ์์ฒญ์ ๋ณด๋ธ๋ค.
- spring์ผ๋ก ๊ตฌํํ ๋ฐฑ์๋ ์๋ฒ๊ฐ http ์์ฒญ์ ๋ฐ๋๋ค.
- spring ๋ฐฑ์๋ ์๋ฒ๊ฐ ๋ค์ OpenVidu ์๋ฒ๋ก WebSocket ์์ฒญ์ ๋ณด๋ธ๋ค.
- OpenVidu ์๋ฒ๊ฐ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ spring ๋ฐฑ์๋ ์๋ฒ๋ก WebSocket ์๋ต์ ๋ณด๋ธ๋ค.
- spring ๋ฐฑ์๋ ์๋ฒ๊ฐ WebSocket ์๋ต์ ๋ฐ์ ๋๋จธ์ง ๋น์ฆ๋์ค ๋ก์ง์ ์ฒ๋ฆฌํ๋ค.
- ๋ฐฑ์๋ ๋จ์์ ์๋ฒ๊ฐ http ์๋ต์ ๋ณด๋ธ๋ค.
- ํ๋ก ํธ์๋ ํด๋ผ์ด์ธํธ ํ์ด์ง๋ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ ์๋ต ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค.
WebSocket : ์ค์๊ฐ ํต์ ์ ์ ํฉํจ
๋ด๊ฐ ์ง๊ธ๊น์ง ์ดํดํ ๋ด์ฉ์ ์ด์ ๋.