728x90
Web Socket: ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์๊ฐ ์๋ฐฉํฅ ํต์ ์ ์ํ ํ๋กํ ์ฝ
1. Web Socket์ด๋?
Web Socket์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ค์๊ฐ ์๋ฐฉํฅ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ํ๋กํ ์ฝ์ ๋๋ค. HTTP ํ๋กํ ์ฝ์ ํ๊ณ๋ก ์ธํด ๊ธฐ์กด์๋ ์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก๋ง ์ ๋ณด๋ฅผ ์ ๋ฌํ ์ ์์์ง๋ง, Web Socket์ ์ฌ์ฉํ๋ฉด ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์๋ฐฉํฅ ํต์ ์ด ๊ฐ๋ฅํด์ง๋๋ค.
1. Web Socket์ ์ญํ
- ์ค์๊ฐ ํต์ : Web Socket์ ํตํด ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ ์ค์๊ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์์ต๋๋ค.
- ์๋ฐฉํฅ ํต์ : ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ ๋ ๋ฆฝ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์์ผ๋ฏ๋ก ์๋ฐฉํฅ ํต์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
- ๋ฎ์ ์ค๋ฒํค๋: HTTP์ ๋ฌ๋ฆฌ Web Socket์ ์ปค๋ฅ์ ์ ์ ์งํ๋ฏ๋ก ์ค๋ฒํค๋๊ฐ ์ ์ต๋๋ค.
2. Web Socket ์ฌ์ฉ ์๋๋ฆฌ์ค
- ์ค์๊ฐ ์ฑํ : ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ค์๊ฐ ์ฑํ ๊ธฐ๋ฅ์ ๊ตฌํํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
- ์ค์๊ฐ ๊ฒ์: ๋ฉํฐํ๋ ์ด์ด ๊ฒ์์์ ํ๋ ์ด์ด ๊ฐ์ ์ค์๊ฐ ์ํธ์์ฉ์ ๊ตฌํํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
3. Web Socket์ ์ฅ๋จ์
์ฅ์ :
- ์ค์๊ฐ ํต์ : ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ค์๊ฐ ํต์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
- ์๋ฐฉํฅ ํต์ : ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ ๋ ๋ฆฝ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์์ต๋๋ค.
๋จ์ :
- ๋ณด์ ์ธก๋ฉด: ์น ์์ผ์ ๋ณด์ ๋ฌธ์ ์ ๋ ธ์ถ๋ ์ ์์ผ๋ฏ๋ก, ๋ณด์์ ๊ฐํํด์ผ ํฉ๋๋ค.
- ํธํ์ฑ: ๋ชจ๋ ๋ธ๋ผ์ฐ์ ๊ฐ Web Socket์ ์ง์ํ์ง ์์ ์ ์์ต๋๋ค.
4. Web Socket์ ์ดํดํ๋ ์์ ์ฝ๋
ํด๋ผ์ด์ธํธ (JavaScript)
var socket = new WebSocket("ws://localhost:8080");
socket.onopen = function() {
console.log("Connection established.");
};
socket.onmessage = function(event) {
console.log("Message received: " + event.data);
};
socket.onclose = function(event) {
if (event.wasClean) {
console.log("Connection closed cleanly.");
} else {
console.log("Connection abruptly closed.");
}
};
socket.onerror = function(error) {
console.log("Error occurred: " + error.message);
};
์๋ฒ (Node.js)
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', function connection(ws) {
ws.on('message', function incoming(message) {
console.log('Received: %s', message);
});
ws.send('Hello, client!');
});
5. ์ฐ๊ด๋ ๊ธฐ์
- Server-Sent Events (SSE): ์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ์ ์๋ ๊ธฐ์ .
- Long Polling: ์๋ฒ์ ์์ฒญ์ ๋ณด๋ด๊ณ ์๋ต์ ๋ฐ์ ๋๊น์ง ๋๊ธฐํ๋ ๋ฐฉ์์ผ๋ก ์ค์๊ฐ ํต์ ์ ๊ตฌํํ๋ ๊ธฐ์ .
Web Socket์ ์ค์๊ฐ ํต์ ์ด ํ์ํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋งค์ฐ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ฅผ ํตํด ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํค๊ณ ์ค์๊ฐ ์ ๋ฐ์ดํธ๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
๋๊ธ