useQuery์ ๋ํ์ฌ
useQuery์ ๋ํ ๊ธ์ ๋๋ค.
์ฐ๋ฆฌ๋ ๋ฐฑ์๋์์ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ฌ ๋, useQuery๋ก ๊ฐ์ ธ์ค๊ณค ํฉ๋๋ค. ์ ํํ ์ด๋ค ์์ ์์ useQuery๋ฅผ ์ฌ์ฉํ๋๊ฒ ์ข์๊น์?
useQuery์ ๊ฐ๋
useQuery๋ ๋ฐ์ดํฐ๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ๋ถ๋ฌ์ค๊ธฐ ์ํด React ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฃผ๋ก ์ฌ์ฉ๋๋ React Query ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ ์ ๋๋ค.
์ฌ์ฉํ๋ ์ด์
- ๋ฐ์ดํฐ ๊ด๋ฆฌ: useQuery๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ฝ๊ณ ์ผ๊ด์ฑ ์๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ ์์ฒญ, ์บ์ฑ, ์ฌ์์ฒญ ๋ฐ ์ ๋ฐ์ดํธ ๋ฑ์ ์์ ์ ํธ๋ฆฌํ๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. React Query๋ ์ํ ๊ด๋ฆฌ์ ์บ์ฑ์ ์๋์ผ๋ก ์ฒ๋ฆฌํ๋ฏ๋ก ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ๊ณผ ์ผ๊ด์ฑ์ ์ ์งํ ์ ์์ต๋๋ค.
- ์๋ ๋ฆฌ๋ ๋๋ง: useQuery๋ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋ ๋ ์๋์ผ๋ก ์ปดํฌ๋ํธ๋ฅผ ๋ฆฌ๋ ๋๋งํ์ฌ ์ ๋ฐ์ดํธ๋ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ํ์ํ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ์ง์ ๋ฆฌ๋ ๋๋ง ๋ก์ง์ ์์ฑํ ํ์ ์์ด React Query๊ฐ ๊ด๋ฆฌํด์ฃผ๋ฏ๋ก ๊ฐ๋ฐ์๋ ๊ฐ๋จํ๊ฒ ์ ๋ฐ์ดํธ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ํ ์ ์์ต๋๋ค.
- ์บ์ฑ ๋ฐ ์ฌ์ฌ์ฉ: useQuery๋ ์์ฒญ ๊ฒฐ๊ณผ๋ฅผ ์๋์ผ๋ก ์บ์ฑํ์ฌ ๋์ผํ ๋ฐ์ดํฐ ์์ฒญ์ ๋ํด์๋ ์๋ฒ์ ์ฌ์์ฒญํ์ง ์๊ณ ์บ์๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์๊ณ , ๋คํธ์ํฌ ํธ๋ํฝ์ ์ค์ด๊ณ ์๋ฒ์ ๋ถํ๋ฅผ ๊ฐ์์ํฌ ์ ์์ต๋๋ค. ๋ํ, ์บ์ฑ๋ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฅธ ์ปดํฌ๋ํธ์์ ์ฌ์ฌ์ฉํ ์ ์์ด ์ฝ๋์ ์ค๋ณต์ ์ค์ผ ์ ์์ต๋๋ค.
- ์๋ฌ ๋ฐ ๋ก๋ฉ ์ฒ๋ฆฌ: useQuery๋ ๋ฐ์ดํฐ ์์ฒญ ์ค ๋ฐ์ํ๋ ์๋ฌ๋ ๋ก๋ฉ ์ํ๋ฅผ ์๋์ผ๋ก ์ฒ๋ฆฌํด์ค๋๋ค. ๋ฐ์ดํฐ ์์ฒญ์ด ์คํจํ ๊ฒฝ์ฐ ์๋ฌ๋ฅผ ์ฒ๋ฆฌํ๊ณ , ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๋ ๋์ ๋ก๋ฉ ์ํ๋ฅผ ํ์ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ฌ์ฉ์์๊ฒ ์ ์ ํ ์ํ ๋ฉ์์ง๋ฅผ ์ ๊ณตํ๊ณ UX๋ฅผ ๊ฐ์ ํ ์ ์์ต๋๋ค.
- ๊ฐํธํ ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ: useQuery๋ ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ๋ฅผ ๊ฐํธํ๊ฒ ์ฒ๋ฆฌํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ์ ๋ฐ์ดํธํ๋ฉด ์๋์ผ๋ก ์บ์๊ฐ ๊ฐฑ์ ๋๊ณ , ์ฐ๊ด๋ ์ปดํฌ๋ํธ๋ค์ด ์๋์ผ๋ก ์ ๋ฐ์ดํธ๋ฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ์ ์ ์งํ๊ณ UI๋ฅผ ์ ๋ฐ์ดํธํ๋ ์์ ์ ๊ฐ์ํํ ์ ์์ต๋๋ค.
๊ฒฐ๋ก
๋ฐ๋ผ์ useQuery๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ ์์ฒญ, ์บ์ฑ, ์ ๋ฐ์ดํธ, ์๋ฌ ์ฒ๋ฆฌ ๋ฑ์ ์์ ์ ๋ ํธ๋ฆฌํ๊ฒ ์ฒ๋ฆฌํ ์ ์์ผ๋ฉฐ, ๋ฐ์ดํฐ ๊ด๋ฆฌ์ ์ ๋ฐ์ดํธ์ ๋ํ ๋ณต์ก์ฑ์ ์ค์ผ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ๋ฐ์ดํฐ ์์ฒญ๊ณผ ๊ด๋ จ๋ ๋ก์ง์ ์ง์คํ ์ ์๊ณ , ๋ฐ์ดํฐ ๊ด๋ฆฌ๋ฅผ ์ถ์ํํ์ฌ ์์ฐ์ฑ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
์ฒจ์ธ
- useQuery๋ ๋ค์ํ ๊ณ ๊ธ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ๋ฐ์ดํฐ ์์ฒญ์ ๋ํ ์ธ๋ฐํ ์ ์ด๋ ๊ฐ๋ฅํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์บ์ ์ ์ด, ์์ฒญ ๋ํ๋์ ๊ด๋ฆฌ, ๋ฐ์ดํฐ ์ฌ์์ฒญ ๊ฐ๊ฒฉ ์ค์ , ํ์ด์ง ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๋ ๋ณต์กํ ๋ฐ์ดํฐ ์๊ตฌ์ฌํญ์ ๊ฐ๋จํ๊ฒ ๊ตฌํํ ์ ์๋๋ก ๋์์ค๋๋ค.
- React Query๋ ์๋ฒ์์ ์ํธ์์ฉ์ ์ถ์ํํ๊ณ API ์์ฒญ์ ๋จ์ํํ๊ธฐ ์ํด Axios ๋ฑ์ HTTP ํด๋ผ์ด์ธํธ์๋ ํตํฉ๋ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์๋ฒ์์ ํต์ ์ ๋์ฑ ํธ๋ฆฌํ๊ฒ ์ฒ๋ฆฌํ ์ ์์ผ๋ฉฐ, ์ฝ๋์ ์ผ๊ด์ฑ์ ์ ์งํ ์ ์์ต๋๋ค.
- ๋ง์ง๋ง์ผ๋ก, useQuery๋ React Query์ ์ผ๋ถ๋ก ์ ๊ณต๋๋ ๊ธฐ๋ฅ์ด๋ฏ๋ก React Query์ ๋ค๋ฅธ ๊ธฐ๋ฅ๊ณผ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, useMutation์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ์์ ๋๋ ์์ฑ ์์ฒญ์ ์ฒ๋ฆฌํ๊ฑฐ๋, useInfiniteQuery๋ฅผ ์ฌ์ฉํ์ฌ ํ์ด์ง๋ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.