5. usehooks-ts
1. usehooks-ts
๋ชจ๋ Hook์ ๋ํ ์ฝ๋๊ฐ ์น ์ฌ์ดํธ์ ์ง์ ๋ ธ์ถ๋จ
์ฐธ/๊ฑฐ์ง์ ๋ค๋ฃฐ ๋ toggle ๊ฐ์ด ์๋๊ฐ ๋ช ํํ ํจ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅ
์์
์์กด์ฑ ๋ฐฐ์ด์ ๋น ๋ฐฐ์ด๋ก ๋ฃ์ด์ ํ ๋ฒ๋ง ์คํํ๋ Effect๋ฅผ ์ก์์ค ๋๊ฐ ๋ง์๋ฐ, useEffectOnce๋ฅผ ์ฌ์ฉํ๋ฉด ํ ๋ฒ๋ง ์คํํ๋ ๊ฒ์ด ๋ช ํํด์ง ํํ๋ ฅ์ ์ฆ๋
์์
์ ๋ง ๊ฐ๋จํ ์ธ ๋ ์ข์
์์
๋ฐ์ดํฐ๊ฐ ๋ก๋ฉ ์ค์ผ ๋๋ ๋ฌธ์ ๊ฐ ๋ ์ ์์ผ๋ฏ๋ก ์์ธ ์ฒ๋ฆฌ
๊ธฐํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
๋ช ๊ฐ์ง ๊ธฐ๋ฅ์ด ์ด์ง ๋ ์๋ useFetch ๋ผ์ด๋ธ๋ฌ๋ฆฌ
์กฐ๊ธ ๋ ๋ณต์กํด๋ ๊ด์ฐฎ๋ค๋ฉด, ์บ์ ์ด์๋ฅผ ๊ณ ๋ คํ ์ข์ ๋์
TanStack Query (React Query)
React์์ setInterval ๋ฑ์ ์ธ ๋๋ ์ฃผ์ํด์ผ ํ ๋ถ๋ถ์ด ์์ด์ Custom Hook์ ๋ง๋ค์ด์ ํด๊ฒฐํด์ผ ํจ
๋ชจ๋ ์ข ๋ฅ์ ์ด๋ฒคํธ๋ฅผ ํ์ธ ๊ฐ๋ฅ ๐ก ํนํ dispatchEvent๋ก ์ ๋ฌ๋๋ ์ปค์คํ ์ด๋ฒคํธ์ ๋ฐ์ํ๊ธฐ ์ข์
useClickAnyWhere()์์์ ์์
localStorage์ JSON์ผ๋ก ๊ฐ์ฒด ์์ํ ์ด๋ฒคํธ๋ฅผ ํตํด(dispatchEvent + useEventListener) ๋ค๋ฅธ ์ปดํฌ๋ํธ์ ๋๊ธฐํํ๋ ๊ฒ ๋งค์ฐ ์ค์ํ ํน์ง
OS์์ ์ค์ ๋ ๋คํฌ๋ชจ๋ ์ฌ๋ถ(์ด๊น๊ฐ)๋ฅผ ์ ์ ์์
2. SWR
SWR ๋ช ์นญ์ HTTP RFC 5861(opens in a new tab)์ ์ํด ์๋ ค์ง HTTP ์บ์ ๋ฌดํจ ์ ๋ต์ธ stale-while-revalidate์์ ์ ๋ SWR์ ๋จผ์ ์บ์(์คํ์ผ)๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ ํ, fetch ์์ฒญ(์ฌ๊ฒ์ฆ)์ ํ๊ณ , ์ต์ข ์ ์ผ๋ก ์ต์ ํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ์ ๋ต
SWR์ ์ฌ์ฉํ๋ฉด ์ปดํฌ๋ํธ๋ ์ง์์ ์ด๋ฉฐ ์๋์ผ๋ก ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ ์คํธ๋ฆผ์ ๋ฐ๊ฒ ๋จ UI๋ ํญ์ ๋น ๋ฅด๊ณ ๋ฐ์์
์ฅ์
๋จ ํ ์ค์ ์ฝ๋๋ก ํ๋ก์ ํธ ๋ด์ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ ๋ก์ง์ ๋จ์ํํ ์ ์์ผ๋ฉฐ, ๋ค์์ ๊ธฐ๋ฅ๋ค์ ๋ฐ๋ก ์ฌ์ฉํ ์ ์์
๋น ๋ฅด๊ณ , ๊ฐ๋ณ๊ณ , ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ
๋ด์ฅ๋ ์บ์ ๋ฐ ์์ฒญ ์ค๋ณต ์ ๊ฑฐ
์ค์๊ฐ ๊ฒฝํ
์ ์ก ๋ฐ ํ๋กํ ์ฝ์ ๊ตฌ์ ๋ฐ์ง ์์
SSR / ISR / SSG support
TypeScript ์ค๋น
React Native
3. React Query
TS/JS, React, Solid, Vue ๋ฐ Svelte๋ฅผ ์ํ ๊ฐ๋ ฅํ ๋น๋๊ธฐ ์ํ ๊ด๋ฆฌ
์ธ๋ถํ๋ ์ํ ๊ด๋ฆฌ, ์๋ ๋ค์ ๊ฐ์ ธ์ค๊ธฐ ๋ฐ ๋์๋ ๋น๋๊ธฐ์ ์คํ๊ฒํฐ ์ฝ๋ ๊ทธ๋ฆ์ ๋ฒ๋ฆฌ์ญ์์ค. TanStack Query๋ ๊ฐ๋ฐ์์ ์ฌ์ฉ์ ๊ฒฝํ ๋ชจ๋๋ฅผ ์ง์ ์ ์ผ๋ก ๊ฐ์ ํ๋ ์ ์ธ์ ์ด๊ณ ํญ์ ์ต์ ์ํ์ ์๋ ๊ด๋ฆฌ ์ฟผ๋ฆฌ ๋ฐ ๋ณํ์ ์ ๊ณตํฉ๋๋ค.
์ฅ์
1. ์ ์ธ์ ๋ฐ ์๋
React Query์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์์น์ ํ์ํ ์ต์ ์ ๋ณด๋ฅผ ์๋ ค์ฃผ๋ฉด ๋๋จธ์ง๋ ์๋์ผ๋ก ์ฒ๋ฆฌ zero-configuration์ผ๋ก ์ฆ์ ์บ์ฑ, ๋ฐฑ๊ทธ๋ผ์ด๋ ์ ๋ฐ์ดํธ ๋ฐ stale ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌ
2. ๋จ์ํ๊ณ ์น์ํจ
promise, async/await ์์ ๋ฐฉ๋ฒ์ ์๊ณ ์๋ค๋ฉด React Query๋ฅผ ์ฌ์ฉํ ์ ์์ ๊ด๋ฆฌํด์ผ ํ ์ ์ญ ์ํ, ๋ฆฌ๋์, ์ ๊ทํ ์์คํ ๋๋ ์ดํดํ ๋ฌด๊ฑฐ์ด ๊ตฌ์ฑ์ด ์์ ๋ฐ์ดํฐ๋ฅผ ํด๊ฒฐํ๋(๋๋ ์ค๋ฅ๋ฅผ ๋ฐ์์ํค๋) ํจ์๋ฅผ ์ ๋ฌํ๊ธฐ๋ง ํ๋ฉด ๋จ
3. ํ์ฅ ๊ฐ๋ฅ
React Query๋ ๋ชจ๋ ์ฌ์ฉ ์ฌ๋ก์ ๋ง๋ ๋ ธ๋ธ์ ์ต์ ์ ์ฌ์ฉํ์ฌ ์ฟผ๋ฆฌ์ ๊ฐ ์ต์ ๋ฒ ์ธ์คํด์ค๊น์ง ๊ตฌ์ฑํ ์ ์์ ์ ์ฉ devtools, ๋ฌดํ ๋ก๋ฉ API ๋ฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ์ ๋ฐ์ดํธํ ์ ์๋ ์ผ๊ธ mutation tool ์ ๊ณต
Last updated