์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- ์ด๋ถํ์
- icecandidate
- ๊ณผ์ ํ ์คํธ
- ์ฝํ
- ์นด์นด์ค์ฑ์ฉ
- ๋ถ์คํธ์ปจํผ๋ฐ์ค
- Redux toolkit
- ์ฝ๋ฉํ ์คํธ
- ๋์ ๊ณํ๋ฒ
- ๋๋๊ทธ ์ด๋ฒคํธ
- React
- ์๋ฐฉํฅ ์ฐ๊ฒฐ ๋ฆฌ์คํธ
- svgํ์ผ ๋ค๋ฃจ๊ธฐ
- Node.js
- TypeScript
- ๋ถ์คํธ์บ ํ์น๋ชจ๋ฐ์ผ
- ์ฝ๋ ํฌ๋ฉง
- ๋ฐฑ์ค
- ์นด์นด์ค
- custom hook
- js
- ์ด๋ฏธ์ง ์์
- ์๋ฐ์คํฌ๋ฆฝํธ
- DP
- JavaScript
- ๋ฆฌ๋์ค ํดํท
- router v6
- ์๊ณ ๋ฆฌ์ฆ
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋ธ๋ฃจํธํฌ์ค
- Today
- Total
๐ฅ dev-ruby
[React + socket] ๋ ๋๋ง๋ง๋ค socket.io ์ปค๋ฅ์ ์ด ์ฌ์์ฑ๋๋ ์ด์ ํด๊ฒฐ ๋ณธ๋ฌธ
[React + socket] ๋ ๋๋ง๋ง๋ค socket.io ์ปค๋ฅ์ ์ด ์ฌ์์ฑ๋๋ ์ด์ ํด๊ฒฐ
ruby_s 2022. 12. 5. 18:50socket์ ์ฌ์ฉํ ๋๋ง๋ค socket ๊ฐ์ฒด๋ฅผ ์ ์ญ์ ์ ์ธํด์ ์ฌ์ฉํด์ผ ํ ์ง ์ปดํฌ๋ํธ ๋ด์ ์ ์ธํด์ ์ง์ญ์ ์ผ๋ก ์ฌ์ฉํด์ผ ํ ์ง ํญ์ ๊ณ ๋ฏผ์ด์๋ค..
์ ์ญ์ผ๋ก ์ฌ์ฉํ๋ฉด ๋ฆฌ์กํธ์ ์ฑ์ ์ ์ ์, ๋ฐ๋ก ์์ผ์ ์ปค๋ฅ์ ๋๊ธฐ ๋๋ฌธ์ ๋๋ฌด ๋ถํธํ๋ค
๊ทธ๋ ๋ค๊ณ ์ง์ญ์ ์ผ๋ก ์ฌ์ฉํ๋ ค๋๊น ์ปค๋ฅ์ ์ด ๋ ๋๋ง๋ ๋๋ง๋ค ์์ฑ๋๊ธธ๋ ๋ ๋๋ง์ด ์์ฃผ ์ผ์ด๋๋ ์๋น์ค์ผ ๊ฒฝ์ฐ ๋ถํ๊ฐ ์ฌํ ๊ฒ์ด๊ณ , ์ค์ ๋ก WebRTC ํ์ ํ์ ๊ตฌํ์ ํ๋ฉด์ ์์ฒญ๋ ๋ ๊ณผ ๋ง์ฃผํ๋ค..
์๋๋ ๋ด๊ฐ ์ฒ์์ ์ ์ฉํ๋ ์์ผ ์ฝ๋๋ค.
function App() {
const socket = io(env.SERVER_PATH + `namespace`);
return (
<div>
// ์ด์ฉ๊ณ
</div>
);
}
export default App;
App ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง๋ ๋๋ง๋ค ์์ผ ๊ฐ์ฒด๊ฐ ์์ฑ๋ ๊ฒ์ด๋ค.. ๋ด๊ฐ ๋ง๋ค๊ณ ์๋ ์ค์๊ฐ ์ฑ ์๋น์ค์์๋ ๋งค์ฐ ์น๋ช ์ ์ด์๋ค
๊ทธ๋์ ๋ด๋ฆฐ ๊ฒฐ๋ก useMemo๋ฅผ ์ฌ์ฉํ๊ธฐ!
function App() {
const socket = useMemo(() => io(env.SERVER_PATH + `namespace`), []);
return (
<div>
// ์ด์ฉ๊ณ
</div>
);
}
export default App;
์์ผ ๊ฐ์ฒด๋ฅผ ๋ฉ๋ชจ์ด์ ์ด์ ํด์ฃผ์ด์ ์์ผ์ด ์ฌ์์ฑ๋์ง ์๋๋ค
+ ์ถ๊ฐ๋ก, socket์ ์ ์ธ ํ ํ์ ์ปดํฌ๋ํธ์ props๋ก ๊น์ depth๋ก ๋๊ฒจ์ผ ๋๋ค๋ฉด props drilling์ด ์ผ๊ธฐ๋๊ณ , ์ด๋์ ์ ์ธ๋ ์์ผ์ธ์ง ํท๊ฐ๋ฆด ์ ์๋ค
์ด๋ด ๊ฒฝ์ฐ ์์ผ์ ์ ์ญ ์ํ๋ก ๊ด๋ฆฌํ์ฌ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๋ ์ข๋ค๊ณ ์๊ฐํ๋ค.