[DevCourse] ์์ฑํ AI ํ์ฉ ๋ฐฑ์๋ ๋ฐ๋ธ์ฝ์ค 13์ผ์ฐจ
์ง๋ 12์ผ ์ฐจ ์์ ์ ๊ฑด๊ฐ ๋ฌธ์ ๋ก ์์ ์ ์ฐธ์ฌํ์ง ๋ชปํ์ง๋ง,
๋คํํ ์ค๋ ์์ ์์ ์ ์ง๋ ์๊ฐ ๊ฐ๋ ์ ๋ค์ ๋ณต์ตํ๋ ์๊ฐ์ด ์์ด ํฐ ๋ฌด๋ฆฌ ์์ด ๋ฐ๋ผ๊ฐ ์ ์์๋ค.
React์ Hook ๊ฐ๋ ๊ณผ Router ๊ตฌ์กฐ๋ฅผ ๋ฐฐ์ฐ๊ณ , Todo ๋ฆฌ์คํธ์ SPA๋ฅผ ์ง์ ๊ตฌํํ๋ ์ค์ต์ ํ๋ฉด์
์กฐ๊ธ์ฉ React์ ์ค์ ํ์ฉ ๋ฐฉ์์ด ๊ฐ ์กํ๊ธฐ ์์ํ๋ค.
๐ ์ค๋ ๋ฐฐ์ด ์ฃผ์ ๋ด์ฉ ์ ๋ฆฌ
1. React์ ๋ค์ํ Hook ํ์ฉ๋ฒ
- useState์ useEffect๋ ์ด์ ์ต์ํด์ก๊ณ ,
- ์ค๋์ ์ฌ๊ธฐ์ ๋ํด useReducer, useMemo, useCallback, useRef ๊ฐ์
- ์ค์ ์์์ ์ํ ๊ด๋ฆฌ์ ์ต์ ํ๋ฅผ ์ํ ๊ณ ๊ธ Hook์ ๋ฐฐ์ ๋ค.
ํนํ useReducer๋ ์ํ๊ฐ ์ฌ๋ฌ ๊ฐ์ด๊ฑฐ๋ ๋ณต์กํ ํผ ๋ก์ง์ ์ ์ฉํ๋ค๋ ๊ฑธ,
์ง์ ์์ ๋ฅผ ๋ฐ๋ผ ํ๋ฉฐ ์ฒด๊ฐํ ์ ์์๋ค.
2. React Router๋ฅผ ์ด์ฉํ SPA ๊ตฌ์ฑ ์ค์ต
- react-router-dom์ ์ด์ฉํด์ Route ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค๊ณ ,
- Home, About ํ์ด์ง๋ฅผ ์ฐ๊ฒฐํด ๋ณด๋ฉฐ
- ํ ํ์ด์ง์์ ํ๋ฉด์ ์ ํํ๋ SPA ๊ตฌ์กฐ๋ฅผ ๊ตฌํํ๋ค.
JSX๋ก ๋ผ์ฐํ ์ ์ค์ ํ๋ ๋ฐฉ์์ด ์ฒ์์ ์ด์ํ์ง๋ง,
๋ ๋๋ง ์์ด ํ๋ฉด์ด ์ ํ๋๋ ๋ถ๋๋ฌ์ด ํ๋ฆ์ ์ง์ ๊ตฌํํด ๋ณด๋ ์ ์ด๋ ๊ฒ ์ฐ๋์ง ํ์คํ ์ดํด๋๋ค.
๐งช ์์ ์ค์ต – Todo ํ์ด์ง์ SPA ํ์ด์ง ๋ง๋ค๊ธฐ
์ฒ์์๋ ์ด๋ ค์ ์ง๋ง, ์์ ๋ฅผ ๋ฐ๋ผ ํ๋ฉฐ Hook ํจํด๊ณผ ์ํ ํ๋ฆ์ ์ตํ๋ ๊ณผ์ ์ด ์ ์ตํ๋ค.
- useState๋ก ์ ๋ ฅ๊ฐ์ ๊ด๋ฆฌํ๊ณ
- useRef๋ก ๊ณ ์ ID๋ฅผ ์ ์ฅํ๊ณ
- useReducer๋ก todo ํญ๋ชฉ์ ์ถ๊ฐ/์ญ์ ํ๋ฉฐ
- useCallback๊ณผ useMemo๋ก ์ฑ๋ฅ ์ต์ ํ๊น์ง ์ ์ฉํด ๋ดค๋ค.
์ฒ์์ ์ฝ๋๊ฐ ๋ณต์กํด ๋ณด์์ง๋ง,
ํ๋ํ๋ ๋ฐ๋ผ๊ฐ๋ฉฐ ๊ตฌํํด ๋ณด๋ ์ ์ ๊ตฌ์กฐ๊ฐ ๋์ ๋ค์ด์ค๊ธฐ ์์ํ๋ค.
๐งก ๋๋ ์
์ค๋์ Hook์ ํ์ฉํด ์ํ๋ฅผ ๊ด๋ฆฌํ๊ณ , ์ปดํฌ๋ํธ๋ฅผ ์กฐํฉํ๊ณ , Router๋ก ํ๋ฉด์ ๋๋๋ ์ค์ต์ ํด๋ณด๋ฉฐ
๋จ์ํ ๊ฐ๋ ์ ๋ฐฐ์ฐ๋ ๊ฒ์ ๋์ด์, “๋ด๊ฐ ๋ญ๊ฐ๋ฅผ ์ง์ ๋ง๋ค๊ณ ์๋ค”๋ ์ค๊ฐ์ ํ ์ ์์๋ค.
ํนํ Todo ์ฑ์ ์ง์ ๋ง๋ค๊ณ ๋์ํ๋ ๊ฑธ ํ์ธํ์ ๋,
React๊ฐ ๋จ์ํ UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋์ด์ ์์ฑ๋ ๋์ ์น์ฑ์ ๋ผ๋๋ฅผ ๊ตฌ์ฑํ๋ ๋๊ตฌ๋ผ๋ ๊ฒ์ ๊นจ๋ฌ์๋ค.
์ฒ์์ ๋ฏ์ค๊ณ ์กฐ๊ธ ์ด๋ ค์ ์ง๋ง, ์ฝ๋๋ฅผ ๋ฐ๋ผ ์น๊ณ , ํจํด์ ์ตํ๊ณ , ์ค์ ๋ก ๋์ํ๋ ๊ฑธ ๋ณด๋ฉด์ ์ ์ ํฅ๋ฏธ๊ฐ ์๊ธฐ๊ณ ์๋ค.
์ด์ React๋ฅผ ํ์ฉํ ๊ฐ๋ฐ์ด ์กฐ๊ธ์ฉ ์ต์ํด์ง๊ณ ์๋ ๊ฒ ๊ฐ์ ์์ผ๋ก๊ฐ ๋ ๊ธฐ๋๋๋ค :)