μ€μκ° κΈ°λ₯μ΄ νμν μ±ν
, μλ¦Ό, λΌμ΄λΈ λ°μ΄ν° λ±μμ
λ°μ΄ν°λ₯Ό μ€μκ°μΌλ‘ μ£Όκ³ λ°λ λ°©μμ΄ λ§€μ° μ€μν©λλ€.
λνμ μΌλ‘ μ¬μ©λλ λ°©μμ λ κ°μ§μ
λλ€:
μ΄λ² κΈμμ μ΄ λ κ°μ§ λ°©μμ λΉκ΅νκ³ ,
μ΄λ€ μν©μμ μ΄λ€ λ°©μμ μ¬μ©νλ κ² μ’μμ§ μ΄ν΄λ³΄κ² μ΅λλ€.
μΌμ ν μκ° κ°κ²©μΌλ‘ μλ²μ βμ μμ μμ΄μ?βλΌκ³ κ³μ λ¬Όμ΄λ³΄λ λ°©μμ λλ€.
ν΄λ§μ ν΄λΌμ΄μΈνΈκ° μ ν΄μ§ μκ°λ§λ€ μλ²μ μμ²μ 보λ΄,
μλ‘μ΄ λ°μ΄ν°κ° μκ²Όλμ§ νμΈνλ λ°©μμ
λλ€.
[ν΄λΌμ΄μΈνΈ] β 3μ΄λ§λ€ β [μλ²] "μ λ©μμ§ μμ΄?"
[μλ²] β "μμ΄!" λλ "μμ΄~"
μ€μκ°μ²λΌ 보μ΄μ§λ§, μ€μ λ‘λ μ£ΌκΈ°μ μΌλ‘ νμΈ
ꡬνμ΄ λ§€μ° κ°λ¨ν¨ (setIntervalλ§ μ¬μ©ν΄λ κ°λ₯)
μλ‘μ΄ λ°μ΄ν°κ° μμ΄λ κ³μ μμ²νκ² λμ΄ μλ²μ λΆλ΄μ΄ λ μ μμ
ν λ² μ°κ²°νλ©΄ μλ²μ ν΄λΌμ΄μΈνΈκ° μ€μκ°μΌλ‘ λ©μμ§λ₯Ό μ£Όκ³ λ°λ λ°©μμ λλ€.
μΉμμΌμ μλ²μ ν΄λΌμ΄μΈνΈκ° ν λ² μ°κ²°ν λ€,
μ§μμ μΈ μ°κ²°μ μ μ§νλ©΄μ μλ°©ν₯ ν΅μ μ΄ κ°λ₯ν λ°©μμ
λλ€.
[ν΄λΌμ΄μΈνΈ] π [μλ²] ββ μ€μκ° λν
μ€μκ°μ±μ΄ λ§€μ° λ°μ΄λ¨ (μ±ν , μλ¦Ό λ± μ¦μ λ°μμ΄ νμν κΈ°λ₯μ μ ν©)
μ°κ²°μ μ μ§νκΈ° λλ¬Έμ λΆνμν λ°λ³΅ μμ²μ΄ μμ
μ€μ μ΄ λ€μ 볡μ‘νμ§λ§, ν¨μ¨μ μ΄κ³ λΉ λ¦
| ν볡 | Polling | WebSocket |
|---|---|---|
| μλ λ°©μ | μΌμ κ°κ²©λ§λ€ μμ² | ν λ² μ°κ²° ν κ³μ ν΅μ |
| μ€μκ°μ± | λλ¦Ό (3~5μ΄ κ°κ²©) | λ§€μ° λΉ λ¦ (μ¦μ μ μ‘) |
| μλ² λΆλ΄ | μμ² λ§μΌλ©΄ κ³ΌλΆν | μ μ (μ§μ μ°κ²° μ μ§) |
| ꡬν λμ΄λ | μ½λ€ (λ¨μν μμ² λ°λ³΅) | μ€κ° μ΄μ (μλ²/ν΄λΌμ΄μΈνΈ μ€μ νμ) |
| λΈλΌμ°μ νΈνμ± | λ§€μ° μ’μ | μ΅μ λΈλΌμ°μ λλΆλΆ OK |
| μ¬μ© μ | λ΄μ€ νΌλ, ν μ€νΈ μ±ν | μ€μκ° μ±ν , μλ¦Ό, μ£Όμ, κ²μ |
μ°λ¦¬ νλ‘μ νΈμΈ MEETTYμμλ λ€μκ³Ό κ°μ λ°©μμΌλ‘ νμ©ν μ μμ΅λλ€:
| κΈ°λ₯ | μΆμ² λ°©μ | μ΄μ |
|---|---|---|
| μ±ν λ°© ν μ€νΈ | Polling | λΉ λ₯΄κ³ κ°λ¨νκ² κ΅¬ν κ°λ₯ |
| μ€μ μ±ν /νμμ±ν | WebSocket | μ€μκ° λ°μμ΄ μ€μν¨ |
| μ½μ§ μμ λ©μμ§ μ νμΈ | Polling | μ£ΌκΈ°μ μΌλ‘ νμΈνλ©΄ μΆ©λΆ |
| μ°Έμ¬μ μ μ€μκ° νμ | WebSocket | λ³νκ° μκΈ°λ©΄ μ¦μ λ°μ νμ |
import { useEffect, useState } from "react";
import axios from "axios";
const ChatPolling = () => {
const [messages, setMessages] = useState([]);
useEffect(() => {
const interval = setInterval(() => {
axios.get("/api/messages").then((res) => {
setMessages(res.data);
});
}, 3000); // 3μ΄λ§λ€ μλ²μ μ λ©μμ§ μμ²
return () => clearInterval(interval);
}, []);
return (
<div>
<h2>μ±ν
μ°½</h2>
{messages.map((msg, idx) => (
<div key={idx}>{msg.content}</div>
))}
</div>
);
};
export default ChatPolling;
μ 리ν΄λ³΄λ ν΄λ§μ ꡬνμ΄ κ°λ¨ν΄μ μ΄λ° ν μ€νΈμ μ’κ³ ,
μΉμμΌμ μ€μκ° λ°μμ΄ νμν κΈ°λ₯μ λ μ μ΄μΈλ¦°λ€λ κ±Έ μκ² λλ€.
MEETTY νλ‘μ νΈμμλ μν©μ λ§κ² λ μ€ μ μ ν λ°©μμ μ ννλ©΄ μ’μ κ² κ°λ€.