๐ปSocket.Io ์ดํดํ๊ธฐ
๐Socket.IO๋?
Socket.IO๋ ์ด๋ฒคํธ๋ฅผ ๊ธฐ๋ฐํ ์๋ฒ์ ๋ธ๋ผ์ฐ์ ๊ฐ์ ์๋ฐฉํฅ ํต์ ์ ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
http๋ ์ผ๋ฐ์ ์ผ๋ก ์๋ฐฉํฅ ํต์ ์ด ๋ถ๊ฐ๋ฅํ๋ฐ, polling, long-polling, WebSocket ๋ฑ์ ์์คํ ๋์์ธ์ ์ฌ์ฉํ์ฌ ์๋ฐฉํฅ ํต์ ์ด ๊ฐ๋ฅํ ๊ฒ์ฒ๋ผ ๊ตฌํํ ์ ์๋ค. Socket.IO๋ ์ผ๋ฐ์ ์ผ๋ก ์ ๋ชจ๋ธ ์ค long-polling ๋ฐฉ์์ ์ฌ์ฉํ๋ค.
Polling
polling ๋ฐฉ์์์๋ ํด๋ผ์ด์ธํธ์์ ์ฃผ๊ธฐ์ ์ผ๋ก ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ค. ํด๋ผ์ด์ธํธ์์ ์์ฒญ์ด ์ค๋ฉด ์๋ฒ์์๋ ๋ณ๊ฒฝ์ด ์๊ฑฐ๋ ์๋ก์ด ๋ฐ์ดํฐ๊ฐ ์๋๋ผ๋ ์๋ต์ ๋ณด๋ธ๋ค.
๋ฐ๋ผ์ ์ฃผ๊ธฐ์ ์ผ๋ก ์ ํด์ง ์๊ฐ๋ง๋ค ๋ฐ์ดํฐ๋ฅผ ํ์ธํด์ผ ํ๋ ์๋น์ค์ ์ ํฉํ ์ ์์ง๋ง, ๋ถํ์ํ ์์ฒญ์ด ๋ง์์ง ์ ์์ผ๋ฏ๋ก ์ค๋ฒํค๋๊ฐ ๊ณผ๋ํ๊ฒ ๋ฐ์๋ ์ ์๋ค.
Long-polling
long-polling ๋ฐฉ์์์๋ ํด๋ผ์ด์ธํธ์์ ์์ฒญ์ ๋ณด๋ด๋ฉด ์๋ฒ์์๋ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ ๋ ์๋ต์ ๋ณด๋ธ๋ค. ์๋ฒ์์ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ ๋์๋ง ์๋ต์ ๋ณด๋ด๊ธฐ ๋๋ฌธ์ polling ๋ฐฉ์๋ณด๋ค ๋ถํ์ํ ์์ฒญ์ด ๋ ๋ฐ์ํ๊ฒ ๋์ง๋ง, long-polling ๋ฐฉ์์์๋ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ ์๋ต์ ๋ฌดํ์ ๊ธฐ๋ค๋ฆฌ์ง๋ ์๋๋ค. ์ผ์ ์๊ฐ์ด ์ง๋๋ฉด ์๋ก์ด ์์ฒญ์ ๋ณด๋ด๋ ๋ฐฉ์์ด๋ค. ์๋ฒ์์ ์๋ต์ ๋ฐ์์ ๋๋ ํด๋ผ์ด์ธํธ๊ฐ ์ฆ์ ์์ฒญ์ ๋ค์ ๋ณด๋ด๋ฉด์, ๋ง์น ์๊ตฌ์ ์ธ ์ฐ๊ฒฐ์ด ์ด๋ค์ง ๊ฒ ์ฒ๋ผ ๊ตฌํ๋๋ค.
๋ฐ๋ผ์ ์ค์๊ฐ ๋ฐ์์ด ๊ฐ๋ฅํ๊ณ polling์ ๋นํด์ ๋ถํ์ํ ํธ๋ํฝ์ ์ ๋ฐํ์ง๋ ์์ง๋ง ์คํ๋ ค ์ด๋ฒคํธ๊ฐ ์ฆ๋ค๋ฉด ์๊ฐ์ ์ผ๋ก ๊ณผ๋ถํ๊ฐ ๊ฑธ๋ฆฌ๊ฒ ๋ฉ๋๋ค.
WebSocket
WebSocket ๋ฐฉ์์์๋ ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ์ ์ต์ด ํ ๋ฒ๋ง ๋ณด๋ธ๋ค. ์ฌ์์ฒญ์ ๋ณด๋ด์ง ์์์ ์ค๋ฒํค๋๊ฐ ์ ๊ณ ํจ์จ์ ์ผ ์ ์์ง๋ง, ํ์ ์ด์์ผ๋ก ์ฐ๊ฒฐ์ ์ค๋ ์ ์งํ ๊ฒฝ์ฐ ์๋ฒ CPU์ ๋ถ๋ด์ด ๋๋ ๋ฑ์ ๋จ์ ์ด ๋ฐ์ํ ์ ์๋ค.
Socket.Io๊ฐ long-polling์ด default์ธ ์ด์
- WebSocket์ ๋ถ๋ช ํ ์๋ฐฉํฅ ํต์ ์ ์ค์ ํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ด์ง๋ง ๊ฒฝํ์ ๋ฐ๋ฅด๋ฉด ํ์ฌ ํ๋ก์, ๊ฐ์ธ ๋ฐฉํ๋ฒฝ, ๋ฐ์ด๋ฌ์ค ๋ฐฑ์ ์ํํธ์จ์ด๋ก ์ธํด WebSocket ์ฐ๊ฒฐ์ ์ค์ ํ๋ ๊ฒ์ด ํญ์ ๊ฐ๋ฅํ ๊ฒ์ ์๋๋๋ค.
- ์ฌ์ฉ์ ๊ด์ ์์ WebSocket ์ฐ๊ฒฐ์ ์คํจํ๋ฉด ์ค์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ฐ์ดํฐ ๊ตํ์ ์์ํ ๋๊น์ง ์ต๋ 10์ด ์ด์ ๊ธฐ๋ค๋ ค์ผ ํฉ๋๋ค. ์ด๊ฒ์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ง๊ฐ์ ์ผ๋ก ์์์ํต๋๋ค.
๋ฐ๋ผ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํด๋ผ์ด์ธํธ๋ HTTP long-polling ์ ์ก๊ณผ์ ์ฐ๊ฒฐ์ ์ค์ ํฉ๋๋ค.
Socket.Io ์ฅ์
- Socket.Io๋ WebSocket์ ์ง์ํ์ง ์๋ ๋ธ๋ผ์ฐ์ ์์๋ ์ค์๊ฐ ์๋ฐฉํฅ ํต์ ์ด ๊ฐ๋ฅํ๋๋ก ์ง์ํ๋ค. ๋ค์ ์กด์ฌํฉ๋๋ค.
- Socket.Io๋ ๋ชจ๋ฐ์ผ ์ฅ์น๋ฅผ ํฌํจํ ๊ฑฐ์ ๋ชจ๋ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ์ง์ํ๋ ์ค์๊ฐ ์๋ฐฉํฅ ์ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ๋๋ค.
- ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํ์ฌ ์ ์๋์ด ๋ธ๋ผ์ฐ์ ์ ์๊ด์์ด ์ค์๊ฐ ์น์ ๊ตฌํํ ์ ์๋๋ก ํ๋ฉฐ, ๋ธ๋ผ์ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ Node.js ๋ชจ๋๋ก ์ ๊ณต๋๊ณ ์์ต๋๋ค.
'SERVER > Node.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐์๋ฒ ํ์ฅ์ ์ํ ๋๊ฐ์ง ๋ฐฉ๋ฒ (0) | 2022.04.24 |
---|---|
๐ป WebRTC๋ (0) | 2022.04.17 |
<Node.js> module๊ณผ require ์ดํดํ๊ธฐ (0) | 2022.02.25 |
๋ฏธ๋ค์จ์ด body-parser& compression (์์ถ) (0) | 2021.11.26 |
Express ๋? (0) | 2021.11.26 |