๐Ÿšค ์„ฑ์žฅ์ผ์ง€ 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๊ฐ€ ๋˜์—ˆ๋‹ค.

๐Ÿ“ ํšŒ๊ณ 

์‹œ๊ฐ„์ด ๋น ๋ฅด๋”๋ผ๋„ ๊ทธ ์†์—์„œ ๊ทธ ํ๋ฆ„์„ ์ž˜ ์ธ์ง€ํ•˜๋ฉด์„œ ์‚ด๋„๋ก ํ•˜์ž! ๊ทธ๋ž˜์•ผ ๋” ์•Œ์ฐจ๊ณ  ์˜๋ฏธ์žˆ๋Š” ์‚ถ์„ ์‚ด ์ˆ˜ ์žˆ๋‹ค.

์ฐธ๊ณ