๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์ „์ฒด ๊ธ€ (100)

๐Ÿ–ฅ dev-ruby

[React + socket] ๋ Œ๋”๋ง๋งˆ๋‹ค socket.io ์ปค๋„ฅ์…˜์ด ์žฌ์ƒ์„ฑ๋˜๋Š” ์ด์Šˆ ํ•ด๊ฒฐ

socket์„ ์‚ฌ์šฉํ•  ๋•Œ๋งˆ๋‹ค socket ๊ฐ์ฒด๋ฅผ ์ „์—ญ์— ์„ ์–ธํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•  ์ง€ ์ปดํฌ๋„ŒํŠธ ๋‚ด์— ์„ ์–ธํ•ด์„œ ์ง€์—ญ์ ์œผ๋กœ ์‚ฌ์šฉํ•ด์•ผ ํ•  ์ง€ ํ•ญ์ƒ ๊ณ ๋ฏผ์ด์˜€๋‹ค.. ์ „์—ญ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋ฆฌ์•กํŠธ์— ์•ฑ์— ์ ‘์† ์‹œ, ๋ฐ”๋กœ ์†Œ์ผ“์— ์ปค๋„ฅ์…˜๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋„ˆ๋ฌด ๋ถˆํŽธํ–ˆ๋‹ค ๊ทธ๋ ‡๋‹ค๊ณ  ์ง€์—ญ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ ค๋‹ˆ๊นŒ ์ปค๋„ฅ์…˜์ด ๋ Œ๋”๋ง๋  ๋•Œ๋งˆ๋‹ค ์ƒ์„ฑ๋˜๊ธธ๋ž˜ ๋ Œ๋”๋ง์ด ์ž์ฃผ ์ผ์–ด๋‚˜๋Š” ์„œ๋น„์Šค์ผ ๊ฒฝ์šฐ ๋ถ€ํ•˜๊ฐ€ ์‹ฌํ•  ๊ฒƒ์ด๊ณ , ์‹ค์ œ๋กœ WebRTC ํ™”์ƒ ํšŒ์˜ ๊ตฌํ˜„์„ ํ•˜๋ฉด์„œ ์—„์ฒญ๋‚œ ๋ ‰๊ณผ ๋งˆ์ฃผํ–ˆ๋‹ค.. ์•„๋ž˜๋Š” ๋‚ด๊ฐ€ ์ฒ˜์Œ์— ์ ์šฉํ–ˆ๋˜ ์†Œ์ผ“ ์ฝ”๋“œ๋‹ค. function App() { const socket = io(env.SERVER_PATH + `namespace`); return ( // ์–ด์ฉŒ๊ณ  ); } export default App; App ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ Œ๋”๋ง๋  ๋•Œ๋งˆ๋‹ค ์†Œ์ผ“ ๊ฐ..

React 2022. 12. 5. 18:50
[WebRTC] React+TypeScript+WebRTC ๊ฐœ๋…์ •๋ฆฌ + ๊ตฌํ˜„ํ•˜๊ธฐ

๋ถ€์ŠคํŠธ์บ ํ”„ ์›น๋ชจ๋ฐ”์ผ ๋ฉค๋ฒ„์‹ญ ๊ทธ๋ฃน ํ”„๋กœ์ ํŠธ์—์„œ WebRTC๋ฅผ ๋‹ค๋ฃจ๊ฒŒ ๋๋‹ค. ๋ณธ๊ฒฉ์ ์ธ ์ž‘์—…์— ๋“ค์–ด๊ฐ€๊ธฐ ์•ž์„œ WebRTC์— ๋Œ€ํ•ด ๋ฌด์ง€ํ•œ ์ƒํƒœ์˜€๊ธฐ์— ๋ฏธ๋ฆฌ ํ•™์Šต์„ ํ•ด๋ณด์•˜๋‹ค ์ฒ˜์Œ ํ•™์Šตํ•  ๋•Œ๋Š” ์ง„์งœ ์ด๊ฒŒ ๋ญ์ง€ ์‹ถ์—ˆ๋‹ค.. ๊ทธ๋ž˜์„œ ์ดํ•ด ๋ชปํ•œ ์ฑ„ ์ผ๋‹จ ๊ฐœ๋…์ด๋ผ๋„ ๋งˆ๊ตฌ ์ ์–ด๋†จ๋‹ค MDN ๋ฌธ์„œ๋ฅผ ํ•˜๋‚˜์”ฉ ์‚ดํŽด๋ณด๊ณ , ๋ธ”๋กœ๊ทธ ์ž๋ฃŒ๋ฅผ ์—„์ฒญ ์ฐพ์•„ ๋Œ์•„ ๋Œ•๊ธฐ๋‹ค๋ณด๋‹ˆ ์–ด๋Š์ •๋„ ์ •๋ฆฌ๊ฐ€ ๋๋‹ค ํ•˜๋‹จ์— ์ฐธ๊ณ ํ•œ ๋ฌธ์„œ๋“ค ์ ์–ด๋†จ์–ด์š” ๐Ÿค— WebRTC(Web Real Time Communication)๋ž€?? ๋ธŒ๋ผ์šฐ์ €์™€ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ณ„๋„์˜ ์†Œํ”„ํŠธ์›จ์–ด ์—†์ด ์Œ์„ฑ, ์˜์ƒ ๋ฏธ๋””์–ด, ํ…์Šค, ํŒŒ์ผ๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋“ค์„ ์‹ค์‹œ๊ฐ„ ํ†ต์‹ (RTC)์œผ๋กœ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ธฐ์ˆ ์ด๋‹ค. Peer To Peer ๋ฐฉ์‹์œผ๋กœ ์ „์†กํ•˜๋ฉฐ, ์‹œ๊ทธ๋„๋ง ์„œ๋ฒ„ ํ•˜๋‚˜๋งŒ ์žˆ์œผ๋ฉด ๋œ๋‹ค. ์‹œ..

WebRTC 2022. 11. 27. 04:49
[๋ถ€์ŠคํŠธ์บ ํ”„] ๋ถ€์ŠคํŠธ ์ปจํผ๋Ÿฐ์Šค ํ›„๊ธฐ

10์›” 20์ผ ๋ชฉ์š”์ผ์— ๋„ค์ด๋ฒ„ 1784๋กœ ๋ถ€์ŠคํŠธ ์ปจํผ๋Ÿฐ์Šค๋ฅผ ๋‹ค๋…€์™”๋‹ค ๋‚ด๊ฐ€ ๋„ค์ด๋ฒ„ ์‹ ์‚ฌ์˜ฅ์„ ๊ฐ€๋ณด๋‹ค๋‹ˆ .. ์ด๋Ÿฐ ๊ฒฝํ—˜์„ ๋˜ ์–ธ์ œ ํ•ด๋ณผ๊นŒ ๋„ˆ๋ฌด ์„ค๋ œ๋‹ค ใ…Žใ…Ž ์‚ฌ์‹ค ํ›„๊ธฐ ์ด๋Ÿฐ๊ฑฐ ์ง„์งœ ๋ชป์“ด๋‹คใ…  ๊ธ€์ด๋ผ๊ณค ์“ธ ์ค„ ๋ชจ๋ฅธ๋‹ค.. ํ•œ์ •ํŒ ๊ตฟ์ฆˆ๋ฅผ ์ค€๋‹ค๋Š” ์†Œ์‹์— ํ•œ๋ฒˆ ์•„๋ฌด๋ง์ด๋‚˜ ๋„์ ์—ฌ๋ณด๋ ค๊ณ  ํ•œ๋‹ค :) ์ ์‹ฌ์‹œ๊ฐ„์— ๊ฐ™์€ ์ฒญ์ฃผ ์‚ฌ์‹œ๋Š” ๊ฒฝ์—ฐ๋‹˜๊ณผ "๊ทธ๋ผ๋„" ๋ผ๋Š” ์ดํƒœ๋ฆฌ ์‹๋‹น์— ๋ฐฉ๋ฌธํ–ˆ๋‹ค ๋งˆ์Šคํ„ฐ ์กฐ์€๋‹˜์ด ์ถ”์ฒœํ•ด์ฃผ์‹  ๋ง›์ง‘์ด๋ผ ๊ถ๊ธˆํ•ด์„œ ๊ฐ€๋ดค๋Š”๋ฐ, ์ € ๋งค์ฝค ์‚ด๋ผ๋ฏธ ํŒŒ์Šคํƒ€? ๊ฐ€ ์—„์ฒญ ๋ง›์žˆ์—ˆ๋”ฐ ๋ญ”๊ฐ€ ํŠน์œ ์˜ ๋ง›์ด ๋‚ฌ๋Š”๋ฐ ๋˜๊ฒŒ ๋น„์‹ธ์„œ ๊ฐ€๋” ๋จน์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค ใ…Žใ…Ž ์–ธ์  ๊ฐ€ ๋„ค์ด๋ฒ„๋กœ ๊ฐ„๋‹ค๋ฉด ์ž์ฃผ ๊ฐ€์•ผ์ง€ ๊ธธ์„ ํ—ค๋งค์„œ ์ฃผ๋ณ€ ๋ถ„๋“ค์—๊ฒŒ ์—ฌ์ญค๋ด์„œ ๊ฒจ์šฐ๊ฒจ์šฐ ์ฐพ์•„๊ฐ„ ๋ง›์ง‘์ด์—ˆ๋Š”๋ฐ, ๋™๋„ค ๋ถ„๋“ค์€ ๋‹ค๋“ค ์•„์‹œ๋Š” ๋ง›์ง‘์ธ ๊ฒƒ ๊ฐ™๋”๋ผ! ๋“ค์–ด๊ฐ€์„œ ๋ฐฉ๋ฌธ์ฆ์„ ๊ฒŸ! ํ–ˆ๋‹น ๋ฐฉ๋ฌธ์ฆ์„ ๋ชฉ์—..

๋„ค์ด๋ฒ„ ๋ถ€์ŠคํŠธ์บ ํ”„ ์›น/๋ชจ๋ฐ”์ผ 7๊ธฐ ์ž์†Œ์„œ & ์ฝ”ํ…Œ ์ตœ์ข… ํ•ฉ๊ฒฉ ํ›„๊ธฐ

๋ถ€์ŠคํŠธ์บ ํ”„ ์ตœ์ข… ํ•ฉ๊ฒฉ๊นŒ์ง€ ๊ธฐ๋‚˜๊ธด ์—ฌ์ •์ด์˜€๋‹ค.. ํ•˜๋ฃจ์— ๋ฐฑ์ค€ 3~4๋ฌธ์ œ์”ฉ ํ’€๋ฉฐ ๋ถ€์ŠคํŠธ์บ ํ”„ ์ค€๋น„์—๋งŒ ๋งค๋‹ฌ๋ ธ๋‹ค ๋ฐฑ์ค€ ๋ฌธ์ œ ๋ ˆ๋ฒจ์€ ๊ณจ๋“œ 4-5 ~ ์‹ค๋ฒ„ 1-2 ์ •๋„๋กœ ๊พธ์ค€ํžˆ ํ’€์—ˆ๋‹ค ๋ฌผ๋ก  ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค๋„ ํ’€์—ˆ๋‹ค ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค๋Š” Lv.1 ~ 2๋ฌธ์ œ๋Š” ์ด๋ฏธ ๋‹ค ํ’€์–ด๋‘” ์ƒํƒœ๋ผ ํ’€์—ˆ๋˜ ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ํ’€๋ฉด์„œ ์ค€๋น„ํ–ˆ๋‹ค ์ง€๋‚œ ๊ธฐ์ˆ˜๋‚˜ ์ง€์ง€๋‚œ ๊ธฐ์ˆ˜ ํ›„๊ธฐ๋ฅผ ๋ณด๋ฉด ์ฝ”ํ…Œ ๋ฌธ์ œ๊ฐ€ ๊ทธ๋ฆฌ ์–ด๋ ต์ง€ ์•Š๊ณ  CS๊ฐ€ ์š”๊ตฌ๋œ๋‹ค๋Š” ํ›„๊ธฐ๊ฐ€ ๋Œ€๋ถ€๋ถ„์ด๋ผ CS๊ณต๋ถ€๋„ ์กฐ๊ธˆ(?)ํ–ˆ๋‹ค ์‚ฌ์‹ค CS๊ฐ€ ๋„ˆ๋ฌด ๊ด‘๋ฒ”์œ„ํ•˜๊ธฐ๋„ ํ•˜๊ณ  1์ฐจ ์ฝ”ํ…Œ๊ฐ€ ์ธํ„ฐ๋„ท ๊ฒ€์ƒ‰์ด ๊ฐ€๋Šฅํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— cs50? ๊ฐ•์˜ ํ•œ ๋‘๋ฒˆ์”ฉ ํ›‘์–ด๋ณด๋Š” ์ •๋„๋กœ๋งŒ ๊ณต๋ถ€ํ–ˆ๋‹ค ์ž์†Œ์„œ ์ง€์› ์งˆ๋ฌธ (๊ณต๋ฐฑ ํฌํ•จ 400์ž ๋‚ด์™ธ) 1. ์™œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ณ  ์‹ถ์€์ง€ ๋ถ€์บ ์—์„œ ์ด๋ฃจ๊ณ ์ž ํ•˜๋Š” ๋ชฉํ‘œ์™€ ํ•จ๊ป˜ ์„œ์ˆ  2. ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์„ ๋” ์ž˜ํ•˜๊ณ  ์‹ถ์–ด..

[์‹ค๋ฆฌ์ฝ˜ ๋ฐธ๋ฆฌ ์ธํ„ด์‹ญ] 1์ฃผ์ฐจ ํšŒ๊ณ 

6์›” 27์ผ - 7์›” 1์ผ๊นŒ์ง€ ์ฒซ์งธ์ฃผ ์‹ค๋ฆฌ์ฝ˜ ๋ฐธ๋ฆฌ ์ธํ„ด์‹ญ์„ ์‹œ์ž‘ํ–ˆ๋‹ค ์ฒ˜์Œ ๋ฐฐ์ • ๋ฐ›์€ ํŒ€์„ ํ™•์ธํ–ˆ๋”๋‹ˆ ๋‚ด๊ฐ€ ๋ฆฌ๋”์˜€๋‹ค..! ํ•˜์ง€๋งŒ ์ฒซ๋‚  ํŒ€์› 2๋ช…์ด ํƒˆ์ฃผํ•˜๊ฒŒ ๋˜๊ณ .. ๋‚จ์€ 4๋ช…์ด์„œ ๊ตฌํ˜„์ด ํž˜๋“ค ๊ฒƒ ๊ฐ™์•„ ๋ผ์ด์–ธ ๋ฉ˜ํ† ๋‹˜๊ป˜ ๋ฌธ์˜๋ฅผ ๋“œ๋ ธ๋”๋‹ˆ ํŒ€ ์กฐ์ •์ด ํ•„์š”ํ•œ ๊ฒƒ ๊ฐ™๋‹ค๊ณ  ๋ง์”€ํ•˜์…จ๋‹ค ๊ฒฐ๊ตญ ํŒ€ D์™€ ๊ฐ™์ด ์ž‘์—…์„ ํ•˜๊ฒŒ ๋˜์—ˆ๊ณ  ์šฐ๋ฆฌ๋Š” ์ด 8๋ช…์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋Œ€๊ทœ๋ชจ ํŒ€์ด๋‹ค .. ๋‚˜์™€ ๋‹ค๋ฅธ ํ•œ ๋ถ„์ด ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์„ ๋งก์•˜๊ณ , ๋ฐฑ์—”๋“œ 3๋ช…, AI 3๋ช… ์ด๋ ‡๊ฒŒ ๋‚˜๋ˆ ์กŒ๋‹ค. ์ฒซ๋‚ ์€ ์ฃผ์ œ๋ฅผ ์ •ํ•˜๊ณ , ์šฐ๋ฆฌ๋Š” ์ฃผ๋ณ€ํ™˜๊ฒฝ์— ๋”ฐ๋ฅธ ๋…ธ๋ž˜ ์ถ”์ฒœ ์„œ๋น„์Šค๋ฅผ ์›น์‚ฌ์ดํŠธ๋กœ ์ œ์ž‘ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค ์œ ์ € ์‹œ๋‚˜๋ฆฌ์˜ค 1. ์œ ์ €๊ฐ€ ์‚ฌ์ง„์„ ์—…๋กœ๋“œํ•œ๋‹ค. 2. ์„ ํ˜ธํ•˜๋Š” ์žฅ๋ฅด๋ฅผ ํ•˜๋‚˜ ์„ ํƒํ•œ๋‹ค. 3. ์‚ฌ์ง„๊ณผ ์žฅ๋ฅด๋ฅผ ์กฐํ•ฉํ•œ ์–ด์šธ๋ฆฌ๋Š” ๋…ธ๋ž˜ ์ถ”์ฒœ ๊ฒฐ๊ณผ๋ฅผ ์กฐํšŒํ•œ๋‹ค. 4. ์›ํ•˜๋Š” ์Œ์•…์„ ์„ ํƒ..

๋„ฅ์Šคํ„ฐ์ฆˆ 21๊ธฐ ๋ฉด์ ‘ ํ›„๊ธฐ

์˜ค๋Š˜ 2022๋…„ 6์›” 4์ผ ํ† ์š”์ผ. ๋„ฅ์Šคํ„ฐ์ฆˆ ๋ฉด์ ‘์„ ๋ดค๋‹ค !! 30-35๋ถ„ ์ •๋„ ์ง„ํ–‰์ด ๋๊ณ  ๊ทธ๋ฃน ๋ฉด์ ‘์ธ๋ฐ ๋‚˜ ํฌํ•จ 2๋ช…์ด์˜€๋‹ค. 3๋ช… ์ •๋„๋Š” ๋  ์ค„ ์•Œ์•˜๋Š”๋ฐ ๋ฉด์ ‘์ž 2 ๋ฉด์ ‘๊ด€ 3 ์ด๋ผ ๋†€๋ž๋‹ค ์‚ฌ์‹ค ๋‚œ ๋Œ€ํ•™๊ต ์˜ฌ ๋•Œ๋„ 6๊ต๊ณผ๋กœ ์™€์„œ ์ธ์ƒ์— ๋ฉด์ ‘์„ ๋ณธ ๊ฒฝํ—˜์ด ์—†๋‹ค ๊ทธ๋ƒฅ.. ์—†์–ด ๊ทธ๋ƒฅ.. ์ด๋ฒˆ์— ์ฒ˜์Œ์œผ๋กœ ์ œ๋Œ€๋กœ ์ค€๋น„ํ•ด์„œ ๋ฉด์ ‘์„ ๋ดค๋Š”๋ฐ ์ž˜ ๋ณธ๊ฑด์ง€๋Š” ๋ชจ๋ฅด๊ฒ ๋‹ค ใ…Ž ๋ง์„ ๋ฒ„๋ฒ…์˜€๋‹คใ…  ๊ทผ๋ฐ ์‚ฌ์‹ค ์˜ˆ์ƒ ์งˆ๋ฌธ๋งŒ 38๊ฐœ๋ฅผ ๋ฝ‘์•˜๋Š”๋ฐ ๊ทธ ์ค‘ ํ•˜๋‚˜? ๋‘˜? ๊ทธ์ •๋„ ๋‚˜์˜จ๋“ฏ ใ…‹.. ํ•œ๋ฒˆ์ฏค ์ƒ๊ฐํ•ด๋ณผ๋งŒํ•œ ์งˆ๋ฌธ์ธ๋ฐ ์˜ˆ์ƒ ๋ชปํ•œ ์งˆ๋ฌธ๋“ค์ด ๋งŽ์•˜๋‹ค.. ์ƒ๊ฐ๋‚˜๋Š” ์งˆ๋ฌธ๋“ค์„ ์ •๋ฆฌํ•ด๋ณด์ž๋ฉด 1. Uiux์— ๊ด€์‹ฌ์ด ๋งŽ๋‹ค๊ณ  ํ•˜์…จ๋Š”๋ฐ ๋””์ž์ด๋„ˆ์™€ ์˜๊ฒฌ์กฐ์œจ์ด ์ ˆ๋Œ€ ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•  ๊ฒƒ์ธ์ง€? โžก๏ธ ์ฒ˜์Œ์—๋Š” ์™œ ๊ทธ๋ ‡๊ฒŒ ์ƒ๊ฐํ•˜์‹œ๋Š” ์ง€ ๋””์ž์ด๋„ˆ ๋ถ„์˜ ์˜๊ฒฌ์„ ๋ฌผ์–ด๋ณด๊ณ ..

๋””๋ฐ”์šด์‹ฑ๊ณผ ์“ฐ๋กœํ‹€๋ง

์ž˜๋ชป๋œ ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ์•Œ๋ ค์ฃผ์„ธ์š” ! ๐Ÿ˜„๐Ÿ˜Š ๋””๋ฐ”์šด์‹ฑ๊ณผ ์“ฐ๋กœํ‹€๋ง์€ ๋””๋ฐ”์ด์Šค์— ๋ฌด๋ฆฌ๋ฅผ ์ฃผ์ง€ ์•Š๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ•์ด๋‹ค. ์ผ์ข…์˜ ์ตœ์ ํ™”๋ผ๊ณ  ๋ณด๋ฉด๋œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๊ฐ๊ฐ์˜ ์˜๋ฏธ๋ฅผ ์•Œ์•„๋ณด์ž. ๋””๋ฐ”์šด์‹ฑ(debouncing) : ์—ฐ์ด์–ด ๋ฐœ์ƒํ•œ ์ด๋ฒคํŠธ๋ฅผ ํ•˜๋‚˜์˜ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์–ด์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ฃผ๋กœ, ๊ทธ๋ฃน์—์„œ ์ฒ˜์Œ์ด๋‚˜ ๋งˆ์ง€๋ง‰์œผ๋กœ ์‹คํ–‰๋œ ํ•จ์ˆ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค. ์“ฐ๋กœํ‹€๋ง(throttling) : ์—ฐ์ด์–ด ๋ฐœ์ƒํ•œ ์ด๋ฒคํŠธ์— ๋Œ€ํ•ด, ์ผ์ •ํ•œ delay๋ฅผ ํฌํ•จ์‹œ์ผœ ์—ฐ์†์ ์œผ๋กœ ๋ฐœ์ƒํ•œ ์ด๋ฒคํŠธ๋Š” ๋ฌด์‹œํ•˜๋Š” ๋ฐฉ์‹์„ ๋œปํ•œ๋‹ค. ์ฆ‰, delay์‹œ๊ฐ„๋™์•ˆ ํ˜ธ์ถœ๋œ ํ•จ์ˆ˜๋Š” ๋ฌด์‹œํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ๋””๋ฐ”์šด์‹ฑ ์˜ˆ์‹œ๋ฅผ ๋“ค์–ด ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•ด๋ณด๊ฒ ๋‹ค. ์‹๋‹น์—์„œ ์ฃผ๋ฌธ์„ ํ•  ๋•Œ, ์ฒซ๋ฒˆ์งธ ๋ฐฉ๋ฒ• 1. ๊ณ ๊ฐ: ์ฝœ๋ผ ์ฃผ๋ฌธ์ด์š”! 2. ์ง์›: ์ฝœ๋ผ ์ฃผ๋ฌธ๋„ฃ๊ธฐ ..

[VanillaJS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๊ณผ์ œ ํ…Œ์ŠคํŠธ๋ฅผ ์—ฐ์Šตํ•˜๋ฉด์„œ ๋ฐฐ์šด ์›น ํŽ˜์ด์ง€ ๊ตฌ์กฐ

์ด๋ฒˆ์— ์šฐํ…Œ์บ  5๊ธฐ 2์ฐจ ๊ณผ์ œํ…Œ์ŠคํŠธ๋ฅผ ์ค€๋น„ํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์— ๊ณ ์–‘์ด ์‚ฌ์ง„์ฒฉ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด๋ผ๋Š” ๊ณผ์ œํ…Œ์ŠคํŠธ๋ฅผ ํ’€์–ด๋ณด์•˜๋‹ค. ์ง€๋‚œ๋ฒˆ์— ๊ณ ์–‘์ด ์‚ฌ์ง„ ๊ฒ€์ƒ‰ํ•˜๊ธฐ๋ฅผ ํ–ˆ์—ˆ๋Š”๋ฐ ๊ทธ๋•Œ ๋ฐ”๋‹๋ผJS๊ฐ€ ์ฒ˜์Œ์ด๋ผ ์ง„์งœ ์•„๋ฌด๊ฒƒ๋„ ๋ชจ๋ฅด๊ณ  ์ด๊ฒƒ์ €๊ฒƒ ๋’ค์ง€๋ฉด์„œ ๊ตฌํ˜„ํ–ˆ๋”๋‹ˆ ๋จธ๋ฆฌ์— ๋‚จ์•„์žˆ๋Š”๊ฒŒ ์—†๋‹ค.. ๋ฐ”๋‹๋ผ JS์ž์ฒด๊ฐ€ ๋„ˆ๋ฌด ์žฌ๋ฏธ์—†์–ด์„œ ๊พธ์—ญ๊พธ์—ญ ํ•ด์„œ ๊ทธ๋Ÿฐ๊ฒƒ๋„ ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค ใ…Ž ๋ญ ์จ‹๋“  ์„œ๋ก ์€ ์ด๋งŒํ•˜๊ณ , ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ๊ณผ์ œํ…Œ์ŠคํŠธ๋ฅผ ๋”ฑ ์—ด์—ˆ์„ ๋•Œ ์•„๋ฌด๊ฒƒ๋„ ์—†๋Š” ์ƒ ํŒŒ์ผ์— ์–ด๋–ป๊ฒŒ ๊ตฌ์กฐ๋ฅผ ๊ตฌ์„ฑํ•ด๋‚˜๊ฐ€๋ฉด ๋  ์ง€ ์•Œ์•„๋ณผ ๊ฒƒ์ด๋‹ค. ๋จผ์ € ์ฒ˜์Œ์—” index.html์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ํ•ด๋‹น ํŒŒ์ผ์•ˆ์— ์š”์†Œ๊ฐ€ ๊ณ„์† ์ถ”๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค. htmlํŒŒ์ผ์—์„œ ํ•  ์ผ์€ jsํŒŒ์ผ์„ ์—ฐ๊ฒฐํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ๊ณ ์–‘์ด ์‚ฌ์ง„์ฒฉ scriptํƒœ๊ทธ๋Š” ์•ˆ์— ๋„ฃ์–ด๋„, ์•ˆ..

javascript 2022. 5. 11. 13:07
[HTML/JS] datasetํ™œ์šฉํ•˜๊ธฐ (data-*)

์–ด๋Š Element์—๋‚˜ data-๋กœ ์‹œ์ž‘ํ•˜๋Š” ์†์„ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ํ™”๋ฉด์—๋Š” ๋ Œ๋”๋ง ๋˜์ง€ ์•Š๊ฒŒ ์ •๋ณด๋ฅผ ์—˜๋ฆฌ๋จผํŠธ์— ๋‹ด์•„๋†“์„ ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ์šฉ๋ฒ• ... Javascript์—์„œ ์ ‘๊ทผํ•˜๊ธฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ dataset๊ฐ์ฒด๋ฅผ ํ†ตํ•ด์„œ data์†์„ฑ์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ ์ ‘๋‘์‚ฌ์ธ data-๊ฐ€ ์ œ๊ฑฐ๋˜๊ณ , ๋ชจ๋“  ๋Œ€๋ฌธ์ž๋Š” ์†Œ๋ฌธ์ž๋กœ ๋ณ€ํ™˜๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  data-๋‹ค์Œ์— ์˜ค๋Š” ์†์„ฑ๋ช…์€ -(dash)๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  camelCase๋กœ ๋ณ€ํ™˜๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, data-node-id -> nodeId ๋กœ ๋ณ€ํ™˜. ๋”ฐ๋ผ์„œ, ์•„๋ž˜์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. const { nodeId } = e.target.dataset; e.target.dataset.nodeId; e.target.dataset['nodeId']; in ์—ฐ์‚ฐ์ž๋กœ ํ•ด๋‹น ์†์„ฑ์ด ์กด์žฌ..

javascript 2022. 5. 10. 23:21