๐ setQueryData๊ฐ ๋ฐ์ดํฐ๋ฅผ fresh๋ก ๋ง๋๋ ์ด์
๐ก 1๏ธโฃ React Query์ ๊ธฐ๋ณธ ์์น
"์บ์์ ์๋ ๋ฐ์ดํฐ๋ ์ ๋ขฐํ ์ ์๋ ์ต์ ๋ฐ์ดํฐ์ฌ์ผ ํ๋ค."
setQueryData๋ฅผ ํธ์ถํ๋ค๋ ๊ฒ์, ๊ฐ๋ฐ์๊ฐ ์๋์ ์ผ๋ก ์ต์ ๋ฐ์ดํฐ๋ผ๊ณ ๊ฐ์ฃผํ๋ ๋ฐ์ดํฐ๋ฅผ ์บ์์ ์ง์ ๋ฃ์๋ค๋ ์๋ฏธ์
๋๋ค.
- React Query๋ "๊ฐ๋ฐ์๊ฐ ์ง์ ๋ฃ์ ๋ฐ์ดํฐ๋๊น ์ต์ ๋ฐ์ดํฐ๋ค!"๋ผ๊ณ ํ๋จํ๊ณ , ํด๋น ์ฟผ๋ฆฌ๋ฅผ fresh ์ํ๋ก ๋ณ๊ฒฝํฉ๋๋ค.
๐ก 2๏ธโฃ fresh์ stale์ ์๋ฏธ
| ์ํ | ์๋ฏธ |
|---|
| fresh | ํ์ฌ ์บ์ ๋ฐ์ดํฐ๊ฐ ์ ๋ขฐํ ์ ์๋ค (๋ณ๋ fetch ํ์ ์์) |
| stale | ๋ฐ์ดํฐ๊ฐ ์ค๋๋์ด ์ ๋ขฐํ ์ ์์ (๋ค์ ๊ธฐํ์ ๋ฐ๋์ refetch ํ์) |
setQueryData โ ๊ฐ๋ฐ์๊ฐ ์ต์ ๋ฐ์ดํฐ๋ผ๊ณ ์ง์ ์ฃผ์
- React Query โ "์ด๊ฑด ๋ฏฟ์๋งํ ์ต์ ๋ฐ์ดํฐ๋๊น fresh ์ฒ๋ฆฌ!"
๐ก 3๏ธโฃ setQueryData๋ ์ฃผ๋ก ๋๊ด์ ์
๋ฐ์ดํธ์ฉ
- ๋ณดํต ์๋ฒ ์์ฒญ ์ ์ UI๋ฅผ ๋จผ์ ์
๋ฐ์ดํธํ ๋
setQueryData๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ์ฆ, ๊ฐ๋ฐ์๊ฐ "์ด ์ ๋๋ฉด ์๋ฒ๋ ๋ง์ ๊ฑฐ์ผ"๋ผ๊ณ ํ๋จํ๊ณ ์
๋ฐ์ดํธํ๋ ํ๋ฆ.
- React Query๋ "๊ฐ๋ฐ์๊ฐ ์ต์ ๋ฐ์ดํฐ๋ผ๊ณ ๋ณด์ฅํ์ผ๋, fresh๋ก ๊ฐ์ฃผํด๋ ๋๊ฒ ์ง"๋ผ๊ณ ํด์ํฉ๋๋ค.
๐ก 4๏ธโฃ staleTime๋ณด๋ค setQueryData๊ฐ ์ฐ์
- ๊ธฐ์กด ์ฟผ๋ฆฌ์
staleTime ์ค์ ๊ณผ ๊ด๊ณ์์ด
setQueryData๋ฅผ ํ๋ฉด โ ์ฆ์ fresh ์ฒ๋ฆฌ
staleTime์ ๊ทธ ์์ ๋ถํฐ ๋ค์ ์นด์ดํธ
โ ๏ธ ๊ฐ๋ฐ์ ๋ณด์ฆ ๋ฐ์ดํฐ = fresh ์ฒ ํ์ ํจ์
setQueryData๋ก ๋ฃ์ ๋ฐ์ดํฐ๊ฐ ์ค์ ๋ก ์ต์ ์ด ์๋ ์๋ ์์
- ์ฌ๋ฌ ํ๋ฉด์์ ๋ฐ์ดํฐ ๊ณต์ ์, ๋ค๋ฅธ ํ๋ฉด์ด
setQueryData๋ก ๋ณ๊ฒฝํ ๋ฐ์ดํฐ๋ฅผ "fresh๋๊น ๋ฏฟ์๋งํด"๋ผ๊ณ ์คํํ ๊ฐ๋ฅ์ฑ
- ์ด๋ฐ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๋ ค๋ฉด,
invalidateQueries๋ก ๋ช
ํํ stale ์ฒ๋ฆฌํ๋ ๊ฒ์ด ์์
๐ ์์ ์ ๋ฆฌ
| ๋์ | ๊ฒฐ๊ณผ |
|---|
| ์๋ฒ์์ ๊ฐ์ ธ์จ ๋ฐ์ดํฐ๋ก ์
๋ฐ์ดํธ | fresh (๊ธฐ๋ณธ ๋์) |
setQueryData๋ก ์
๋ฐ์ดํธ | fresh (๊ฐ๋ฐ์๊ฐ ๋ณด์ฅํ ์ต์ ๋ฐ์ดํฐ๋ก ๊ฐ์ฃผ) |
invalidateQueries ํธ์ถ | stale (๋ค์์ ๋ฐ๋์ refetch) |
staleTime ์ค์ ์์ | ํด๋น ์๊ฐ ๋์์ ๋ฌด์กฐ๊ฑด fresh ์ ์ง |
๐ข ์ ๋ฆฌ
| ํ๋ | React Query์ ํด์ |
|---|
| ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ด | fresh |
setQueryData๋ก ๋ฐ์ดํฐ ์์ | fresh |
invalidateQueries ํธ์ถ | stale |
staleTime์ด ์ง๋๊ฐ | stale |
โ
๊ฒฐ๋ก
setQueryData = ๊ฐ๋ฐ์๊ฐ "์ด๊ฑฐ ๋ฏฟ์ ์ ์์ด!" ํ๊ณ ์ง์ ๋ฃ์ ๋ฐ์ดํฐ
React Query = "๊ฐ๋ฐ์๊ฐ ๋ฃ์์ผ๋๊น ์ต์ ๋ฐ์ดํฐ๋ก ๊ฐ์ฃผํ๊ณ fresh ์ฒ๋ฆฌ"
๐ ์ฐธ๊ณ ๋ฌธ์