Closed JengYoung closed 1 year ago
๋ค์ ์ฃผ๋ถํฐ ๋ณธ๊ฒฉ์ ์ผ๋ก ๋ฐฑ์๋์์๋ API ๋ช ์ธ์ ๋ฐ๋ผ ๋ก์ง์ ์์ฑํ๋ค๊ณ ํ๋ค. ์ด๋ฅผ ์ข ๋ ์ฌ์ ๋กญ๊ฒ ์ ์ฉํ๊ธฐ ์ํด, ๋ฏธ๋ฆฌ axios์ interceptor์ ์ ์ํด์ฃผ๊ณ , ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ ค ํ๋ค.
interceptor
๋ํ React18๋ฒ์ ์ผ๋ก ์ธํ ๋์ด ์์ผ๋ฏ๋ก, React.Suspense๋ฅผ ํ์ฉํด์ฃผ๋ ค ํ๋ค.
React18
React.Suspense
axios
ErrorBoundary
Suspense
์ผ๋จ ์๋ฌ๋ฐ์ด๋๋ฆฌ์ ๋ํ ๋ด์ฉ์ ๋ํด ๋ฏธ์ํ ๊ฐ์ด ์๋ค. ๊ธฐ์กด์ ์ฐ์ตํ ๋๋ Next.js 13 Beta ์ค๋ช ์ ๋ฐ๋ผ ์๋ฌ ํ์ด์ง ์์ฒด๋ก ๋ฆฌ๋ค์ด๋ ํธ ์์ผ์คฌ์๋๋ฐ, ์ด๋ UX๊ฐ ์ค๋จ๋๋ค๋ ์ ์ด ๊ต์ฅํ ์ํ๋ค. ์๋ํ๋ฉด, ์ฐ๋ฆฌ๋ ์ ์ ๊ฐ ํ์ด์ง๋ฅผ ๊ณ์ํด์ ๊ทธ๋ ค๋๊ฐ ๊ฑด๋ฐ, ์ด๋ฅผ ๋ฆฌ๋ค์ด๋ ํธ ๋๋ ์๊ฐ ๋ฐ์ดํฐ๊ฐ ๋ ์๊ฐ ์ํ์ด ๋ฐ๋์ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ด๋ค.
Next.js 13 Beta
๋ฐ๋ผ์ ์ต๋ํ ํ์ด์ง ์ด๋์ ํ์ง ์๋ ์ ์์ ์๋ฌ ๋ฐ์ด๋๋ฆฌ๋ฅผ ์ค์ ํด์ค์ผ ํ ๊ฒ ๊ฐ๋ค. ์ด๊ฒ์ด ๊ธฐ์ ์ ์ผ๋ก ์ง์๋๋์ง ์ฐ์ ์ ์ผ๋ก ํ๊ตฌํ์.
ํ์ธ ๊ฒฐ๊ณผ, ๊ธฐ์ ์ ์ผ๋ก ์ง์์ด ๋๋ค. ๋ค๋ง ์กฐ๊ฑด์ด ์๋ค. ErrorBoundary ์์ ์์นํ ์ปดํฌ๋ํธ๊ฐ ๋ง์น pending๋๋ ๊ฒ๊ณผ ๊ฐ์ ์ํ๋ฅผ ๊ฐ์ ธ์ผ ํ๋ค๋ ๊ฒ์ด๋ค. ์ด๊ฒ๋ง ์ฃผ์ํ๋ฉด ์ฝ๊ฒ ๋ค๋ฃฐ ์ ์๋ค.
pending
์ด ๊ฐ๋ ์ด ์์ฒญ ๋ชจํธํด์ ์ฝ ๋ฐ๋์ ์ ํค๋งจ ๋ฏํ๋ค. ํ์ง๋ง ๋ถ๋ชํ ๋งํผ ๋ด ๋ ์ด๋ค. ์ด์ ์จ์ ์๋ฆฌ๊น์ง ์๋ฒฝํ ์ดํดํ๋ค. ๐๐ป
์๋ฆฌ์ ๋ํด ์ ์์ ๋์ด ์๋ ์๋ฃ. ์ด๊ฑธ ๊นจ๋ซ๊ธฐ ์ ์ ๋ดค์ผ๋ฉด ์ด๋ ์๊น. ์ ๊ธ์ ์ฝ๊ณ ๋ ํ ์ถ๊ฐ์ ์ผ๋ก ์ฝด๋ค์ชฝ์์๋ ์ฐธ๊ณ ํ ๊ธ์ ์ผ๋๋ผ.
๋ฉ์ถฐ! ๐๐ป ์ ์ ์ฒดํฌ ๋ค์ด๊ฐ๋๋ค~
๋ฐฐ๊ฒฝ ๋ฐ ์ค๋ช
์ฌ์ฌ API ๋ก์ง์ ์ํ ์ฒ๋ฆฌ๋ฅผ ํด์ผ๊ฒ ๋ค
๋ค์ ์ฃผ๋ถํฐ ๋ณธ๊ฒฉ์ ์ผ๋ก ๋ฐฑ์๋์์๋ API ๋ช ์ธ์ ๋ฐ๋ผ ๋ก์ง์ ์์ฑํ๋ค๊ณ ํ๋ค. ์ด๋ฅผ ์ข ๋ ์ฌ์ ๋กญ๊ฒ ์ ์ฉํ๊ธฐ ์ํด, ๋ฏธ๋ฆฌ axios์
interceptor
์ ์ ์ํด์ฃผ๊ณ , ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ ค ํ๋ค.๋ํ
React18
๋ฒ์ ์ผ๋ก ์ธํ ๋์ด ์์ผ๋ฏ๋ก,React.Suspense
๋ฅผ ํ์ฉํด์ฃผ๋ ค ํ๋ค.๊ธฐ๋๊ฒฐ๊ณผ
axios
instance๋ฅผ ์ ์ํด์ผ ํ๋ค.axios
์interceptor
์ ์๋ฅผ ํด์ฃผ์ด์ผ ํ๋ค.ErrorBoundary
๊ฐ ์๋๋์ด์ผ ํ๋ค.Suspense
๋ก์ง์ด ํ๋ก๋ฏธ์ค์ ๋ฐํ๋ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ์ ์์ ์ผ๋ก ๋์๋์ด์ผ ํ๋ค.๋์ ์ ์
ErrorBoundary
๋ฅผ ์ด๋ป๊ฒ ์ ์ดํด์ผ ํ ๊น์ผ๋จ ์๋ฌ๋ฐ์ด๋๋ฆฌ์ ๋ํ ๋ด์ฉ์ ๋ํด ๋ฏธ์ํ ๊ฐ์ด ์๋ค. ๊ธฐ์กด์ ์ฐ์ตํ ๋๋
Next.js 13 Beta
์ค๋ช ์ ๋ฐ๋ผ ์๋ฌ ํ์ด์ง ์์ฒด๋ก ๋ฆฌ๋ค์ด๋ ํธ ์์ผ์คฌ์๋๋ฐ, ์ด๋ UX๊ฐ ์ค๋จ๋๋ค๋ ์ ์ด ๊ต์ฅํ ์ํ๋ค. ์๋ํ๋ฉด, ์ฐ๋ฆฌ๋ ์ ์ ๊ฐ ํ์ด์ง๋ฅผ ๊ณ์ํด์ ๊ทธ๋ ค๋๊ฐ ๊ฑด๋ฐ, ์ด๋ฅผ ๋ฆฌ๋ค์ด๋ ํธ ๋๋ ์๊ฐ ๋ฐ์ดํฐ๊ฐ ๋ ์๊ฐ ์ํ์ด ๋ฐ๋์ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ด๋ค.๋ฐ๋ผ์ ์ต๋ํ ํ์ด์ง ์ด๋์ ํ์ง ์๋ ์ ์์ ์๋ฌ ๋ฐ์ด๋๋ฆฌ๋ฅผ ์ค์ ํด์ค์ผ ํ ๊ฒ ๊ฐ๋ค. ์ด๊ฒ์ด ๊ธฐ์ ์ ์ผ๋ก ์ง์๋๋์ง ์ฐ์ ์ ์ผ๋ก ํ๊ตฌํ์.
ํ์ธ ๊ฒฐ๊ณผ, ๊ธฐ์ ์ ์ผ๋ก ์ง์์ด ๋๋ค. ๋ค๋ง ์กฐ๊ฑด์ด ์๋ค.
ErrorBoundary
์์ ์์นํ ์ปดํฌ๋ํธ๊ฐ ๋ง์นpending
๋๋ ๊ฒ๊ณผ ๊ฐ์ ์ํ๋ฅผ ๊ฐ์ ธ์ผ ํ๋ค๋ ๊ฒ์ด๋ค. ์ด๊ฒ๋ง ์ฃผ์ํ๋ฉด ์ฝ๊ฒ ๋ค๋ฃฐ ์ ์๋ค.์ด ๊ฐ๋ ์ด ์์ฒญ ๋ชจํธํด์ ์ฝ ๋ฐ๋์ ์ ํค๋งจ ๋ฏํ๋ค. ํ์ง๋ง ๋ถ๋ชํ ๋งํผ ๋ด ๋ ์ด๋ค. ์ด์ ์จ์ ์๋ฆฌ๊น์ง ์๋ฒฝํ ์ดํดํ๋ค. ๐๐ป
์ฐธ๊ณ ์๋ฃ
์๋ฆฌ์ ๋ํด ์ ์์ ๋์ด ์๋ ์๋ฃ. ์ด๊ฑธ ๊นจ๋ซ๊ธฐ ์ ์ ๋ดค์ผ๋ฉด ์ด๋ ์๊น. ์ ๊ธ์ ์ฝ๊ณ ๋ ํ ์ถ๊ฐ์ ์ผ๋ก ์ฝด๋ค์ชฝ์์๋ ์ฐธ๊ณ ํ ๊ธ์ ์ผ๋๋ผ.