๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ““Book3

[๋ชจ๋˜ ๋ฆฌ์•กํŠธ Deep Dive] 03์žฅ ๋ฆฌ์•กํŠธ ํ›… ๊นŠ๊ฒŒ ์‚ดํŽด๋ณด๊ธฐ ๋ฆฌ์•กํŠธ๋กœ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ํ›…์€ ํ•ญ์ƒ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ์ •ํ™•ํžˆ ์ด ํ›…์ด ์–ด๋–ค ์˜๋ฏธ์ด๊ณ  ์™œ ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ์ž˜ ๋ชจ๋ฅด๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ํ•œ๋ฒˆ ๋ชจ๋˜ ๋ฆฌ์•กํŠธ Deep Dive์— ์žˆ๋Š” ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.ํ›…(hook)์ด ๋ญ๋ƒ?ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ๋งŒ ํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ์ƒํƒœ ๊ด€๋ฆฌ์™€ ๋ผ์ดํ”„์‚ฌ์ดํด(์ƒ๋ช…์ฃผ๊ธฐ) ๋ฉ”์„œ๋“œ๋ฅผ ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์ฃ . ๋Œ€ํ‘œ์ ์ธ ํ›…์— ๋Œ€ํ•ด ์•Œ์•„๋ด…์‹œ๋‹ค. 1.useStateํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€์—์„œ ์ƒํƒœ๋ฅผ ์ •์˜ํ•˜๊ณ , ์ด ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ํ›…์ด๋‹ค.import {useState} from 'react';const [state, setState] = useState(initialState); ๋ฆฌ์•กํŠธ๋Š” useState๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์ž์ฒด์ ์œผ๋กœ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ์ƒํƒœ๊ฐ’.. 2025. 1. 18.
[๋ชจ๋˜ ๋ฆฌ์•กํŠธ Deep Dive] 2.4 ๋ Œ๋”๋ง์€ ์–ด๋–ป๊ฒŒ ์ผ์–ด๋‚˜๋Š”๊ฐ€? ๋ฆฌ์•กํŠธ์˜ ๋ Œ๋”๋ง์€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ Œ๋”๋ง์— ํ•„์š”ํ•œ DOM ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“œ๋Š” ๊ณผ์ •์„ ์˜๋ฏธํ•œ๋‹ค.์ด ๋ Œ๋”๋ง ๊ณผ์ •์€ ์‹œ๊ฐ„๊ณผ ๋ฆฌ์†Œ์Šค๋ฅผ ์†Œ๋น„ํ•ด ์ˆ˜ํ–‰๋˜๋Š” ๊ณผ์ •์œผ๋กœ, ์ด ๋น„์šฉ์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ฒญ๊ตฌ๋˜๋ฉฐ ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง€๊ณ  ๋ณต์žกํ•ด์งˆ์ˆ˜๋ก ์œ ์ €์˜ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ €ํ•ดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ๋ Œ๋”๋ง ๊ณผ์ •์„ ์ตœ์†Œํ•œ์œผ๋กœ ์ค„์—ฌ์•ผ ํ•œ๋‹ค. 2.4.1 ๋ฆฌ์•กํŠธ์˜ ๋ Œ๋”๋ง์ด๋ž€?๋ฆฌ์•กํŠธ์—์„œ์˜ ๋ Œ๋”๋ง์ด๋ž€ ๋ฆฌ์•กํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํŠธ๋ฆฌ ์•ˆ์— ์žˆ๋Š” ๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ๋“ค์ด ํ˜„์žฌ ์ž์‹ ๋“ค์ด ๊ฐ€์ง€๊ณ ์žˆ๋Š” props์™€ state์˜ ๊ฐ’์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์–ด๋–ป๊ฒŒ UI๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์–ด๋–ค DOM ๊ฒฐ๊ณผ๋ฅผ ๋ธŒ๋ผ์šฐ์ €์— ์ œ๊ณตํ•  ๊ฒƒ์ธ์ง€ ๊ณ„์‚ฐํ•˜๋Š” ์ผ๋ จ์˜ ๊ณผ์ •์„ ์˜๋ฏธํ•œ๋‹ค. 2.4.2 ๋ฆฌ์•กํŠธ์˜ ๋ Œ๋”๋ง์ด ์ผ์–ด๋‚˜๋Š” ์ด์œ 1.์ตœ์ดˆ ๋ Œ๋”๋ง : ์ฒ˜์Œ ์ง„์ž…ํ•˜๋ฉด ๋ Œ๋”๋งํ•ด์•ผ ํ•  ๊ฒฐ๊ณผ๋ฌผ์ด ํ•„์š”ํ•œ๋‹ค. ๋ฆฌ์•กํŠธ๋Š” ๋ธŒ๋ผ์šฐ์ €์— ์ด ์ •๋ณด๋ฅผ.. 2025. 1. 17.
[๋ชจ๋˜ ๋ฆฌ์•กํŠธ Deep Dive] 05์žฅ ๋ฆฌ์•กํŠธ์™€ ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ 5.2 ๋ฆฌ์•กํŠธ ํ›…์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ƒํƒœ ๊ด€๋ฆฌ5.2.1 ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ•: useState์™€ useReduceruseState์™€ useReducer๋Š” ์ง€์—ญ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํ›…์ด๋‹ค.ํ•˜์ง€๋งŒ ์ด ์ง€์—ญ ์ƒํƒœ๋Š” ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ ๋‚ด์—์„œ๋งŒ ์œ ํšจํ•˜๋‹ค๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ๋‹ค. ๊ทธ๋Ÿผ ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋™์‹œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ „์—ญ ์ƒํƒœ๋ฅผ ๋งŒ๋“ค์–ด ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ํ›…์ด ๋™์ผํ•œ ๊ฐ’์„ ์ฐธ์กฐํ•˜๊ฒŒํ•˜๋ฉด ๋œ๋‹ค.๊ทธ๋ฆฌ๊ณ  ์ƒํƒœ๊ฐ€ ์—…๋ฐ์ดํŠธ๋์„ ๋•Œ ์ด๋ฅผ ์ปดํฌ๋„ŒํŠธ์— ๋ฐ˜์˜์‹œํ‚ค๊ธฐ ์œ„ํ•œ ๋ฆฌ๋ Œ๋”๋ง์ด ํ•„์š”ํ•˜๋‹ค. ์œ„์™€ ๊ฐ™์€ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด store๋ฅผ ์ •์˜ํ•ด๋ณด๊ฒ ๋‹ค.store๋Š” ๊ฐ’์ด ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ๋ณ€๊ฒฝ๋์Œ์„ ์•Œ๋ฆฌ๋Š” callback ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•˜๊ณ , ์ด callback์„ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋Š” subscribe ํ•จ์ˆ˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค. 5... 2024. 7. 2.