์ค์๊ฐ ์์คํ ์ํคํ ์ฒ: WebSockets ๋ฐ SignalR
์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ํจ์จ์ ์ด๊ณ ์ํํ ํต์ ์ ์ํด WebSocket๊ณผ SignalR ๊ฐ์ ์ฌ์ธต ๋น๊ต ๋ฐ โโํ๊ฐ๋ฅผ ํตํด ์ค์๊ฐ ์์คํ ์ํคํ ์ฒ์ ์ธ๊ณ๋ฅผ ํ์ํ์ธ์.

์ค์๊ฐ ์์คํ ์ ์ด๋ฒคํธ์ ์๋ตํ๊ณ ์ค์๊ฐ์ผ๋ก ๋ฐ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋๋ก ์ค๊ณ๋ ์ปดํจํ ์์คํ ์ ๋๋ค. ๊ธ์ต, ๋ฌผ๋ฅ, ๊ฒ์, ํฌ์ค์ผ์ด ๋ฑ ๋ค์ํ ์์ญ์ ์ ๋ฌด๋ฅผ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ์ฌ ์ธ๋ถ ์ด๋ฒคํธ์ ์๊ธฐ์ ์ ํ๊ณ ์ ํํ๊ฒ ๋์ํฉ๋๋ค. ์ค์๊ฐ ์์คํ ์ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ํํ ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ์ต์ ์ํํธ์จ์ด ๊ฐ๋ฐ ์์ ๋งค์ฐ ์ค์ํฉ๋๋ค.
๊ฐ๋ฐ์๊ฐ ์ค์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด ๋ค์ํ ๊ธฐ์ ๊ณผ ํ๋กํ ์ฝ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๋ฌํ ํ๋กํ ์ฝ ์ค ์ผ๋ถ์๋ ๋ค์ํ ์ฑ๋ฅ ์์ค, ๋๊ธฐ ์๊ฐ ๋ฐ ๊ตฌํ ์ฉ์ด์ฑ์ ์ ๊ณตํ๋ WebSockets , SignalR, SSE(Server-Sent Events) ๋ฐ Long Polling์ด ํฌํจ๋ฉ๋๋ค. ์ค์๊ฐ ํต์ ์ ์ ํฉํ ๊ธฐ์ ์ ์ ํํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ ํจ์จ์ฑ๊ณผ ์๋ต์ฑ์ ์๋นํ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ์ด ๊ธฐ์ฌ์์๋ ์ค์๊ฐ ์์คํ ์ํคํ ์ฒ์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ ๊ฐ์ง ์๋ฃจ์ ์ธ WebSockets ๋ฐ SignalR์ ๋ํด ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์๋ ๋ฐฉ์, ์ด์ , ์ฌ์ฉ ์ฌ๋ก ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ํฉํ ์๋ฃจ์ ์ ์ ํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
WebSocket ์ดํด
WebSocket์ ๋จ์ผ ์๊ตฌ ์ฐ๊ฒฐ์ ํตํด ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ง์ ํ ์ค์๊ฐ ์๋ฐฉํฅ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ํต์ ํ๋กํ ์ฝ์ ๋๋ค. ๊ธฐ์กด์ ์์ฒญ-์๋ต ๋ชจ๋ธ๊ณผ ๋ฌ๋ฆฌ WebSocket์ ๋๊ธฐ ์๊ฐ์ด ์งง์ ์ ์ด์ค ์ฐ๊ฒฐ์ ์ ์งํ์ฌ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ง์์ ์ธ ๋ฐ์ดํฐ ์ ์ก์ ํ์ฉํฉ๋๋ค. WebSocket ํ๋กํ ์ฝ์ HTTP ๋ฐ HTTPS(๊ฐ๊ฐ ํฌํธ 80 ๋ฐ 443)์ ๋์ผํ ํฌํธ์์ ์๋ํ๋๋ก ์ค๊ณ๋์ด ๊ธฐ์กด ์น ์ธํ๋ผ์ ํธํ๋ฉ๋๋ค.
WebSocket์ ์ด๊ธฐ HTTP ํธ๋์ ฐ์ดํฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐ์ ์ค์ ํ ๋ค์ WebSocket ํ๋ ์์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์กํฉ๋๋ค. ์ฐ๊ฒฐ์ด ์ค์ ๋๋ฉด ๋ฐ์ดํฐ๊ฐ ์๋ฐฉํฅ์ผ๋ก ๋์์ ํ๋ฅผ ์ ์์ผ๋ฏ๋ก ๋๊ธฐ ์๊ฐ์ด ์ค์ด๋ค๊ณ ์จ๋ผ์ธ ์ฑํ , ์๋ฆผ ๋ฐ ๋ผ์ด๋ธ ์ ๋ฐ์ดํธ์ ๊ฐ์ ์ค์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด์์ ์ ๋๋ค. WebSocket ์ฌ์ฉ์ ์ด์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์งง์ ๋๊ธฐ ์๊ฐ: WebSocket์ ์ง์์ ์ธ ์ฐ๊ฒฐ์ ์ ๊ณตํ์ฌ ์ฐ๊ฒฐ์ ๋ง๋ค๊ณ ๋ซ๋ ์ค๋ฒํค๋๋ฅผ ์ค์ฌ ๋๊ธฐ ์๊ฐ์ ๋ฎ์ถฅ๋๋ค.
- ์ ์ด์ค ํต์ : ์๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ ํตํด ์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ๋์์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ณ ๋ฐ์ ์ ์์ผ๋ฏ๋ก ์ค์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ต์ฑ์ด ํฅ์๋ฉ๋๋ค.
- ํธํ์ฑ: WebSocket์ HTTP ๋ฐ HTTPS ํฌํธ๋ฅผ ํตํด ์๋ํ๋ฏ๋ก ๊ธฐ์กด ์น ์ธํ๋ผ์ ํธํ๋ฉ๋๋ค.
- ํ์ฅ์ฑ: WebSocket ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ก๋ ๋ฐธ๋ฐ์ฑ ๋ฐ ์ํ ํ์ฅ๊ณผ ๊ฐ์ ๋ค์ํ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ํ์ฅํ ์ ์์ต๋๋ค.
์ฌ์ ํ WebSocket์๋ ์ ์ฌ์ ์ธ ๋จ์ ์ด ์์ผ๋ฉฐ ๋ชจ๋ ์๋๋ฆฌ์ค์ ์ ํฉํ์ง ์์ ์ ์์ต๋๋ค. WebSocket ์ฌ์ฉ์ ๋ช ๊ฐ์ง ๋จ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋ณต์ก์ฑ: ์ฐ๊ฒฐ ์ค์ , ์ค๋ฅ ์ฒ๋ฆฌ ๋ฐ ๋ฉ์์ง ํ๋ ์ด๋ฐ์ ์๋์ผ๋ก ๊ด๋ฆฌํด์ผ ํ๋ฏ๋ก WebSocket ๊ธฐ๋ฐ ์์คํ ์ ๊ตฌํํ๋ ๊ฒ์ SignalR๊ณผ ๊ฐ์ ์์ ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ์ด๋ ค์ธ ์ ์์ต๋๋ค.
- ์ ํ๋ ์ง์: ๋๋ถ๋ถ์ ์ต์ ๋ธ๋ผ์ฐ์ ๊ฐ WebSocket ํ๋กํ ์ฝ์ ์ง์ํ์ง๋ง ์ผ๋ถ ๊ตฌํ ๋ธ๋ผ์ฐ์ ๋ฐ ํ๋ซํผ์ ์ด๋ฅผ ์ง์ํ์ง ์์ ๋๋ฌ ๋ฒ์๊ฐ ์ ํ๋ ์ ์์ต๋๋ค.
SignalR ์์ํ๊ธฐ
SignalR์ ์ค์๊ฐ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ์ ๊ฐ์ํํ๋ ์คํ ์์ค Microsoft ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์๋ฐฉํฅ ํต์ ์ ์ถ๊ฐํ์ฌ WebSocket, Server-Sent Events ๋ฐ Long Polling๊ณผ ๊ฐ์ ๋ค์ํ ์ ์ก ํ๋กํ ์ฝ์ ๋ํ ์ถ์ํ๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค. SignalR์ ํด๋ผ์ด์ธํธ ๋ฐ ์๋ฒ ๊ธฐ๋ฅ์ ๊ธฐ๋ฐ์ผ๋ก ์ต์์ ํต์ ๋ฐฉ๋ฒ์ ์๋์ผ๋ก ์ ํํ์ฌ ์ต์ ์ ์ฑ๋ฅ๊ณผ ํธํ์ฑ์ ๋ณด์ฅํฉ๋๋ค.

