
A : React์์ state์ props๋ ์ปดํฌ๋ํธ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ณ ๊ด๋ฆฌํ๋๋ฐ ์ฌ์ฉ๋๋ ์ค์ํ ๊ฐ๋
์
๋๋ค.
state๋ ์ปดํฌ๋ํธ ๋ด์์ ๊ด๋ฆฌ๋๋ ๋ก์ปฌ ์ํ๋ฅผ ๋ํ๋ด๋ฉฐ ์ปดํฌ๋ํธ๊ฐ ๋ด๋ถ์ ์ผ๋ก ์ํ๋ฅผ ๊ฐ์ง ์ ์๊ณ ์ํ๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ์๋์ผ๋ก ์ปดํฌ๋ํธ๋ฅผ ๋ค์ ๋ ๋๋งํฉ๋๋ค.
props๋ ๋ถ๋ชจ ์ปดํฌ๋ํธ๋ก๋ถํฐ ์์ ์ปดํฌ๋ํธ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ๋ฐ ์ฌ์ฉ๋๋ฉฐ ์์ ์ปดํฌ๋ํธ์์๋ ์ด๋ฅผ ์ง์ ์์ ํ ์ ์๊ณ ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
A : ๋ฆฌ์กํธ๋ ์ปดํฌ๋ํธ์ ์ํ๋ ์์ฑ์ด ๋ณํ ๋๋ง๋ค ๋ ๋๋ง์ด ๋๋๋ฐ ๊ธฐ์กด ์์๋ค ๋ค์ ์๋ก์ด ๋ด์ฉ์ ์ถ๊ฐํ ๊ฒฝ์ฐ ๋ชจ๋ ๋ถ๋ถ์ด ์ฌ๋ ๋๋ง์ด ๋๋๋ฐ ์ด๋ฐ ์ํฉ์ ์ต์ ํํ๊ธฐ ์ํด key ์์ฑ์ ์ฌ์ฉํ์ฌ ๊ฐ ํญ๋ชฉ์ ๊ณ ์ ํ ์๋ณ์๋ฅผ ๋ถ์ฌํด์ฃผ๊ณ React ์ ๋ฐ์ดํธ ์์ ์ด๋ค ํญ๋ชฉ์ด ๋ณ๊ฒฝ๋์๋์ง ์๋ณ์ ํ๊ณ ๋ณ๊ฒฝ๋ ํญ๋ชฉ๋ง ์ ๋ฐ์ดํธ ๋จ์ผ๋ก์จ ์ฑ๋ฅ ํฅ์๊ณผ ๋ถํ์ํ ๋ ๋๋ง์ ๋ฐฉ์งํ ์ ์๊ฒ ๋ฉ๋๋ค.
React์ Key๋ ๊ฐ๋ฅํ๋ฉด ํญ๋ชฉ ์์ฒด์ ๊ณ ์ ํ ์๋ณ์๋ฅผ key๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข๋ค. ์๋ฅผ ๋ค์ด, ๋ฐฐ์ด ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ์ฌ ๊ณ ์ ํ ํค๋ฅผ ํ ๋นํ๊ฒ ๋๋ฉด ํญ๋ชฉ์ ์ถ๊ฐ๋ ์ญ์ ๊ฐ ์์ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ์์ ์ ์๋ค.
A : ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋๊ท๋ชจ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ณต์กํ ์ํ ๋ฐ ์ปดํฌ๋ํธ ๊ฐ ํต์ ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๋ฉฐ, ์ค์ํ๋ ๋ฐ์ดํฐ ํ๋ฆ์ ์ ๊ณตํ์ฌ ์์ธก ๊ฐ๋ฅํ ์ํ ์ ๋ฐ์ดํธ์ ์ ์ง ๋ณด์์ฑ์ ์ด์งํฉ๋๋ค. Redux์ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ React ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋๋ฆฌ ์ฌ์ฉ๋๋ฉฐ, ์ค์ํ๋ ์ํ๊ด๋ฆฌ์ ๋ถ๋ณ์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ํ ํจํด์ ์ ๊ณตํ์ฌ ๊ฐ๋ฐ์์๊ฒ ํจ๊ณผ์ ์ธ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
A : Redux๋ ์ํ ๊ด๋ฆฌ๋ฅผ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ฉฐ ๋ค์๊ณผ ๊ฐ์ ์ฃผ์ ๊ฐ๋
๋ค์ ์ค์ฌ์ผ๋ก ๋์ํฉ๋๋ค.
1. Store : ์ ํ๋ฆฌ์ผ์ด์
์ ์ํ๋ฅผ ๋ด๊ณ ์๋ ๊ฐ์ฒด์ด๋ฉฐ ์คํ ์ด๋ ๋จ์ผ ์ํ ํธ๋ฆฌ๋ฅผ ๊ฐ์ง๋ฉฐ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ชจ๋ ์ํ๋ ์ฌ๊ธฐ์ ์ ์ฅ๋ฉ๋๋ค.
2. Action : ์ํ ๋ณ๊ฒฝ์ ๋ํ๋ด๋ ๊ฐ์ฒด๋ก ์ ํ๋ฆฌ์ผ์ด์
์์ ์คํ ์ด๋กค ๋ณด๋ด์ง๋ฉฐ ์ก์
์ type ํ๋์ ์ถ๊ฐ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๊ณ ์์ต๋๋ค.
3. Reducer : ์ก์
์ ๊ธฐ๋ฐ์ผ๋ก ์ํ๋ฅผ ์ด๋ป๊ฒ ๋ณ๊ฒฝํ ์ง ์ ์ํ๋ ์์ ํจ์์ด๋ฉฐ ๋ฆฌ๋์๋ ํ์ฌ ์ํ์ ์ก์
์ ๋ฐ์ ์๋ก์ด ์ํ๋ฅผ ๋ฐํํฉ๋๋ค.
4. Dispatch : ์ก์
์ ์คํ ์ด์ ๋ณด๋ด๋ ๋ฉ์๋์ด๋ฉฐ ๋์คํจ์น๋ฅผ ํตํด ์ก์
์ ๋ฐ์์ํค๋ฉด ๋ฆฌ๋์๊ฐ ํธ์ถ๋์ด ์ํ๊ฐ ์
๋ฐ์ดํธ ๋ฉ๋๋ค.
5. Middleware : ์ก์
์ด ๋์คํจ์น๋์ด ๋ฆฌ๋์์ ๋๋ฌํ๊ธฐ ์ ์ ์คํ๋๋ ์ฝ๋์ด๋ฉฐ ๋ฏธ๋ค์จ์ด๋ ์ก์
์ ์ฒ๋ฆฌ๋ฅผ ์ค๊ฐ์ ๊ฐ๋ก์ฑ์ด ๋ก๊น
, ๋น๋๊ธฐ ์์
์ฒ๋ฆฌ ๋ฑ์ ์ํํ ์ ์์ต๋๋ค.
๋์คํจ์น๋ฅผ ํตํด ์ฌ์ฉ์๊ฐ ์์ฒญํ ์ก์
์ด ์คํ ์ด๋กค ์ ๋ฌ์ด ๋๋ฉฐ ๋ฆฌ๋์๋ ์ก์
์ type์ ๋ฐ๋ผ ์ํ๋ฅผ ์
๋ฐ์ดํธํ๊ณ , ์
๋ฐ์ดํธ๋ ์ํ๋ ์คํ ์ด์ ์ ์ฅ์ด ๋์ด์ง๋๋ค.

