useStateconst [state, setState] = useState(initialState)useState๋ ๋ฐฐ์ด์ ๋ฐํํ๊ณ ๋น๊ตฌ์กฐํ ํ ๋น์ ํตํด state, setState๋ฅผ ์ถ์ถํ์ฌ ์ฌ์ฉํ๋ค. ๊ทธ๋ ๋ค๋ฉด useState๋ ์ด๋์ ์ค๋ ๊ฒ์ผ๊น? ํจ์ํ ์ปดํฌ๋ํธ๋ ๋ ๋๋ง์ด ๋ฐ์ํ๋ฉด ํจ์ ์์ฒด๊ฐ ๋ค์ ํธ์ถ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ป๊ฒ ํจ์๊ฐ ๋ค์ ํธ์ถ๋์์ ๋ ์ด์ ์ ์ํ๊ฐ์ ๊ฐ์ ธ์ฌ ์ ์๋ ๊ฒ์ธ๊ฐ?๋ฐ๋ก! useState๋ closure๋ก ๊ตฌํ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ด์ ์ ์ํ๊ฐ์ ์ ์งํ ์ ์๋ค!๊ทธ๋ ๋ค๋ฉด closure๋ ๋ฌด์์ธ๊ฐ? ์ด์ ๋ํด ๋จผ์ ํ์ธํด ๋ณด์! closure๋?mdn์ ๋ฐ๋ฅด๋ฉด ํจ์์ ๊ทธ ์ฃผ๋ณ ์ํ(lexical environment, ํจ์๊ฐ ์ ์๋ ๋ ์ฃผ๋ณ์ ์ค์ฝํ์ ๋ณ์์ ๋ํ ์ ๋ณด๋ฅผ ํฌํจํ..
Closure
๊ต์๋์ด ์ด์ฌํ ํด๋ก์ ํจ์ ๊ฐ์ํด์ฃผ์๋ ๊ฑด ๊ธฐ์ต์ด ๋์ง๋ง (์ํ ๋ฌธ์ ์๋ ๋์๋ ๊ฑฐ ๊ฐ๋ค) ๋ฌด์จ ๋ด์ฉ์ธ์ง๋ ๊ฐ๋ฌผ๊ฐ๋ฌผํ๋ค.. ์ค๋์ ํด๋ก์ ํจ์์ ๋ํด ์์๋ณด๊ฒ ๋ค! ํด๋ก์ (Closure)๋? MDN์ ๋ฐ๋ฅด๋ฉด ํด๋ก์ ๋ ํจ์์ ํจ์๊ฐ ์ ์ธ๋ ์ดํ์ ํ๊ฒฝ(lexical environment)์ ์กฐํฉ์ด๋ค. ์ฆ, ํด๋ก์ ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ด๋ถ ํจ์์์ ์ธ๋ถ ํจ์์ ์ค์ฝํ์ ์ ๊ทผํ ์ ์๋ค. ํด๋ก์ ๋ฅผ ์ดํดํ๋ ค๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์ด๋ป๊ฒ ๋ณ์์ ์ ํจ ๋ฒ์๋ฅผ ์ง์ ํ๋์ง(Lexical scoping)๋ฅผ ๋จผ์ ์ดํดํด์ผ ํ๋ค. Lexical scoping์ ๋ํด์ ๋จผ์ ์์๋ณด์ ์๋ฐ์คํฌ๋ฆฝํธ๋ Lexical Scope๋ฅผ ๋ฐ๋ฅธ๋ค! (๋ฐ๋๋๋ ๊ฒ์ Dynamic Scope) Lexical Scope๋ ํจ์์ ๋ณ์์ scope๋ฅผ ์ ์๋ ์์น..