
๊ฐ์ธ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ ๋์ค, API๋ฅผ ํตํด ๋ฐ์์์ผํ ๋ฐ์ดํฐ๊ฐ ์๊ฐ๋ณด๋ค ์ปค์ Layout Shift ์ด์๊ฐ ๋ฐ์ํ์์ต๋๋ค.
์ข์ ๋ฐฉ๋ฒ์ด ์์๊น ๊ณ ๋ฏผํ๋ ๋์ค, React์ <Suspense> ์ปดํฌ๋ํธ๊ฐ ์๊ฐ๋
์ง๊ธ ์ํฉ์ ๋ฑ ์ ์ฉ์์ผ๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ์ ํ๋ก์ ํธ์ ๋์
ํ๊ณ ์ ํฉ๋๋ค.
์์ผ๋ก์ ํฌ์คํ ์์๋ ์ ๊ฐ ์ด๋ป๊ฒ ๊ด๋ จ ๊ธฐ์ ์ ๋ฆฌ์์นํ๊ณ ์ฌ์ฉํ๋์ง์ ๋ํด ์ ์ด๋ณด๊ฒ ์ต๋๋ค.
Suspense ์ปดํฌ๋ํธ๋ React์์ ์ ๊ณตํ๋ ์ปดํฌ๋ํธ ์ค ํ๋์
๋๋ค.
๊ณต์๋ฌธ์์์๋ ์๋์ ๊ฐ์ด ์ค๋ช
ํ๊ณ ์์ต๋๋ค.
<Suspense>๋ ์์ ์์๊ฐ ๋ก๋๋๊ธฐ ์ ๊น์ง ํ๋ฉด์ ๋์ฒด UI๋ฅผ ๋ณด์ฌ์ค๋๋ค.
<Suspense fallback={<Loading />}>
<Albums />
</Suspense>
๋ง์ฝ Albums ์ปดํฌ๋ํธ๊ฐ ์๋ฒ์ ํต์ ํ๋ ๋น๋๊ธฐ์ ์ธ ๋ก์ง์ ๋ด๊ณ ์๊ณ ๋ชจ๋ ์ฝ๋์ ๋ฐ์ดํฐ๊ฐ ๋ก๋๊ฐ ๋์ง ์์๋ค๋ฉด, Suspense ์ปดํฌ๋ํธ์ props๋ก ์ ๋ฌํด์ค <Loading> ์ปดํฌ๋ํธ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
๊ทธ ํ Albums ์ปดํฌ๋ํธ์ ๋ฐ์ดํฐ๊ฐ ๋ชจ๋ ์ค๋น๋๋ฉด ๋ฆฌ์กํธ๋ ๋ก๋ฉ ์ปดํฌ๋ํธ๋ฅผ ์จ๊ธฐ๊ณ ,
Albums ์ปดํฌ๋ํธ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
์, Suspense๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง ์์์ผ๋ ์ด๋ฒ์๋ Tanstack Query์ ๊ณต์ ๋ฌธ์๋ฅผ ๋ณด๋ฌ ๊ฐ๋ณด๊ฒ ์ต๋๋ค.

React์ Suspense ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์ ์๋์ ์ ์ฉ hook์ ์ฌ์ฉํ๋ผ๊ณ ๋งํด์ค๋๋ค.
useSuspenseQueryuseSuspenseInfiniteQueryuseSuspenseQueries๋ฐ๋ผ์, React์ Suspense ์ useSuspenseQuery ๋ฅผ ์ฌ์ฉํ๋ฉด
์ด๋ก ์์ผ๋ก๋ ๋ฐ์ดํฐ๊ฐ ๋ถ๋ ค์ ์๊ธฐ๋ ๋ ์ด์์ ์ฌํํธ ์ด์๋ฅผ ํด๊ฒฐํ ์ ์์ง ์์๊น์?
์ผ๋จ ์ ๊ฐ ๋์
ํ ๊ธฐ์ ๋ค๊ณผ, ๊ทธ๊ฒ๋ค์ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง์ ๋ํด์ ์์๋ณด์์ต๋๋ค.
๋ด์ผ์ ์ง์ ์ฝ๋๋ก ์ฎ๊ฒจ์ ์์ฑํ๋ ๊ณผ์ ๊ณผ, ์ถ๊ฐ์ ์ผ๋ก ๊ณ ๋ คํด์ผ๋ ๋ถ๋ถ์ ์๋์ง,
ํน์ ๊ฐ์ด ์์ฃผ ์ฐ์ด๋ ์ปดํฌ๋ํธ๋ ์๋์ง์ ๋ํด์๋ ๋ฆฌ์์นํด ํฌ์คํ
ํด๋ณด๊ฒ ์ต๋๋ค.