<aside> ๐Ÿ“Œ

</aside>

๐Ÿ“š Tanstack query๋ž€?

๋Œ€ํ‘œ์ ์ธ ๊ธฐ๋Šฅ

๋ฐ์ดํ„ฐ ์บ์‹ฑ

queryKey๋กœ ๋ฐ›์•„์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค. ๋งŒ์•ฝ queryKey์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋‹ค๋ฉด ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์•„์˜ค๊ณ , ์žˆ๋‹ค๋ฉด ์บ์‹ฑ๋œ ๋ฐ์ดํ„ฐ, ์ฆ‰ queryKey์™€ ์ผ์น˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

import { useQuery } from '@tanstack/react-query'

export default function MyComponent() {
	const { data } = useQuery({
		queryKey: ['delay'],
		quertFun: async () => (await fetch('<https://api>')).json()
	})
	return <div>{JSON.stringify(data)}</div>
}

์•„๋ž˜์˜ ์ด๋ฏธ์ง€๋ฅผ ๋ณด๋ฉด ๋” ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

Query Cache์— ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ(=queryKey์™€ ์ผ์น˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ)์—๋Š” ์„œ๋ฒ„์— ์š”์ฒญํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒˆ๋กœ ๊ฐ–๊ณ  ์˜จ๋‹ค. ์ด๋ ‡๊ฒŒ ์ƒˆ๋กœ ๊ฐ–๊ณ  ์˜จ ๋ฐ์ดํ„ฐ๋Š” ์บ์‹œ๋˜๊ณ , ๊ทธ ๋‹ค์Œ ์š”์ฒญ๋ถ€ํ„ฐ๋Š” ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์ถœ์ฒ˜: https://www.heropy.dev/p/HZaKIE

์ถœ์ฒ˜: https://www.heropy.dev/p/HZaKIE

๋ฐ˜๋Œ€๋กœ Query Cache์— ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ด์ง€ ์•Š๊ณ , ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ–๊ณ  ์™€์„œ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์š”์ฒญ์ด ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐœ์ƒํ•ด๋„, ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ค‘๋ณต ์š”์ฒญ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

์ถœ์ฒ˜: https://www.heropy.dev/p/HZaKIE

์ถœ์ฒ˜: https://www.heropy.dev/p/HZaKIE

๊ทธ๋ ‡๋‹ค๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ํ•œ ๋ฒˆ ์บ์‹œ๋˜๋ฉด ์„œ๋ฒ„๋กœ ๋” ์ด์ƒ ์š”์ฒญ์„ ๋ณด๋‚ผ ์ˆ˜ ์—†์„๊นŒ?

๋ฐ์ดํ„ฐ ์‹ ์„ ๋„