์ด ๊ธ์ ์ฝ์ ๋๋ ์คํ ์ปจํ ์คํธ์ ์ค์ฝํ์ ๋ํ ๊ฐ๋ ์ ํ์๋ก ํ๋ค. ์ด๋ฏธ ๋ด๊ฐ ์จ๋ ์คํ ์ปจํ ์คํธ์ ์ค์ฝํ ๊ธ์ ์ฝ์๋ค๋ฉด ์๊ด์๊ฒ ์ง๋ง ์์ง ์ดํด๊ฐ ์ ๋๊ฑฐ๋, ์ฝ์ง ์์๋ค๋ฉด ์ฝ๊ณ ์ค๊ธฐ๋ฅผ ๋ฐ๋๋ค.
โก๏ธ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ค์ฝํ, ์๋ฐ์คํฌ๋ฆฝํธ์ ์คํ ์ปจํ ์คํธ
์ฝ๊ณ ์๋ค๊ณ ์๊ฐํ๊ณ ์ด์ ์ ๋ค๋ฃฌ ๋ด์ฉ์ ์๋ตํ๊ณ ์งํํ๊ฒ ๋ค.
ํจ์ ์ ์๊ฐ ํ๊ฐ๋์ด ํจ์ ๊ฐ์ฒด๊ฐ ์์ฑ๋ ๋, ํจ์ ๊ฐ์ฒด๋ ๋ด๋ถ ์ฌ๋กฏ [[Environment]]
์ ์์ ์ด ์ ์๋ ํ๊ฒฝ์ธ ์์ ์ค์ฝํ์ ์ฐธ์กฐ๋ฅผ ์ ์ฅํ๋ค. ๊ทธ๋ฆฌ๊ณ ํจ์ ๊ฐ์ฒด๋ ํธ์ถ๋ ๋, ํจ์ ์คํ ์ปจํ
์คํธ๋ฅผ ์์ฑํ๋ฉด์ OuterEnvironmentReference์ ํจ์ ๊ฐ์ฒด์ ๋ด๋ถ ์ฌ๋กฏ [[Environment]]
์ ์ ์ฅ๋ Lexical Environment์ ์ฐธ์กฐ๊ฐ ํ ๋น๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ํจ์ ์ ์ ์์น์ ๋ฐ๋ผ ์์ ์ค์ฝํ๋ฅผ ๊ฒฐ์ ํ๋ ๋ ์์ปฌ ์ค์ฝํ์ ์ค์ฒด๋ค.
์ธ๋ถ ํจ์๋ณด๋ค ์ค์ฒฉ ํจ์๊ฐ ๋ ์ค๋ ์ ์ง๋๋ ๊ฒฝ์ฐ ์ค์ฒฉ ํจ์๋ ์ด๋ฏธ ์๋ช ์ฃผ๊ธฐ๊ฐ ์ข ๋ฃํ ์ธ๋ถ ํจ์์ ๋ณ์๋ฅผ ์ฐธ์กฐํ ์ ์๋ค. ์ด๋ฌํ ์ค์ฒฉ ํจ์๋ฅผ ํด๋ก์ (closure)๋ผ๊ณ ๋ถ๋ฅธ๋ค.
์ด๋ค ํจ์์ ์คํ ์ปจํ ์คํธ๊ฐ ์ ๊ฑฐ๋์์ ๋, ๊ทธ ํจ์์ Lexical Environment๊น์ง ์๋ฉธํ๋ ๊ฒ์ ์๋๋ค. ๋ง์ฝ์ ๊ทธ ํจ์์ Lexical Environment๊ฐ ๋๊ตฐ๊ฐ๊ฐ ์ฐธ์กฐํ๊ณ ์๋ค๋ฉด, ๊ฐ๋น์ง ์ปฌ๋ ํฐ์ ์ํด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ํด์ฒด๋์ง ์๋๋ค.
์ด ๋, ๊ทธ ํจ์์ Lexical Environment๋ฅผ ์ฐธ์กฐํ๋ ๋๊ตฐ๊ฐ๊ฐ ๊ทธ ํจ์์ ์ค์ฒฉํจ์ ์ผ ๋, ๊ทธ ์ค์ฒฉํจ์๋ฅผ ํด๋ก์ ๋ผ๊ณ ํ๋ค. ์ด ๋, ํด๋ก์ ๋ ๊ทธ ํจ์์ ์ด๋ค ์๋ณ์๋ผ๋ ์ฐธ์กฐํ๊ณ ์์ด์ผํ๊ณ , ๊ทธ ํจ์๋ณด๋ค ์๋ช ์ฃผ๊ธฐ๊ฐ ๊ธธ์ด์ผํ๋ค.
์ด๋ค ์๋ณ์๋ผ๋ ์ฐธ์กฐํ์ง ์์ผ๋ฉด ๋๋ถ๋ถ์ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ๋ ์ต์ ํ๋ฅผ ํตํด ์์ ์ค์ฝํ๋ฅผ ๊ธฐ์ตํ์ง ์์ผ๋ฉฐ, ์ด๋ฌ๋ฉด ๋น์ฐํ ํด๋ก์ ์ ๋ณธ์ง์ ๋ถํฉํ์ง ์๋๋ค. ๋ํ ์ธ๋ถ ํจ์์ธ ๊ทธ ํจ์๋ณด๋ค ์ค์ฒฉํจ์๊ฐ ์๋ช ์ฃผ๊ธฐ๊ฐ ์งง๋ค๋ฉด ์๋ช ์ฃผ๊ธฐ๊ฐ ์ข ๋ฃํ ์ธ๋ถ ํจ์์ ๋ณ์๋ฅผ ์ฐธ์กฐํ๋ค๋ ํด๋ก์ ์ ๋ณธ์ง์ ๋ถํฉํ์ง ์๋๋ค.
ํด๋ก์ ์ ์ํด ์ฐธ์กฐ๋๋ ์์ ์ค์ฝํ์ ๋ณ์๋ฅผ ์์ ๋ณ์(free variable)๋ผ๊ณ ๋ถ๋ฅธ๋ค. ํด๋ก์ ๋ โ์์ ๋ณ์์ ๋ฌถ์ฌ์๋ ํจ์"๋ผ๊ณ ํ ์ ์๋ค.
ํด๋ก์ ๋ ์ํ(state)๋ฅผ ์์ ํ๊ฒ ๋ณ๊ฒฝํ๊ณ ์ ์งํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค. ๋ค์ ๋งํด, ์ํ๊ฐ ์๋์น ์๊ฒ ๋ณ๊ฒฝ๋์ง ์๋๋ก ์ํ๋ฅผ ์์ ํ๊ฒ ์๋(information hiding)ํ๊ณ ํน์ ํจ์์๊ฒ๋ง ์ํ ๋ณ๊ฒฝ์ ํ์ฉํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
(๊ทผ๋ฐ ํด๋์ค์์ private ํ๋๋ฅผ ์ ์ํ ์ ์๋ ๋ง๋น์ ๊ตณ์ด ํด๋ก์ ๋ฅผ ์จ์ผํ๋ ์ด์ ๋ฅผ ๋๋ ์์ง ์ ๋ชจ๋ฅด๊ฒ ๋ค. ์ธ์๋ ํ์ฉํ๋ ๋ฐฉํฅ์ด ๋ง์ ๊ฒ ๊ฐ์ผ๋, ๋๋ฌด ๋ง์ ๊ฒ ๊ฐ์(...) ๊ตณ์ด ๊ธ์ ์ฐ์ง๋ ์๊ฒ ๋ค.)