231016(์) ์ฑ์ฅ
๐ค ์ฑ์ฅ์ผ์ง 7.0
์ฑ
ํ๋ณตํ ์ด๊ธฐ์ฃผ์์(์จ์ธ ๋ค์ด์ด)
์ ๋ด์ฉ์ ์๊ทน๋ฐ์ ์์ํ๋ ์๋ฐํ ์ฑ์ฅ๊ธฐ๋ก
์ด์์๋ ๊ฝ๊ณผ ์ฃฝ์ ๊ฝ์ ์ด๋ป๊ฒ ๊ตฌ๋ณํ๋๊ฐ?
์ฑ์ฅํ๊ณ ์๋ ๊ฒ์ด ์ด์ ์๋ ๊ฒ์ด๋ค.
์๋ช ์ ์ ์ผํ ์ฆ๊ฑฐ๋ ์ฑ์ฅ์ด๋ค!
โ (7.0)<์์ ๊ฐํธ>
ํ์ธ๋ง ํ์ต๋ฒ
์ ์๊ฒ ๋๋งํผ, ์ฑ์ฅ์ผ์ง๋ ์ ๋ง ๊ทธ ๋ ์ ํค์๋ ์ค์ฌ์ผ๋ก ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํ๋๋ก ํ๋ค.
useReducer
์ฌ์ค ๊ทธ๋์ useReducer
์ ๋ํด์ ๊ตณ์ด..?
๋ผ๋ ์๊ฐ์ ์์ฃผ ํ์๋ค. ๋ด๊ฐ ๋ค๋ฃจ๋ ํ๋ก์ ํธ ์์ค์์์ ์ํ๊ฐ ๊ทธ๋ ๊ฒ ๋ณต์กํ์ง๋ ์์๊ณ , ์ ์ด์ ๊ทธ๋ ๊ฒ ๋ณต์กํ๊ฒ ๊ด๋ฆฌ๋๋ ์ํ๋ผ๋ฉด ์ฌ๋ฌ๊ฐ์ state๋ก ๋ถ๋ฆฌํ๋ ๊ฒ ๊ฐ์ธ์ ์ผ๋ก๋ ๊ฐ๋ฐ์ ๊ฒฝํ์๋ ์ข๋ค๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ด๋ค. ๋ ๊ทธ๋ฌ๋ค๊ฐ ์ํ๋ฅผ ํธ๋ค๋งํ๋ ํจ์๊ฐ ๋ค์ ๋ณต์กํ๊ฑฐ๋ ์ง์ ๋ถํ๋ฉด ๊ทธ ๋ถ๋ถ๋ง ์ปค์คํ
ํ
์ผ๋ก ๋ถ๋ฆฌํ๊ธฐ๋ง ํด๋ ์ถฉ๋ถํ๋ค๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋ฌ๋ค ์ค๋ ๊ฐ์๋ฅผ ๋ฃ๊ณ ํ
์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด์ useReducer
์ ํ์์ฑ์ ๋๊ผ๋ค. ์์์ ๋งํ๋ ๊ฒ์ฒ๋ผ ์ฌ์ค ์ ๋ถ๋ฆฌํ๊ณ ์กฐ์๋ง ํ๋ค๋ฉด useState
๋ก๋ ์ถฉ๋ถํ ๊น๋ํ ์ฝ๋๋ฅผ ์งค ์ ์๋ค๊ณ ์๊ฐํ๋ค. ๋ค๋ง, state๋ฅผ ๋ค๋ฃจ๋ ๋ก์ง์ reducer
๋ผ๋ ์์ํจ์๋ก ๋ถ๋ฆฌํจ์ผ๋ก์จ ๊ฐ๋ฐ์ ๊ฒฝํ๋ฟ ์๋๋ผ state์ ์์ง๋๋ฅผ ๋์ผ ์ ์์๊ณ ๋ฌด์๋ณด๋ค ํ
์คํธ ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์์ํด์ก๋ค. ์์ผ๋ก๋ ๊ฐ๋ฅํ๋ฉด useReducer
๋ฅผ ์ฌ์ฉํ๋๋ก (์ต์ง๋ก๋ผ๋) ํด๋ณด๋ ค ํ๋ค!!!
Ajax
์ค๋ CS - ๋คํธ์ํฌ ์คํฐ๋๋ฅผ ์ค๋นํ๋ฉด์ Ajax๊ฐ ๋ฌด์์ธ์ง ์ค๋ช
ํด์ฃผ์ธ์.
๋ผ๋ ์ง๋ฌธ์ด ์์๋ค. ์ ๋ง ๋จ์ํ๊ฒ Ajax๋ ๋น๋๊ธฐ์ ์ผ๋ก ์๋ฒ์ ํต์ ํ๋ ๋ฌด์ธ๊ฐ ์๋ก ๋ฑ์ฅํ ๊ธฐ์
์ด๋ผ๊ณ ์๊ฐํ๋ค. ๊ทธ๋ ์ง๋ง ์ข๋ ์ฐพ์๋ณด๊ณ ๊ณต๋ถํด์ ์ค๋นํ ๋ด ๋๋ต์ ์๋์ ๊ฐ์๋ค.
Ajax๋ ๋น๋๊ธฐ์ ์ธ ์๋ฐ์คํฌ๋ฆฝํธ์ XML์ด๋ผ๋ ์๋ฏธ๋ก ์๋ก์ด ์ธ์ด๋ ๊ฐ๋
์ด๋ผ๊ธฐ๋ณด๋จ ๋น๋๊ธฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ง ๋ฐ์์์ ํ๋ฉด์ ์
๋ฐ์ดํธํ ์ ์๋ ๊ฐ๋ฐ ๊ธฐ๋ฒ์
๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์น ํ์ด์ง์ ๋ผ๋๋ฅผ ๊ทธ๋ฆฌ๋ html, ์คํ์ผ์ ๋ด๋นํ๋ css, ๊ทธ๋ฆฌ๊ณ ๋์์ ๋ด๋นํ๋ JavaScript๋ฅผ ๊ธฐ๋ณธ์ผ๋ก JS์์ ํน์ data๋ง ์์ฒญํ๋ ๋ก์ง์ ํจ๊ป ์ฐ๋ ๊ฒฝ์ฐ๊ฐ ๋๋ถ๋ถ์
๋๋ค.
Ajax ๊ธฐ๋ฒ์ด ๋ฑ์ฅํ๊ธฐ ์ด์ ์๋ ๊ฐ ํ์ด์ง๋ง๋ค ์๋ฒ์์ ์์ฑ๋ html์ ๋ง๋ค์ด์ ๋ณด๋ด์ค์ผํ์ต๋๋ค. ์ ์ ์ ์ ๋ณด๋ ํ์ด์ง ๋ฒํธ ๋ฑ์ ๋ฐ๋ผ ํ์ด์ง์ ์ผ๋ถ๊ฐ ๋ณํ๋ ์ํฉ์์๋ ๊ทธ๋๋ก ์ ์ง๋๋
html๊น์ง ๋ค์ ์ ๋ถ ๊ทธ๋ ค์ผํ์ต๋๋ค. Ajax๋ฅผ ํตํด ์ฒ์ ํ์ด์ง ์์ฒญ์์๋ง html, css, js ๋ฅผ ๋ฐ๊ณ ์ ์ ์ ์ธํฐ๋ ์
์ ๋ฐ๋ผ data๋ฅผ ์์ฒญํ์ฌ ํ๋ฉด์ ์ผ๋ถ๋ถ๋ง ๋ณ๊ฒฝํจ์ผ๋ก์จ ๊ธฐ์กด๊ณผ๋ ์์ ํ ๋ค๋ฅธ
์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ ์ ์๊ฒ ๋์์ต๋๋ค.
๋น์ทํ ์๋ ์์ง๋ง ๋ด๊ฐ ๋๊ผ๋ ์ด๋ค ๋ณธ์ง์ ์ธ ๋๋์ด๋์ ๋ค๋ฅธ ๊ฒ ๊ฐ๋ค. ์์งํ ajaxํ๋ฉด ๋น์ฅ ๋ ์ค๋ฅด๋ ๊ฒ xmlHttpRequest ํน์ fetch api์ด์๋๋ฐ ์ด๋ฐ ์ฌ๋ฌ๊ฐ์ง๋ฅผ ์กฐํฉํด์ ๊ฐ๋ฐํ๋ ๊ธฐ๋ฒ์ด๋ผ๋ ๊ฒ ์ ๊ธฐํ๋ค.(์ง๊ธ์ ์ด ์ธํธ๊ฐ ๋๋ฌด ๋น์ฐํ๋ฐโฆ)
์ ๊ทธ๋ฆฌ๊ณ Asynchronous JavaScript and XML
์์ xml์ ์ ๋ง ๋จ์ํ๊ฒ ๋งํ์๋ฉด html ๊ฐ์ ๋
์์ธ๋ฐ, ํ๋ฉด์ ๊ณจ๊ฒฉ์ ์ก์ผ๋ ค๋ ๋ชฉ์ ์ด ๊ฐํ html๊ณผ๋ ๋ค๋ฅด๊ฒ ๋ฐ์ดํฐ๋ฅผ ํํํ๊ธฐ ์ํ ๋ชฉ์ ์ด ๊ฐํ ๋งํฌ์
์ธ์ด์ด๋ค.(๋ ๋จ์ํ๊ฒ ๋งํ๋ฉด ์ง๊ธ ์ฐ๋ฆฌ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ๋ ์ฌ์ฉํ๋ ํํ์ธ JSON์ ๋งํฌ์
๋ฒ์ ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.) ๊ทธ ๋น์์๋ xml์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด์์ด์ ajax๊ฐ ๋์๋ค.
๐ ํ๊ณ
์๊ฐ์ด ๋น ๋ฅด๋๋ผ๋ ๊ทธ ์์์ ๊ทธ ํ๋ฆ์ ์ ์ธ์งํ๋ฉด์ ์ด๋๋ก ํ์! ๊ทธ๋์ผ ๋ ์์ฐจ๊ณ ์๋ฏธ์๋ ์ถ์ ์ด ์ ์๋ค.