2์ฐจ ํ๋ก์ ํธ ์ค GoToTop Btn ๊ธฐ๋ฅ์ ๊ตฌํํ๋๋ฐ, ๋ฉํ ๋์ ๋ฆฌ๋ทฐ๋ฅผ ๋ณด๊ณ ์ฑ๋ฅ ๊ฐ์ ์ ์ํด ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํด๋ณธ๋ค.
Lodash
A modern JavaScript utility library delivering modularity, performance & extras. ๋ชจ๋ํ, ์ฑ๋ฅ ๋ฐ ๊ธฐํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ ํธ๋ฆฌํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ lodash_๊ณต์๋ฌธ์
โ throttle vs debounce
debounce์ throttle์ ์ด๋ฒคํธ๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ์คํํ ๋, ์ฝ๋ฐฑ ํจ์์ ๋ถํ์ํ ์คํ์ ์ค์ฌ์ฃผ๋ ์ญํ ์ ํ๋ค. ๋ถํ์ํ ์๋ฒ ๋ฆฌํ์คํธ๋ฅผ ๋ง์ ์๋ ์๊ณ , ๋ถํ์ํ ํต์ ์ ์ค์๊ณผ ๋์์ ํ์ ์๋ ๋ ๋๋ง ๋ํ ๋ง์ ์ ์์ด ์ปดํฌ๋ํธ์ ์ฑ๋ฅ ๊ฐ์ ์๋ ๋์์ ์ค๋ค.
โ throttle
- throttle์ ์ฝ๋ฐฑ ํจ์(func)๋ฅผ ์ผ์ ์ฃผ๊ธฐ(wait) ๋ด์ ํ ๋ฒ๋ง ํธ์ถํ๋ค.
- ๋ณดํต ์คํฌ๋กค, ๋๋๊ทธ, mousemove ์ด๋ฒคํธ ๋ฑ์ ์ฌ์ฉ
โ debounce
- debounce๋ ์ด๋ฒคํธ๊ฐ ๋๋ ๋ค์ ์ค์ ํด๋ ์๊ฐ(wait)์ด ์ง๋์ผ ์ฝ๋ฐฑ(func)์ด ์คํ ๋๋ค
- input onChange์์ ์ฌ์ฉ(์ ๋ ฅ ์ด๋ฒคํธ๊ฐ ๋๋ ๋ค ์คํ)
throttle์ ํ์คํ ์ /ํ ๋น๊ต๐
์ด์ ๋๋ก ๊ฐ๋ ์ ๋ฆฌ๋ฅผ ๋๋ด๊ณ ์ค์ ํ๋ก์ ํธ์ ์ ์ฉํด๋ณด์๋ค. ์ค์! ๊ฐ์ ํจ์๋ฅผ ๋ฐ๋ผ๋ณด๊ฒ ์ ์ฉํด์ผ ์ธ๋ง์ดํธ๊ฐ ๋จ!
-
์ ์ฉ์
-
์ ์ฉํ
์ ๋ฆฌ!
debounce๋ ์ด๋ฒคํธ๊ฐ ๋๋ ๋๊น์ง ๊ธฐ๋ค๋ ธ๋ค๊ฐ ์์๋๋ค๋ ์ , throttle์ ์ด๋ฒคํธ๊ฐ ์์๋๋ฉด ์ผ์ ์ฃผ๊ธฐ๋ก ๊ณ์ ์คํํ๋ค๋ ์ ์ด ๋ค๋ฅด๋ค.
์์ฝ๋ ์ด๋ฐ์๋ ๊ธฐ๋ฅ์ด ๊ตฌํ๋๊ธฐ๋ง ํ๋ฉด ์ด๊ฒ ๋๋ค?
๋ผ๋ฉฐ ๋ง๋ฅ ์ข์์๋๋ฐ,
2์ฐจ ํ๋ก์ ํธ๋ฅผ ์งํ์ค์ธ ์์ฆ์, ๊ธฐ๋ฅ ๊ตฌํ ๋น์ฐํ๊ฑฐ์ง!
๋ฟ๋ง ์๋๋ผ ์ฑ๋ฅ์ ์ธ ๋ถ๋ถ์๋ ๊ด์ฌ์ด ๋ง์์ก๋ค.
์ข์? ๊ฐ๋ฐ์๊ฐ ๋๊ธฐ ์ํ ๋๋ฆ์ ๋ฐฉํฅ์ด ํ๋์ฉ ๋ชธ์ ์๊ฒจ์ง๊ณ ์๋ ๋ฏํ.. ๊ธฐ๋ถ์ ์ธ ๊ธฐ๋ถ์ฐโฆ