A : React Hook์ ํจ์ํ ์ปดํฌ๋ํธ์์ ์ํ๋ ์๋ช
์ฃผ๊ธฐ์ ๊ฐ์ React ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ๊ธฐ๋ฅ์
๋๋ค. ํจ์ํ ์ปดํฌ๋ํธ์์ ํด๋์ค ์ปดํฌ๋ํธ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ ๊ฒ์ด ์ฃผ์ ๋ชฉํ์
๋๋ค. Hook์ ์ต์์ ๋ ๋ฒจ, ํจ์ํ ๋ด๋ถ์์๋ง ํธ์ถ์ด๋์ด์ผ ํ๋ฉฐ ํด๋์ค ์ปดํฌ๋ํธ๋ ์ผ๋ฐ Javascript ํจ์ ๋ด์์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ฃผ๋ก ์ฌ์ฉํ๋ Hook์ผ๋ก๋ ์ํ ๊ด๋ฆฌ๋ฅผ ์ํ usestate, ๋ผ์ดํ์ฌ์ดํด๊ณผ ๊ด๋ จ๋ ์์
์ ์ํํ ์ ์๋ useEffect, Context๋ฅผ ํ์ฉํ์ฌ ์ํ๋ฅผ ์ ์ญ์ ์ผ๋ก ๊ณต์ ํ ๋ ์ฌ์ฉํ๋ useContext๊ฐ ์์ผ๋ฉฐ ๊ทธ์ธ ๋ค์ํ Hook์ ์ฌ์ฉํ์ฌ ํจ์ํ ์ปดํฌ๋ํธ์์๋ ํด๋์ค ์ปดํฌ๋ํธ์ ํธ๋ฆฌํ ๊ธฐ๋ฅ๋ค์ ์ฌ์ฉํ ์ ์์ต๋๋ค.