๊ธฐ์กด์ ํ ์ผ์ฆ๋ฐ๋๋ ์คํ ๋ธ์ ํ๊ฒ์ ํ๋ซํผ์ ํตํด ์ด์๋์์ผ๋ฉฐ, ์ด๋ก ์ธํด ๊ฒ์ ์ด์์ ์ฃผ์ ๊ธฐ๋ฅ๊ณผ ์์คํ ์ด ์ธ๋ถ ํ๋ซํผ์ ์์กดํ๋ ๊ตฌ์กฐ์์ต๋๋ค. ์ด์ ๊ฒ์ ๊ฐ๋ฐ์ฌ์ธ ๋ผ์จ์ํฐํ ์ธ๋จผํธ๋ ์ด์ ์ฃผ๊ถ์ ํ๋ณดํ๊ณ , ๋ ๋ฆฝ์ ์ด๊ณ ํจ์จ์ ์ธ ์ด์ ํ๊ฒฝ์ ๊ตฌ์ถํ๊ธฐ ์ํด ์์ฒด ์ด์ ์ฒด์ ๋ฅผ ๋์ ํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์ด๋ฌํ ๋ณํ์ ๋ฐ๋ผ ์๋ก์ด ์นํ์ด์ง๋ฅผ ๊ฐ๋ฐํด์ผ ํ๊ณ , ์ด๋ฅผ ํ์ฌ์์ ์ธ์ฃผ๋ก ๋งก์ ์งํํ๊ฒ ๋์์ต๋๋ค.
์ด๋๋ฏผ ์๋น์ค ๊ฐ๋ฐ ํ, ์น ์๋น์ค์ ๊ฐ๋ฐ์๋ ์ฐธ์ฌํ์ฌ ์ฑ๊ณต์ ์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์๋ฃํ์์ต๋๋ค. ์ดํ, ์น ์๋น์ค์ ์ ์ง ๋ฐ ๋ณด์ ์ ๋ฌด๋ฅผ ๋งก์ ์์ ์ ์ด๊ณ ์ง์ ๊ฐ๋ฅํ ์ด์ ํ๊ฒฝ์ ๊ตฌ์ถํ๋ ๋ฐ ๊ธฐ์ฌํ์์ต๋๋ค.
์ ์ ์ํ ๊ด๋ฆฌ
custom-hook-store
์์ ํตํฉ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ , ๊ฐ ์ํ๋ฅผ ์ปค์คํ
ํ
์ ํตํด ์ผ๊ด๋ ๋ฐฉ์์ผ๋ก ๋ถ๋ฌ์ ์ฌ์ฉํ์ฌ ์ํ ๊ด๋ฆฌ ๋ก์ง์ ์ค๋ณต์ ์ ๊ฑฐํ๊ณ , ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ ๋ฐ ์ ์ง๋ณด์์ฑ์ ํฅ์์์ผฐ์ต๋๋ค.๊ฒ์ํ ๊ฐ๋ฐ ๋ฐ ์ ์ง๋ณด์
์ด๋ฒคํธ ํ์ด์ง ๊ฐ๋ฐ
ํ ์ผ์ฆ๋ฐ๋ ๊ด์ฅ ๊ฐ๋ฐ
jotai
๋ฅผ ์ฌ์ฉํ ์ ์ญ ์ํ ๊ด๋ฆฌ
jotai
๋ฅผ ์ฌ์ฉํ ์ด์ ๋ ๊ฐ๊ฒฐํ๊ณ ์ง๊ด์ ์ธ API๋ก ์ํ๋ฅผ ๊ด๋ฆฌํ ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค. ๋ค๋ฅธ ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋น๊ตํ์ ๋, jotai
๋ ๋ถํ์ํ ๋ฆฌ๋ ๋๋ง์ ์ต์ํํ๋ฉด์๋ ์ํ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ด ์ฑ๋ฅ ์ต์ ํ์ ์ ๋ฆฌํ์ต๋๋ค. ๋ํ, React์ useState
์ฒ๋ผ ๋จ์ํ๊ณ ๊ฐ๋ฒผ์ด ๋ฐฉ์์ผ๋ก ์ํ๋ฅผ ๊ด๋ฆฌํ ์ ์์ด ๊ฐ๋ฐ์ด ์ฉ์ดํ์ต๋๋ค.react-query
๋ฅผ ํ์ฉํ ๋ฐ์ดํฐ ํจ์นญ ๋ฐ ์ํ ๋๊ธฐํ
react-query
๋ฅผ ์ฌ์ฉํ์ต๋๋ค. react-query
๋ ์๋ ์บ์ฑ, ๋ฐ์ดํฐ ๋๊ธฐํ, ๋ฆฌํฉ์ฑ ๋ฐ ์๋ฌ ํธ๋ค๋ง ๋ฑ ๋ง์ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ, ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์์ต๋๋ค. ๊ฒ์๊ธ ์์ ํ ๋ฐ์ดํฐ๊ฐ ๊ฐฑ์ ๋์ง ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด react-query
์ ์บ์ ๋ฌดํจํ(invalidation)์ ์๋ ๋ฆฌํจ์นญ(auto-refetch) ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ๋ฐ์ดํฐ๊ฐ ํญ์ ์ต์ ์ํ๋ก ์ ์ง๋๋๋ก ๋ณด์ฅํ์ต๋๋ค.