์ด๋ฏธ์ง ์ถ์ฒ: ๋ง์ดํฌ๋ก์ํํธ ๋ฐ
SignalR์ ์ฌ์ฉํ๊ธฐ ์ฌ์ด API๋ฅผ ์ ๊ณตํ์ฌ .NET์ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ์ค์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํฉ๋๋ค. ๊ฐ๋ฐ์๋ ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ์ ์ฒ๋ฆฌํ๊ณ , ํด๋ผ์ด์ธํธ ํํ์ ๊ด๋ฆฌํ๊ณ , ์ฐ๊ฒฐ๋ ํด๋ผ์ด์ธํธ์ ๋ฉ์์ง๋ฅผ ๋ธ๋ก๋์บ์คํธํ๋ ์๋ฒ ์ธก ํ๋ธ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. SignalR์ฉ ํด๋ผ์ด์ธํธ ์ธก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ JavaScript, .NET ๋ฐ Java๋ฅผ ๋น๋กฏํ ๋ค์ํ ํ๋ซํผ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. SignalR ์ฌ์ฉ์ ๋ช ๊ฐ์ง ์ด์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋จ์์ฑ: SignalR์ ๊ณ ๊ธ ์ถ์ํ ๋ฐ API๋ฅผ ์ ๊ณตํ๋ฏ๋ก WebSocket์ ์ง์ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ์ค์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ์ฝ๊ฒ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
- ์๋ ํ๋กํ ์ฝ ์ ํ: SignalR์ ํด๋ผ์ด์ธํธ ๋ฐ ์๋ฒ ๊ธฐ๋ฅ์ ๊ธฐ๋ฐ์ผ๋ก ์ต์์ ํต์ ํ๋กํ ์ฝ์ ์๋์ผ๋ก ์ ํํ์ฌ ๊ธฐ๋ณธ ๊ธฐ์ ์ ๊ด๊ณ์์ด ์ํํ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ณด์ฅํฉ๋๋ค.
- ๊ด๋ฒ์ํ ํ๋ซํผ ์ง์: SignalR์๋ JavaScript, .NET ๋ฐ Java๋ฅผ ๋น๋กฏํ ๋ค์ํ ํ๋ซํผ์ ์ํ ํด๋ผ์ด์ธํธ ์ธก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํฌํจ๋์ด ์์ด ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ํฉํ๊ณ ๋ค์ฌ๋ค๋ฅํฉ๋๋ค.
- ํ์ฅ: SignalR์ ์ฌ๋ฌ ์๋ฒ์์ ํ์ฅ์ ์ง์ํ๋๋ก ์ค๊ณ๋์์ผ๋ฉฐ Redis, Azure Service Bus ๋๋ ์ฌ์ฉ์ ์ง์ ๋ฐฑํ๋ ์ธ์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๊ฐ์ด ์ด๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๊ธฐ๋ณธ ์ ๊ณต ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํฉ๋๋ค.
๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ SignalR์๋ ๊ฐ๋ฐ์๊ฐ ๊ณ ๋ คํด์ผ ํ ๋ช ๊ฐ์ง ์ ์ฌ์ ์ธ ๋จ์ ์ด ์์ต๋๋ค.
- .NET์ ๋ํ ์ข ์์ฑ: SignalR์ .NET ๊ธฐ์ ์ ์์กดํ๋ฏ๋ก ํ๋ซํผ์ ์ต์ํ์ง ์๊ฑฐ๋ ๋ค๋ฅธ ์ธ์ด ๋ฐ ํ๋ ์์ํฌ๋ฅผ ์ ํธํ๋ ๊ฐ๋ฐ์์๊ฒ๋ ์ ํฉํ์ง ์์ ์ ์์ต๋๋ค.
- ์ฑ๋ฅ: SignalR์ ์ง๊ด์ ์ธ API์ ๊ธฐ๋ฅ์ด ํ๋ถํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ณตํ์ง๋ง WebSocket์ ์ง์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋น๊ตํ์ฌ ์ฝ๊ฐ์ ์ถ๊ฐ ์ค๋ฒํค๋๊ฐ ๋ฐ์ํ์ฌ ์ ์ฌ์ ์ผ๋ก ์ฑ๋ฅ๊ณผ ๋๊ธฐ ์๊ฐ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค.
SignalR๋ณด๋ค WebSocket์ ์ ํํด์ผ ํ๋ ๊ฒฝ์ฐ
WebSocket๊ณผ SignalR์ ๋ชจ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ค์๊ฐ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๊ฐ๋ ฅํ ๊ธฐ์ ์ด์ง๋ง ํ๋๊ฐ ๋ค๋ฅธ ๊ฒ๋ณด๋ค ๋ ์ ํฉํ ์ ์๋ ํน์ ์๋๋ฆฌ์ค๊ฐ ์์ต๋๋ค. ์ด ์น์ ์์๋ WebSocket์ด SignalR์ ๋นํด ๋ ๋์ ์ต์ ์ผ ์ ์๋ ๊ฒฝ์ฐ์ ๋ํด ๋ ผ์ํฉ๋๋ค.
์ฐ๊ฒฐ์ ๋ํ ์ ์์ค ์ ์ด
WebSocket์ SignalR์ ๋นํด ์ฐ๊ฒฐ์ ๋ ์ง์ ์ ์ผ๋ก ์ ์ดํ ์ ์์ต๋๋ค. SignalR์ ์ค์๊ฐ ํต์ ์ ๋จ์ํํ๊ธฐ ์ํด ๋์ ์์ค์ ์ถ์ํ๋ฅผ ์ ๊ณตํ์ง๋ง ์ผ๋ถ ์ฌ์ฉ ์ฌ๋ก์ ํ์ํ ์ธ๋ถ์ฑ์ ์ ๊ณตํ์ง ์์ ์ ์์ต๋๋ค. ์ฐ๊ฒฐ ์ํ ๊ด๋ฆฌ, ์ค๋ฅ ์ฒ๋ฆฌ ๋ฐ ๋ฐ์ดํฐ ํ๋ ์ด๋ฐ ์ฌ์ฉ์ ์ง์ ์ ํฌํจํ์ฌ ์ฐ๊ฒฐ์ ๋ํ ํ์ ์์ค ์ ์ด๊ฐ ํ์ํ ๊ฒฝ์ฐ WebSocket์ด ๋ ๋์ ์ ์์ต๋๋ค.
๋๊ธฐ ์๊ฐ ๋จ์ถ
WebSocket ์ฐ๊ฒฐ์ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ง์ ์ ์ด๊ณ ์ง์์ ์ธ ์๋ฐฉํฅ ํต์ ์ฑ๋์ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ SignalR๋ณด๋ค ๋๊ธฐ ์๊ฐ์ด ์งง์ต๋๋ค. SignalR์ ์์ฒด์ ์ธ ํธ์๋ฅผ ์ ๊ณตํ์ง๋ง ๊ธด ํด๋ง ๋ฐ ์๋ฒ ์ ์ก ์ด๋ฒคํธ์ ๊ฐ์ด ์ฌ์ฉํ๋ ๊ธฐ๋ณธ ์ ์ก ๋ฉ์ปค๋์ฆ์ผ๋ก ์ธํด ์ฝ๊ฐ์ ์ถ๊ฐ ๋๊ธฐ ์๊ฐ์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
ํ๋ซํผ ํธํ์ฑ
SignalR์ .NET ๊ธฐ๋ฐ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ํ ํ์ํ ์๋ฃจ์ ์ด์ง๋ง Windows๊ฐ ์๋ ํ๊ฒฝ๊ณผ ๊ฐ์ด SignalR์ ์ฌ์ฉํ ์ ์๊ฑฐ๋ ์์ ํ ์ง์๋๋ ํ๋ซํผ์ ๋์์ผ๋ก ํ๋ ๊ฒ์ ์ ํฉํ์ง ์์ ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ฒฝ์ฐ WebSocket์ ๋ค์ํ ํ๋ซํผ๊ณผ ํ๊ฒฝ์์ ์๋ํ๋ ๋ณด๋ค ๋ณดํธ์ ์ธ ์๋ฃจ์ ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
์ถ๊ฐ ์ข ์์ฑ ๋ฐฉ์ง
ํ๋ก์ ํธ์ ์ธ๋ถ ์ข ์์ฑ ์๋ฅผ ์ต์ํํ๋ ค๋ฉด WebSocket์ ์ ํํ๋ ๊ฒ์ด ๋ ๋์ ์ต์ ์ผ ์ ์์ต๋๋ค. WebSocket์ HTML5 ํ์ค์ ํ์ ๋ถ๋ถ์ด๋ฉฐ ๋๋ถ๋ถ์ ์ต์ ๋ธ๋ผ์ฐ์ ๋ฐ ์๋ฒ ์ธก ๊ธฐ์ ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ง์๋ฉ๋๋ค. ๋ฐ๋๋ก SignalR์ ์ฌ์ฉํ๋ ค๋ฉด ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ๋ก์ ํธ์ ํตํฉํด์ผ ํฉ๋๋ค.
SignalR ๋ WebSockets: ์ฑ๋ฅ ํ๊ฐ
์ฑ๋ฅ ์ธก๋ฉด์์ WebSocket๊ณผ SignalR์ ์ฐจ์ด์ ์ ๋ ์ ์ดํดํ๋ ค๋ฉด ๋ช ๊ฐ์ง ์์๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
์ง์ฐ ์๊ฐ
WebSocket์ ์ผ๋ฐ์ ์ผ๋ก SignalR์ ๋นํด ๋๊ธฐ ์๊ฐ์ด ์งง์ต๋๋ค. ์ด์ ์ ์ธ๊ธํ๋ฏ์ด ์ด๋ WebSocket์ด ์ ๊ณตํ๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ง์ ์ ์ด๊ณ ์๋ฐฉํฅ์ด๋ฉฐ ์ง์์ ์ธ ์ฐ๊ฒฐ ๋๋ฌธ์ ๋๋ค. SignalR์ ๋ค์ํ ์ ์ก ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํ์ง๋ง ํน์ ์๋๋ฆฌ์ค์ ์ฝ๊ฐ์ ์ถ๊ฐ ๋๊ธฐ ์๊ฐ์ ๋์ ํ ์ ์์ต๋๋ค.
๋ฉ์์ง ์ฒ๋ฆฌ๋
WebSocket ์ฐ๊ฒฐ์ ๋ฉ์์ง๋น ์ค๋ฒํค๋๊ฐ ์ ๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ์ ์ผ๋ก SignalR์ ๋นํด ์ด๋น ๋ ๋ง์ ๋ฉ์์ง๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ์ด์ ์ ๋ฉ์์ง ์ฒ๋ฆฌ๋์ ์ฝ๊ฐ์ ์ฐจ์ด๊ฐ ์ค์ํ์ง ์์ ๋๋ถ๋ถ์ ์ค์ ์๋๋ฆฌ์ค์์๋ ์ค์ํ์ง ์์ ์ ์์ต๋๋ค.
์์ ์๋น
๋ฆฌ์์ค ์๋น๋ WebSocket๊ณผ SignalR์ ์ฑ๋ฅ์ ๋น๊ตํ ๋ ๊ณ ๋ คํด์ผ ํ ๋ ๋ค๋ฅธ ์ค์ํ ์์์ ๋๋ค. WebSocket ์ฐ๊ฒฐ์ ๊ฐ๋ฒผ์ด ํ๋กํ ์ฝ๋ก ์ธํด ๋ฆฌ์์ค๋ฅผ ์ ๊ฒ ์ฌ์ฉํ๋ ๊ฒฝํฅ์ด ์๋ ๋ฐ๋ฉด SignalR์ ์ฌ๋ฌ ์ ์ก ๋ฐ ๊ธฐ๋ฅ์ ์์กดํ๊ธฐ ๋๋ฌธ์ ๋ ๋ง์ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ฆฌ์์ค ์๋น์ ์ค์ ์ฐจ์ด๋ ํน์ ๊ตฌํ ๋ฐ ์ฌ์ฉ ์ฌ๋ก์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์ต๋๋ค.
ํ์ฅ์ฑ
WebSocket๊ณผ SignalR์ ๋ชจ๋ ์ฆ๊ฐํ๋ ํด๋ผ์ด์ธํธ๋ฅผ ์์ฉํ ์ ์๋๋ก ํ์ฅ์ ์ง์ํ์ง๋ง ์ด๋ฅผ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌํฉ๋๋ค. WebSocket์ ์ ์ ํ ํ์ฅ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ๋ก๋ ๋ฐธ๋ฐ์ฑ, ์ํ ํ์ฅ ๋ฐ ๊ธฐํ ๊ธฐ์ ์ ๊ตฌํํด์ผ ํฉ๋๋ค. ๋ฐ๋ฉด SignalR์ ๋ฉ์์ง ๋ฒ์ค ๋ฐ ๋ฐฑํ๋ ์ธ๊ณผ ๊ฐ์ ๋ค์ํ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ์๋ฒ์ ๊ฑธ์ณ ํ์ฅํ ์ ์๋ ๊ธฐ๋ณธ ์ ๊ณต ์ง์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
WebSocket ๋ฐ SignalR์ AppMaster ์ ํตํฉ
์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค๊ธฐ ์ํ ๊ฐ๋ ฅํ ์ฝ๋ ์๋ ํ๋ซํผ์ธ AppMaster ๋ WebSocket ๋ฐ SignalR ๊ธฐ์ ๊ณผ์ ์ํํ ํตํฉ์ ์ง์ํฉ๋๋ค. ์ด๋ฅผ ํตํด ๊ด๋ฒ์ํ ํ๋ก๊ทธ๋๋ฐ ์ ๋ฌธ ์ง์ ์์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์๊ฐ ํต์ ๊ธฐ๋ฅ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค. AppMaster ์ ์๊ฐ์ ์ธ ๋์ด์ ๋๊ธฐ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ฉด ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์์ฑํ๊ณ , ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ฅผ ์ค๊ณํ๊ณ , REST API ๋ฐ WSS endpoints ๊ตฌํํ ์ ์์ต๋๋ค.

