React Query(Tanstack Query) React Query๋? React ์ ํ๋ฆฌ์ผ์ด์
์์ ์๋ฒ ์ํ๋ฅผ ๊ฐ์ ธ์ค๊ณ ์บ์ฑํ๋ฉฐ ๋๊ธฐํํ๊ณ ์
๋ฐ์ดํธํ๋ ์์
์ ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ๋ด๊ฐ React Query๋ฅผ ์ ํํ ์ด์ Client ๋ฐ์ดํฐ์ Server ๋ฐ์ดํฐ ๊ฐ์ ๋ถ๋ฆฌ๊ฐ ๋๋ค. api ์์ฒญ์ ๋ํ ๋ก๋ฉ, ์๋ฌ, ๋ฐ์ดํฐ(response) ๊ด๋ฆฌ๊ฐ ์ฝ๋ค. ๋คํธ์ํฌ ์์ฒญ ๊ด๋ จ ๋ค์ํ ๊ธฐ๋ฅ, ์ต์
๋ค์ด ์๋ค. (refetchOnWindowFocus, ๋ธ๋ผ์ฐ์ ์ ํฌ์ปค์ค๊ฐ ๋ค์ด์จ ๊ฒฝ์ฐ) ์ฅ์ ์ค ํ๋๋ก ์บ์ฑ๋ ์์ง๋ง ๋๋ ๋ณ๊ฒฝ๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ก ๋ฐ์์ผ ํ๊ธฐ ๋๋ฌธ์ ์บ์ฑ์ ์ฌ์ฉํ์ง ์์๋ค. ์ง์ ๋ถํ๊ฑธ?! ๊ทธ๋ ๊ฒ ์ ์ฉํ๊ฒ ์ ์ฌ์ฉํ์ผ๋.. ์ปดํฌ๋ํธ, ํ์ด์ง ์์ api ๊ด๋ จ ๋ก์ง๋ค์ด ๊ฐ์ด ์๋ค ๋ณด๋ ์ฝ๋๊ฐ ๊ธธ์ด..
Hook
useStateconst [state, setState] = useState(initialState)useState๋ ๋ฐฐ์ด์ ๋ฐํํ๊ณ ๋น๊ตฌ์กฐํ ํ ๋น์ ํตํด state, setState๋ฅผ ์ถ์ถํ์ฌ ์ฌ์ฉํ๋ค. ๊ทธ๋ ๋ค๋ฉด useState๋ ์ด๋์ ์ค๋ ๊ฒ์ผ๊น? ํจ์ํ ์ปดํฌ๋ํธ๋ ๋ ๋๋ง์ด ๋ฐ์ํ๋ฉด ํจ์ ์์ฒด๊ฐ ๋ค์ ํธ์ถ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ป๊ฒ ํจ์๊ฐ ๋ค์ ํธ์ถ๋์์ ๋ ์ด์ ์ ์ํ๊ฐ์ ๊ฐ์ ธ์ฌ ์ ์๋ ๊ฒ์ธ๊ฐ?๋ฐ๋ก! useState๋ closure๋ก ๊ตฌํ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ด์ ์ ์ํ๊ฐ์ ์ ์งํ ์ ์๋ค!๊ทธ๋ ๋ค๋ฉด closure๋ ๋ฌด์์ธ๊ฐ? ์ด์ ๋ํด ๋จผ์ ํ์ธํด ๋ณด์! closure๋?mdn์ ๋ฐ๋ฅด๋ฉด ํจ์์ ๊ทธ ์ฃผ๋ณ ์ํ(lexical environment, ํจ์๊ฐ ์ ์๋ ๋ ์ฃผ๋ณ์ ์ค์ฝํ์ ๋ณ์์ ๋ํ ์ ๋ณด๋ฅผ ํฌํจํ..
์
์ ์ฌ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ ํ์ด์ง๋ค์ด์
๊ณผ ํจ๊ป ๋ง์ด ์ฐ์ธ ๊ฒ์ ํํฐ์ผ ๊ฒ์ด๋ค! ๊ฐ ํ์ด์ง์์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๊ธฐ ์ํด ํํฐ์ ํ์ด์ง๋ค์ด์
์ด ์ฌ์ฉ๋์๋ค. ๊ฐ๊ฐ์ ํ์ด์ง๋ง๋ค ํํฐ ์ปดํฌ๋ํธ๋ก ๋ง๋ค๋ฉด์ ๊ทธ์ ๋ํ ๋ก์ง์ด ๋ฐ๋ณต๋์ด ์ด๋ฅผ ๊ฐ์ ํ๊ณ ๋ค๋ก๊ฐ๊ธฐ ๋๋ ์๋ก๊ณ ์นจ ์ ํํฐ๊ฐ์ ์ ์งํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๊ฒ ๋ค! ํํฐ ์ปดํฌ๋ํธ์ ํํฐ ๊ด๋ จ hook ๊ตฌํํ๊ธฐ ํํฐ ์ปดํฌ๋ํธ ์ด๊ธฐ ํํฐ๊ฐ๋ค๊ณผ ๊ฒ์, ์ด๊ธฐํ ์ ๋์๋๋ ํจ์๋ฅผ ์ ๋ฌ ๋ฐ๋๋ค. ์ฌ์ฉ์๊ฐ ์
๋ ฅํ ํํฐ๊ฐ์ ๋ด๋ถ์ ์ผ๋ก ๊ด๋ฆฌํ๋ค. src/components/filter/deliveryTemplateFilter.tsx interface DeliveryTemplateFilterProps { initialFilterValues: FormState onSubmit: (filte..