๐Ÿ’ป TIL 18 | ๋””๋ฐ”์šด์Šค(Debounce)

์ด๋ฒˆ ์ฑ•ํ„ฐ๋Š” ๋””๋ฐ”์šด์Šค์— ๋Œ€ํ•ด ๋‹ค๋ฃจ์—ˆ์Šต๋‹ˆ๋‹ค.
โš ๏ธ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์€ ์˜คํƒ€๋‚˜ ์ž˜๋ชป๋œ ์ •๋ณด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ“๊ธ€๋กœ ์•Œ๋ ค์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค

๐Ÿ“ƒ ์˜ค๋Š˜ ๊ณต๋ถ€ํ•œ ๊ฒƒ

๋””๋ฐ”์šด์Šค

์–ด๋–ค ๋‚ด์šฉ์„ ์ž…๋ ฅํ•˜๋‹ค๊ฐ€ ํŠน์ • ์‹œ๊ฐ„ ๋™์•ˆ ๋Œ€๊ธฐํ•˜๊ณ  ์žˆ์œผ๋ฉด ๋งˆ์ง€๋ง‰์— ์ž…๋ ฅ๋œ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์„œ๋ฒ„ ์š”์ฒญ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

 $target.addEventListener("keyup", (e) => {
		debounce(e.target.value);
  });

์ด๋ ‡๊ฒŒ keyup์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ debouce๋ฅผ ํ˜ธ์ถœํ•ด์ฃผ๋ฉด

let timer;
export const debounce = (value) => {
  if (timer) {
    clearTimeout(timer);
  }
  timer = setTimeout(() => {
    console.log("input ์š”์ฒญ์ด ๋“ค์–ด์™”์Šต๋‹ˆ๋‹ค.", value);
  }, 2000);
};
  1. ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ๋งˆ๋‹ค debounce๋ฅผ ํ˜ธ์ถœํ•˜๋Š”๋ฐ ์ด ๋•Œ ๋งˆ๋‹ค timer๋ฅผ ์ดˆ๊ธฐํ™”์‹œํ‚จ๋‹ค.
  2. ๋งˆ์ง€๋ง‰ ์ด๋ฒคํŠธ์—์„œ๋งŒ ๋™์ž‘ ํ•ด์•ผ ํ•˜๋ฏ€๋กœ setTimeout์„ ํ†ตํ•ด ์ด๋ฒคํŠธ๋ฅผ ์ง€์—ฐ์‹œํ‚จ๋‹ค.
  3. ํ‚ค๋ณด๋“œ ์ž…๋ ฅ์ด ๋ฐœ์ƒํ•˜๋ฉด 2์ดˆ ๊ธฐ๋‹ค๋ฆฌ๋‹ค๊ฐ€๊ฐ€ ๋‹ค์‹œ ํ‚ค๋ณด๋“œ ์ž…๋ ฅ์ด ๋ฐœ์ƒํ•˜๋ฉด ์‹œ๊ฐ„์„ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  2์ดˆ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ํ˜•์‹์œผ๋กœ ์ง„ํ–‰๋˜๋‹ค๊ฐ€ ๋งˆ์ง€๋ง‰ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด 2์ดˆ ๋’ค์— ์ด๋ฒคํŠธ๊ฐ€ ์‹คํ–‰๋œ๋‹ค.

๐Ÿ˜ฐ ์–ด๋ ค์› ๋˜ ๋‚ด์šฉ

๋””๋ฐ”์šด์Šค,, ์ปค์Šคํ…€ ์ด๋ฒคํŠธ,, ๊ทธ๋ฆฌ๊ณ  ์ „๋ถ€^^

๐Ÿ”ฅ ์˜ค๋Š˜์˜ ๋Š๋‚€์ 

๋…ธ์…˜ ํด๋กœ๋‹์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „ 16์ผ์ฐจ๊นŒ์ง€ ๊ฐ•์˜๋ฅผ ๋‹ค ๋“ค์—ˆ๋‹ค. ํ•˜์ง€๋งŒ!!๐Ÿ˜ก ์ปดํฌ๋„ŒํŠธ ๋ถ„๋ฆฌ, fetch, route, history.. ๋“ฑ๋“ฑ ๋‚ด ๊ฒƒ์œผ๋กœ ๋งŒ๋“ค์ง€ ๋ชปํ•˜์˜€๋‹ค..ใ… ใ…  ์˜ค๋Š˜ ๊ฐ•์˜ ์ค‘๊ฐ„๋ถ€ํ„ฐ๋Š” ์ฝ”๋“œ๋ฅผ ๊ทธ๋ƒฅ ๋”ฐ๋ผ์น˜๋Š” ๊ฒƒ ๊ฐ™์€..

๋…ธ์…˜ ํด๋กœ๋‹์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „ ์ž๋™ ์™„์„ฑ ํŽธ์ง‘๊ธฐ๋ฅผ ์ „์ฒด์ ์œผ๋กœ ๋ณต์Šตํ•˜๊ณ  ์‹œ์ž‘ํ•ด์•ผ๊ฒ ๋‹ค. ๋ฉด์ ‘ ์Šคํ„ฐ๋””๋„ ๋”ฅ ๋‹ค์ด๋ธŒ ์Šคํ„ฐ๋””๋„ ๋…ธ์…˜ ํด๋กœ๋‹๊ณผ ๋ณ‘ํ–‰ํ•  ์ˆ˜ ์žˆ์„์ง€ ๋„ˆ๋ฌด ๊ฑฑ์ •๋œ๋‹ค๐Ÿ˜‚ ๋„ˆ๋ฌด ๋ฏธ๋ฆฌ ๊ฒ๋จน๋Š”๊ฑด๊ฐ€์š”,,?๐Ÿ˜ž ๊ทธ๋ž˜๋„ ์ง€๊ธˆ๊นŒ์ง€ ๊พธ์ค€ํžˆ ์ž˜ ํ•ด์™”์œผ๋‹ˆ ์ปจ๋””์…˜ ์กฐ์ ˆ๋„ ๊ณต๋ถ€๋„ ํ™”์ดํŒ…~!๐Ÿ’•

๐Ÿ—ฃ ์˜ค๋Š˜์˜ TMI

์ด ๊ธ€์„ ๋ณด๋Š” ๋ชจ๋“  ํ”„๋กฑ์ด๋ถ„๋“ค๊ป˜.. ๋งค๋‹ˆ์ €๋‹˜๊ณผ ๋ฉด๋‹ด ๊ธฐํšŒ ๊ผญ ์žก์œผ์„ธ์š”!๐Ÿ˜˜ ๊ฐ’์ง„ ์‹œ๊ฐ„์ด์—ˆ์–ด์š”!

Refer

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค
๋””๋ฐ”์šด์Šค์™€ ์“ฐ๋กœํ‹€๋ง์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž!

์˜ค๋Š˜์˜ ๋‚ด์šฉ ์ •๋ฆฌ

๋ฐ๋ธŒ์ฝ”์Šค Day16

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