๋ํ AppMaster ์ ํ๋ซํผ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ์์ค ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ ํด๋ผ์ฐ๋์ ๋ฐฐํฌํ์ฌ ์๋ฃจ์ ์ด ํ์ฅ ๊ฐ๋ฅํ๊ณ ์ฑ๋ฅ์ ์ต์ ํ๋๋๋ก ํฉ๋๋ค. WebSocket ๋ฐ SignalR์ AppMaster ์ ํตํฉํ๋ฉด ๊ฐ๋ ฅํ๊ณ ํ์ฅ ๊ฐ๋ฅํ ์ค์๊ฐ ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น ๋ฅด๊ฒ ๊ฐ๋ฐํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ํ์ ์์ฉ๊ตฌ ์ฝ๋ ์์ฑ ๋ฐ ์๋ฒ ์ธํ๋ผ ๊ด๋ฆฌ์ ๊ฐ์ ํ์ผ์ ์ธ ์์ ์ ์๊ฐ์ ์๋นํ๋ ๋์ ์ฌ์ฉ์์๊ฒ ๊ฐ์น๋ฅผ ์ ๊ณตํ๋ ๋ฐ ์ง์คํ ์ ์์ต๋๋ค.
๋ฏธ๊ตญ์ ์ํํธ์จ์ด ๊ฐ๋ฐ์์ด์ ์์ง๋์ด๋ง ๊ด๋ฆฌ์์ธ Christopher Baus๊ฐ ํ๋ช ํ๊ฒ ๋งํ ๊ฒ์ฒ๋ผ "์ํํธ์จ์ด๋ ๋ฐฉ๋ฒ๋ก , ์ธ์ด ๋๋ ์ด์ ์ฒด์ ์ ๊ดํ ๊ฒ์ด ์๋๋๋ค. ์๋ํ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ดํ ๊ฒ์ ๋๋ค." ์ ํ๋ฆฌ์ผ์ด์ ์์ WebSockets ๋๋ SignalR์ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ๋์ง ์ฌ๋ถ์ ๊ด๊ณ์์ด AppMaster ๋๊ท๋ชจ ์ค์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค๊ณ, ๊ตฌ์ถ ๋ฐ ์คํํ ์ ์๋ ์ ์ฐํ no-code ์๋ฃจ์ ์ ์ ๊ณตํฉ๋๋ค. ์์ํ๋ ค๋ฉด ๋ฌด๋ฃ ๊ณ์ ์ ๋ง๋ค๊ณ AppMaster ์ ๊ณตํ๋ ๋ค์ํ ๊ธฐ๋ฅ๊ณผ ํตํฉ์ ์ดํด๋ณด์ญ์์ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
์ค์๊ฐ ์์คํ ์ ์ค์๊ฐ์ผ๋ก ๋ฐ์ํ๋ ์ด๋ฒคํธ ๋ฐ ํ๋ก์ธ์ค ๋ฐ์ดํฐ์ ์๋ตํ๋๋ก ์ค๊ณ๋ ์ปดํจํ ์์คํ ์ผ๋ก, ์ธ๋ถ ์ด๋ฒคํธ์ ๋ํ ์๊ธฐ์ ์ ํ๊ณ ์ ํํ ์๋ต์ ๋ณด์ฅํฉ๋๋ค.
WebSocket์ ๋จ์ผ ์๊ตฌ ์ฐ๊ฒฐ์ ํตํด ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ง์ ํ ์ค์๊ฐ ์๋ฐฉํฅ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ํต์ ํ๋กํ ์ฝ์ ๋๋ค.
SignalR์ ์ค์๊ฐ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ์ ๊ฐ์ํํ๊ณ WebSockets, Server-Sent Events ๋ฐ Long Polling๊ณผ ๊ฐ์ ๋ค์ํ ํ๋กํ ์ฝ์ ํตํด ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์๋ฐฉํฅ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ์คํ ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.
์ฐ๊ฒฐ์ ๋ํ ์ง์ ์ ์ด๊ณ ๋ฎ์ ์์ค์ ์ ์ด๊ฐ ํ์ํ๊ฑฐ๋ ๋๊ธฐ ์๊ฐ์ด ์งง๊ฑฐ๋ SignalR์ ์ฌ์ฉํ ์ ์๋ ํ๋ซํผ์ ๋์์ผ๋ก ํ๋ ๊ฒฝ์ฐ SignalR ๋์ WebSockets๋ฅผ ์ ํํ์ญ์์ค.
WebSocket์ ์ง์ ์ฐ๊ฒฐ๋ก ์ธํด ๋๊ธฐ ์๊ฐ๊ณผ ์ค๋ฒํค๋๊ฐ ๋ฎ์ต๋๋ค. SignalR์ ๋ ํฐ ํธ์์ฑ๊ณผ ์ถ์ํ๋ฅผ ์ ๊ณตํ๋ฏ๋ก ์ฌ์ฉํ๊ธฐ๊ฐ ๋ ์ฌ์ธ ์ ์์ง๋ง ์์ ํ WebSocket ๊ธฐ๋ฐ ๊ตฌํ์ ๋นํด ๋๊ธฐ ์๊ฐ์ด ์ฝ๊ฐ ๋ ๊ธธ์ด์ง ์ ์์ต๋๋ค.
์, AppMaster ์ no-code ํ๋ซํผ์ ๋ง์ถคํ ์ ํ๋ฆฌ์ผ์ด์ ์์ WebSocket ๋ฐ SignalR๊ณผ์ ํตํฉ์ ์ง์ํ๋ฏ๋ก ์ค์๊ฐ ๊ธฐ๋ฅ์ด ์๋ ๋ํํ ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ฑ์ ์ฝ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
WebSocket์ ๊ฐ๋ฒผ์ด ํ๋กํ ์ฝ๋ก ์ธํด ๋ฆฌ์์ค ์๋น๊ฐ ์ ์ ๊ฒฝํฅ์ด ์๋ ๋ฐ๋ฉด SignalR์ ์ฌ๋ฌ ํ๋กํ ์ฝ ๋ฐ ์ถ๊ฐ ๊ธฐ๋ฅ์ ์์กดํ๋ฏ๋ก ๊ตฌํ๋ ๊ตฌ์ฑ ์์์ ๋ฐ๋ผ ๋ฆฌ์์ค ์๋น๊ฐ ์ฆ๊ฐํ ์ ์์ต๋๋ค.
์, WebSocket๊ณผ SignalR ๊ฐ์ ์ ํํ ์ ์์ง๋ง ์ฌ์ฉ ์ค์ธ ํน์ ๊ธฐ๋ฅ ๋ฐ ์ฐ๊ฒฐ ์ ํ์ ๋ฐ๋ผ ์ ํ์ ์ผ๋ถ ์กฐ์ ์ด ํ์ํ ์ ์์ต๋๋ค. ๋ ๊ธฐ์ ์ ์ฅ๋จ์ ์ ์ดํดํ๋ฉด ์ ๋ณด์ ์ ๊ฐํ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
์, WebSocket๊ณผ SignalR์ ๋ชจ๋ ํ์ฅ์ ์ง์ํ๋๋ก ์ค๊ณ๋์์ง๋ง ์ ๊ทผ ๋ฐฉ์์ ํน์ ๊ธฐ์ ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ํ์ฅ WebSocket์๋ ๋ก๋ ๋ฐธ๋ฐ์ฑ ๋ฐ ์ํ ํ์ฅ๊ณผ ๊ฐ์ ๊ธฐ์ ์ด ํฌํจ๋ ์ ์์ผ๋ฉฐ SignalR์ ๋ค์ํ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ์๋ฒ์ ๊ฑธ์ณ ํ์ฅํ ์ ์๋ ๊ธฐ๋ณธ ์ ๊ณต ์ง์์ ์ ๊ณตํฉ๋๋ค.


