๐ ์๋ฒ์ ํด๋ผ์ด์ธํธ์ ํต์ ๋ฐฉ๋ฒ ํ๋ฒ์ ์ ๋ฆฌํด ๋๋ฆผ
์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ์ ํต์ ๋ฐฉ๋ฒ์ ์๋ ์ ๊ฑธ์ณ ์ฌ๋ฌ ๋ฐฉ๋ฒ์ด ๊ฐ๋ฐ๋์๋๋ฐ์, ๊ฐ ๋ฐฉ๋ฒ์๋ ๊ณ ์ ํ ์ฅ์ ๊ณผ ๋จ์ ์ด ์์ต๋๋ค. ์ ๋ชฉ์ด ๋ค์ ์๊ทน์ (?) ์ ๋๋ค๋ง, ์ด์ ๋ํด ์ ์ ๋ฆฌ๋ ์ข์ ๊ธ์ด ์์ด ๋ง์ ๋ถ๋ค์ด ๋ณด์๋ฉด ์ข์๋ฏ ํ์ฌ ์ด๊ทธ๋ก๋ฅผ ํ๋ฒ ๋์ด๋ณด์์ต๋๋ค. ๊ธ์์ ์ ๋ฆฌํ ํต์ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๐ Long-Polling ํด๋ผ์ด์ธํธ๊ฐ ์ ๊ธฐ์ ์ผ๋ก ์๋ฒ์ ๋ฐ๋ณต์ ์ผ๋ก ์์ฒญํ๋ ์ผ๋ฐ Polling ๊ณผ ๋ฌ๋ฆฌ Long-Polling ์ ์๋ก์ด ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋๊น์ง ์๋ฒ์์ Connection ์ ์ ์งํจ์ผ๋ก์จ ์๋ฒ์ ์๋ก์ด ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด ์ฆ๊ฐ ์๋ต์ ๋ฐ์ ์ ์์ต๋๋ค. ๋จ, ์๋ต์ ๋ฐ์ผ๋ฉด ์๋ฒ์์ Connection ์ ์ข ๋ฃ๋ฉ๋๋ค. ์๋ฒ์ ์๋ต์ ๋ฐ์ ์งํ ํด๋ผ์ด์ธํธ๋ ์๋ก์ด Long-Polling ์์ฒญ์ ๋ค์ ์์ํ๊ณ ์ด๋ฌํ ํ๋ก์ธ์ค๊ฐ ๋ฐ๋ณต๋ฉ๋๋ค. ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ๋ณด๋ค ์ฆ๊ฐ์ ์ธ ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ๊ฐ ๊ฐ๋ฅํ๊ณ ๋ถํ์ํ ๋คํธ์ํฌ ํธ๋ํฝ๊ณผ ์๋ฒ ๋ถํ๊ฐ ์ค์ด๋ญ๋๋ค. ๐ WebSocket WebSocket ์ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ๋จ์ผ ์ฅ๊ธฐ ์ฐ๊ฒฐ์ ํตํด ์ ์ด์ค ํต์ ์ฑ๋์ ์ ๊ณตํฉ๋๋ค. ์ด ๊ธฐ์ ์ ์ฌ์ฉํ๋ฉด ๋ธ๋ผ์ฐ์ ์ ์๋ฒ๊ฐ HTTP ์์ฒญ-์๋ต ์ฃผ๊ธฐ์ ์ค๋ฒํค๋ ์์ด ๋ฐ์ดํฐ๋ฅผ ๊ตํํ ์ ์์ด ๋ผ์ด๋ธ ์ฑํ , ๊ฒ์ ๋๋ ๊ธ์ต ๊ฑฐ๋ ํ๋ซํผ๊ณผ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์๊ฐ ๋ฐ์ดํฐ ์ ์ก์ด ์ฉ์ดํด์ง๋๋ค. WebSocket ์ ์ฐ๊ฒฐ์ด ์ค์ ๋ ํ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ์ ์๋๋ก ํจ์ผ๋ก์จ ์งง์ ๋๊ธฐ ์๊ฐ๊ณผ ๋์ ๋น๋์ ์ ๋ฐ์ดํธ๊ฐ ํ์ํ ์๋๋ฆฌ์ค์ ์ด์์ ์ ๋๋ค. ๐ Server-Sent-Events(SSE) Server-Sent-Events(SSE) ๋ HTTP ๋ฅผ ํตํด ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ ๋ฐ์ดํธ๋ฅผ ํธ์ํ๋ ํ์ค ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. WebSocket ๊ณผ ๋ฌ๋ฆฌ Server-Sent-Events ๋ ์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก์ ๋จ๋ฐฉํฅ ํต์ ์ ์ฉ์ผ๋ก ์ค๊ณ๋์์ผ๋ฏ๋ก ๋ผ์ด๋ธ ๋ด์ค ํผ๋, ์คํฌ์ธ ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ ๋๋ ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ์ง ์๊ณ ํด๋ผ์ด์ธํธ๋ฅผ ์ค์๊ฐ์ผ๋ก ์ ๋ฐ์ดํธํด์ผ ํ๋ ๋ชจ๋ ์ํฉ์ ์ด์์ ์ ๋๋ค. Server-Sent-Events ๋ ์๋ฒ๊ฐ ์ ์ฒด ๋ณธ๋ฌธ์ ํด๋ผ์ด์ธํธ์ ํ ๋ฒ์ ์ ์กํ๊ณ ๋๋ด๋๊ฒ ์๋ ์ฐ๊ฒฐ์ ์ด์ด๋๊ณ ์ด๋ฒคํธ๋ฅผ ์ ์กํด์ผ ํ ๋๋ง๋ค ํ ์ค์ฉ ์ ์กํ์ฌ ์๋ต์ ๋ณด๋ด๋ ๋จ์ผ HTTP ์์ฒญ์ผ๋ก ์ดํดํ ์ ์์ต๋๋ค. ๐ WebTransport API WebTransport ๋ ์น ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ํจ์จ์ ์ด๊ณ ๋๊ธฐ ์๊ฐ์ด ์งง์ ํต์ ์ ์ํด ์ค๊ณ๋ ์ต์ API ์ ๋๋ค. HTTP/3 QUIC ํ๋กํ ์ฝ์ ํ์ฉํ์ฌ ์ ๋ขฐํ ์ ์๋ ๋ฐฉ์๊ณผ ์ ๋ขฐํ ์ ์๋ ๋ฐฉ์์ผ๋ก ์ฌ๋ฌ ์คํธ๋ฆผ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ณ ๋ฐ์ดํฐ๊ฐ ์์ ์์ด ์ ์ก๋๋๋ก ํ์ฉํ๋ ๋ฑ ๋ค์ํ ๋ฐ์ดํฐ ์ ์ก ๊ธฐ๋ฅ์ ํ์ฑํํฉ๋๋ค. ์ด๋ก ์ธํด WebTransport ๋ ์ค์๊ฐ ๊ฒ์, ๋ผ์ด๋ธ ์คํธ๋ฆฌ๋ฐ ๋ฐ ํ์ ํ๋ซํผ๊ณผ ๊ฐ์ ๊ณ ์ฑ๋ฅ ๋คํธ์ํน์ด ํ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๊ฐ๋ ฅํ ๋๊ตฌ๊ฐ ๋ฉ๋๋ค. ๐ WebRTC WebRTC (Web Real-Time Communication)๋ ๋ณต์กํ ์๋ฒ ์ธํ๋ผ๋ ์ถ๊ฐ ํ๋ฌ๊ทธ์ธ ์ค์น ์์ด ์น ๋ธ๋ผ์ฐ์ ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ๋ด์์ ์ง์ ์ค์๊ฐ ํต์ (RTC) ๊ธฐ๋ฅ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ์คํ ์์ค ํ๋ก์ ํธ์ด์ API ํ์ค์ ๋๋ค. ์คํธ๋ฆฌ๋ฐ ์ค๋์ค, ๋น๋์ค ๋ฐ ๋ธ๋ผ์ฐ์ ๊ฐ์ ๋ฐ์ดํฐ ๊ตํ์ ์ํ P2P ์ฐ๊ฒฐ์ ์ง์ํฉ๋๋ค. WebRTC ๋ NAT ๋ฐ ๋ฐฉํ๋ฒฝ์ ํตํด ์๋ํ๊ณ ICE, STUN ๋ฐ TURN๊ณผ ๊ฐ์ ํ๋กํ ์ฝ์ ํ์ฉํ์ฌ ํผ์ด ๊ฐ์ ์ฐ๊ฒฐ์ ์ค์ ํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. ๊ฐ ํต์ ๋ฐฉ์์ ๋ํ ์์ธํ ๋ด์ฉ๊ณผ ๋จ์ ๋ฐ ํ๊ณ๋ ๊ณต์ ๋๋ฆฐ ์๋ฌธ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์. ๐ ์๋ฌธ * https://rxdb.info/articles/websockets-sse-polling-webrtc-webtransport.html