"Parallel"(๋ณ๋ ฌ) ์ฟผ๋ฆฌ๋ fetching ๋์์ฑ์ ๊ทน๋ํํ๊ธฐ ์ํด ๋ณ๋ ฌ๋ก, ์ฆ ๋์์ ์คํ๋๋ ์ฟผ๋ฆฌ์ด๋ค.
Manual Parallel Queries: ์๋ ๋ณ๋ ฌ ์ฟผ๋ฆฌ
๋ณ๋ ฌ ์ฟผ๋ฆฌ์ ์๊ฐ ๋ณ๊ฒฝ๋์ง ์๋๋ค๋ฉด, ๋ณ๋ ฌ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๋ฐ ๋ณ๋ค๋ฅธ ๋ ธ๋ ฅ์ด ํ์ํ์ง ์๋ค. TanStack Query์ useQuery ๋ฐ useInfiniteQuery ํ ์ ์ํ๋ ๋งํผ ๋๋ํ ์ฌ์ฉํ๊ธฐ๋ง ํ๋ฉด ๋๋ค.
function App () {
// ๋ค์ ์ฟผ๋ฆฌ๋ค์ ๋ณ๋ ฌ๋ก ์คํ๋๋ค
const usersQuery = useQuery({ queryKey: ['users'], queryFn: fetchUsers })
const teamsQuery = useQuery({ queryKey: ['teams'], queryFn: fetchTeams })
const projectsQuery = useQuery({ queryKey: ['projects'], queryFn: fetchProjects })
}
React Query๋ฅผ suspense mode์์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ์ด ๋ณ๋ ฌ ์ฒ๋ฆฌ ํจํด์ ์๋ํ์ง ์๋๋ค. ์ฒซ ๋ฒ์งธ ์ฟผ๋ฆฌ๊ฐ ๋ด๋ถ์ ์ผ๋ก promise๋ฅผ throwํ์ฌ ๋ค๋ฅธ ์ฟผ๋ฆฌ๊ฐ ์คํ๋๊ธฐ ์ ์ ์ปดํฌ๋ํธ๋ฅผ ์ผ์ ์ค๋จ์ํค๊ธฐ ๋๋ฌธ์ด๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด useSuspenseQueries ํ ์ ์ฌ์ฉํ๊ฑฐ๋(๊ถ์ฅ) ๋๋ ๊ฐ useSuspenseQuery ์ธ์คํด์ค์ ๋ํด ๋ณ๋์ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ฅผ ์ง์ ๊ตฌํํด์ผ ํ๋ค.
Dynamic Parallel Queries with useQueries: useQueries๋ฅผ ์ฌ์ฉํ ๋์ ๋ณ๋ ฌ ์ฟผ๋ฆฌ
์คํํด์ผ ํ๋ ์ฟผ๋ฆฌ์ ์๊ฐ ๋ ๋๋ง๋ง๋ค ๋ณ๊ฒฝ๋๋ ๊ฒฝ์ฐ, ํ ์ ๊ท์น์ ์๋ฐํ๊ฒ ๋๋ฏ๋ก ์๋ ์ฟผ๋ฆฌ ๋ฐฉ์์ ์ฌ์ฉํ ์ ์๋ค. ๋์ , TanStack Query๋ useQueries ํ ์ ์ ๊ณตํ๊ณ , ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ํ๋ ๋งํผ์ ์ฟผ๋ฆฌ๋ฅผ ๋์ ์ผ๋ก ๋ณ๋ ฌ ์คํํ ์ ์๋ค.
useQueries๋ queries ํค๋ฅผ ๊ฐ์ง ์ต์ ๊ฐ์ฒด๋ฅผ ์ธ์๋ก ๋ฐ์ผ๋ฉฐ ์ด ํค์ ๊ฐ์ ์ฟผ๋ฆฌ ๊ฐ์ฒด์ ๋ฐฐ์ด์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ์ ๋ฐฐ์ด์ ๋ฐํํ๋ค.
function App({ users }) {
const userQueries = useQueries({
queries: users.map((user) => {
return {
queryKey: ['user', user.id].
queryFn: () => fetchUserById(user.id),
}
}),
})
}
๋ฐ์ดํฐ ๋ก๋ฉ ์ฑ๋ฅ์ ์ต์ ํํ๊ณ UX๋ฅผ ํฅ์์ํค๋ ๋ฐ ๋งค์ฐ ์ค์ํ๊ฒ ์ฌ์ฉ๋๋ค.
ํ์ํ ๋ฐ์ดํฐ๊ฐ 3๊ฐ๋ก ๊ณ ์ ๋์ด ์๋ค๋ฉด?
useQuery 3๊ฐ๋ฅผ ๋๋ํ ์ด๋ค.
ํ์ํ ๋ฐ์ดํฐ๊ฐ N๊ฐ๋ก ์ ๋์ ์ด๋ผ๋ฉด?
useQueries๋ฅผ ์ฌ์ฉํ๋ค.
https://tanstack.com/query/latest/docs/framework/react/guides/parallel-queries
Parallel Queries | TanStack Query React Docs
"Parallel" queries are queries that are executed in parallel, or at the same time so as to maximize fetching concurrency. Manual Parallel Queries When the number of parallel queries does not change, t...
tanstack.com
'Frontend > TanStack Query' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| Dependent Queries (0) | 2025.11.04 |
|---|---|
| Network Mode (0) | 2025.10.24 |
| Query Options (0) | 2025.10.23 |
| Query Functions (0) | 2025.10.22 |
| Query Keys (0) | 2025.10.21 |