๐ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ง๋ฒ: ํด๋ก์ ์ ์ค์ฝํ ์ฒด์ธ ํํ ๐งโโ๏ธ

์๋ ํ์ธ์, ์ฝ๋ฉ ๋ง๋ฒ์ฌ ์ฌ๋ฌ๋ถ! ์ค๋์ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ ๋น๋ก์ด ์ธ๊ณ๋ก ์ฌ๋ฌ๋ถ์ ์ด๋ํฉ๋๋ค. ํนํ ํด๋ก์ (Closure)์ ์ค์ฝํ ์ฒด์ธ(Scope Chain)์ด๋ผ๋ ๋ ๊ฐ์ง ๊ฐ๋ ฅํ ๊ฐ๋ ์ ๋ํด ๊น์ด ํ๊ณ ๋ค ์์ ์ ๋๋ค. ์ด ๋ ๊ฐ๋ ์ ๋ง์น ํ๋ก๊ทธ๋๋ฐ ์ธ๊ณ์ ๋ง๋ฒ ์ฃผ๋ฌธ๊ณผ๋ ๊ฐ์์, ์ ๋๋ก ์ดํดํ๊ณ ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ๋ถ์ ์ฝ๋์ ๋๋ผ์ด ํ์ ๋ถ์ด๋ฃ์ ์ ์๋ต๋๋ค! ๐ฉโจ
์ฌ๋ฌ๋ถ, ํน์ ์ฌ๋ฅ๋ท์ด๋ผ๋ ์ฌ๋ฅ ๊ณต์ ํ๋ซํผ์ ๋ค์ด๋ณด์ จ๋์? ์ด๊ณณ์์๋ ๋ค์ํ ๋ถ์ผ์ ์ ๋ฌธ๊ฐ๋ค์ด ์์ ์ ์ง์๊ณผ ๊ธฐ์ ์ ๊ณต์ ํ๊ณ ์์ฃ . ์ค๋ ์ฐ๋ฆฌ๊ฐ ๋ฐฐ์ธ ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ณ ๊ธ ๊ฐ๋ ๋ค๋ ์ด๋ฐ ํ๋ซํผ์ ํตํด ๋ ๋ง์ ์ฌ๋๋ค๊ณผ ๋๋ ์ ์์ ๊ฑฐ์์. ์, ๊ทธ๋ผ ์ฐ๋ฆฌ์ ๋ง๋ฒ ์์ ์ ์์ํด๋ณผ๊น์? ๐งโโ๏ธ๐ฎ
๐ ํด๋ก์ : ์๋ฐ์คํฌ๋ฆฝํธ์ ๋น๋ฐ ์ฃผ๋ฌธ
์, ์ฌ๋ฌ๋ถ! ํด๋ก์ ๋ผ๋ ๋จ์ด๋ฅผ ๋ค์ด๋ณด์ จ๋์? ์ฒ์ ๋ค์ผ๋ฉด ์กฐ๊ธ ์ด๋ ต๊ฒ ๋๊ปด์ง ์ ์์ง๋ง, ๊ฑฑ์ ๋ง์ธ์. ์ ๊ฐ ์ฝ๊ณ ์ฌ๋ฏธ์๊ฒ ์ค๋ช ํด๋๋ฆฌ๊ฒ ์ต๋๋ค. ๐ค
ํด๋ก์ (Closure)๋? ํจ์์ ๊ทธ ํจ์๊ฐ ์ ์ธ๋ ๋ ์์ปฌ ํ๊ฒฝ์ ์กฐํฉ์ ๋งํฉ๋๋ค. ์ฝ๊ฒ ๋งํด, ํจ์๊ฐ ์์ ์ด ์์ฑ๋ ๋์ ํ๊ฒฝ์ ๊ธฐ์ตํ๋ ํน๋ณํ ๋ฅ๋ ฅ์ด์์!
์... ์ฌ์ ํ ์ด๋ ต๊ฒ ๋๊ปด์ง๋์? ๊ทธ๋ผ ์ด๋ ๊ฒ ์๊ฐํด๋ณด์ธ์. ํด๋ก์ ๋ ๋ง์น ๋ง๋ฒ ์ฃผ๋ฌธ์ ๋ด์ ๋ดํฌ์ ๊ฐ์์. ์ด ๋ดํฌ ์์๋ ํจ์(์ฃผ๋ฌธ)์ ๊ทธ ํจ์๊ฐ ๋ง๋ค์ด์ง ๋์ ์ฃผ๋ณ ํ๊ฒฝ(๋ง๋ฒ ์ฌ๋ฃ๋ค)์ด ํจ๊ป ๋ค์ด์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๋ดํฌ๋ ์ธ์ ์ด๋์๋ ์ด์ด๋ณผ ์ ์์ด์! ๐ญโ๏ธ
๐งช ํด๋ก์ ์ ๋ง๋ฒ ์คํ์ค
์, ์ด์ ์ฐ๋ฆฌ์ ๋ง๋ฒ ์คํ์ค์์ ํด๋ก์ ๋ฅผ ์ง์ ๋ง๋ค์ด๋ณผ๊น์? ์ฌ๊ธฐ ๊ฐ๋จํ ์์ ๊ฐ ์์ต๋๋ค:
function ๋ง๋ฒ์ฌ์๋น๋ฐ์ฃผ๋ฌธ(๋ง๋ฒ์ฌ์ด๋ฆ) {
let ๋ง๋ฒ๋ ฅ = 100; // ์ด๊ฒ์ ๋น๋ฐ ์ ๋ณด์์!
return function() {
๋ง๋ฒ๋ ฅ += 10;
console.log(`${๋ง๋ฒ์ฌ์ด๋ฆ}์ ๋ง๋ฒ๋ ฅ์ด ${๋ง๋ฒ๋ ฅ}์ด ๋์์ต๋๋ค!`);
}
}
const ํด๋ฆฌ์์ฃผ๋ฌธ = ๋ง๋ฒ์ฌ์๋น๋ฐ์ฃผ๋ฌธ('ํด๋ฆฌ');
ํด๋ฆฌ์์ฃผ๋ฌธ(); // ์ถ๋ ฅ: ํด๋ฆฌ์ ๋ง๋ฒ๋ ฅ์ด 110์ด ๋์์ต๋๋ค!
ํด๋ฆฌ์์ฃผ๋ฌธ(); // ์ถ๋ ฅ: ํด๋ฆฌ์ ๋ง๋ฒ๋ ฅ์ด 120์ด ๋์์ต๋๋ค!
์์ฐ! ๋ฌด์จ ์ผ์ด ์ผ์ด๋ ๊ฑธ๊น์? ๐ค
- ๋ง๋ฒ์ฌ์๋น๋ฐ์ฃผ๋ฌธ ํจ์๋ ๋ค๋ฅธ ํจ์๋ฅผ ๋ฐํํฉ๋๋ค. ์ด ๋ด๋ถ ํจ์๊ฐ ๋ฐ๋ก ์ฐ๋ฆฌ์ ํด๋ก์ ์์!
- ํด๋ก์ ๋ ๋ง๋ฒ์ฌ์ด๋ฆ๊ณผ ๋ง๋ฒ๋ ฅ์ ๊ธฐ์ตํ๊ณ ์์ต๋๋ค.
- ํด๋ฆฌ์์ฃผ๋ฌธ์ ํธ์ถํ ๋๋ง๋ค, ๋ง๋ฒ๋ ฅ์ด 10์ฉ ์ฆ๊ฐํ๋ค์!
์ด๊ฒ์ด ๋ฐ๋ก ํด๋ก์ ์ ๋ง๋ฒ์ ๋๋ค! ํจ์๊ฐ ์์ฑ๋ ๋์ ํ๊ฒฝ(์ฌ๊ธฐ์๋ ๋ง๋ฒ์ฌ์ด๋ฆ๊ณผ ๋ง๋ฒ๋ ฅ)์ '๊ธฐ์ต'ํ๊ณ ์๋ค๊ฐ, ๋์ค์ ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ ๊ฑฐ์ฃ . ๐
๐ ์ฌ๋ฅ๋ท ํ: ํด๋ก์ ๋ฅผ ์ด์ฉํ๋ฉด ํ๋ผ์ด๋น ๋ณ์๋ฅผ ๋ง๋ค ์ ์์ด์. ์ด๋ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์์ ๋งค์ฐ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋ฉ๋๋ค. ์ฌ๋ฅ๋ท์์ ํ๋ก๊ทธ๋๋ฐ ๊ฐ์๋ฅผ ๋ค์ด๋ณด์๋ฉด, ์ด๋ฐ ๊ณ ๊ธ ๊ธฐ์ ์ ์ค์ ํ๋ก์ ํธ์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ธ ์ ์์ ๊ฑฐ์์!
๐ญ ํด๋ก์ ์ ์ค์ ์ฌ์ฉ ์ฌ๋ก
ํด๋ก์ ๋ ์ค์ ๋ก ๋ง์ ๊ณณ์์ ์ฌ์ฉ๋ฉ๋๋ค. ๋ช ๊ฐ์ง ์๋ฅผ ์ดํด๋ณผ๊น์?
- ๋ฐ์ดํฐ ํ๋ผ์ด๋ฒ์: ๋ณ์๋ฅผ ์ธ๋ถ์์ ์ง์ ์ ๊ทผํ์ง ๋ชปํ๊ฒ ์จ๊ธฐ๊ณ ์ถ์ ๋ ์ฌ์ฉํด์.
- ํจ์ ํฉํ ๋ฆฌ: ๋น์ทํ์ง๋ง ์กฐ๊ธ์ฉ ๋ค๋ฅธ ํจ์๋ค์ ๋ง์ด ๋ง๋ค์ด๋ผ ๋ ์ ์ฉํด์.
- ๋ชจ๋ ํจํด: ์๋ฐ์คํฌ๋ฆฝํธ์์ '๋ชจ๋'์ด๋ผ๋ ๊ฐ๋ ์ ๊ตฌํํ ๋ ํด๋ก์ ๋ฅผ ํ์ฉํฉ๋๋ค.
์, ์ด์ ํด๋ก์ ์ ๋ํด ์กฐ๊ธ์ ์ดํด๊ฐ ๋์ จ๋์? ๐ ํด๋ก์ ๋ ์ฒ์์๋ ์ดํดํ๊ธฐ ์ด๋ ค์ธ ์ ์์ง๋ง, ํ๋ฒ ์ดํดํ๊ณ ๋๋ฉด ์ ๋ง ๊ฐ๋ ฅํ ๋๊ตฌ๊ฐ ๋ฉ๋๋ค. ๋ง์น ํด๋ฆฌ ํฌํฐ๊ฐ ๋ง๋ฒ ์ฃผ๋ฌธ์ ์ตํ๋ ๊ฒ์ฒ๋ผ, ์ฌ๋ฌ๋ถ๋ ํด๋ก์ ๋ผ๋ ๋ง๋ฒ ์ฃผ๋ฌธ์ ์ตํ๊ณ ๊ณ์ ๊ฑฐ์์! ๐งโโ๏ธโก
์ด ๊ทธ๋ฆผ์ ํด๋ก์ ์ ๊ฐ๋ ์ ์๊ฐ์ ์ผ๋ก ํํํ ๊ฒ์ ๋๋ค. ์ธ๋ถ ํจ์์ ํ๊ฒฝ(๋ ์์ปฌ ํ๊ฒฝ)๊ณผ ๋ด๋ถ ํจ์๊ฐ ํ๋์ '๋ง๋ฒ ์์' ์์ ํจ๊ป ์กด์ฌํ๋ ๋ชจ์ต์ ๋ณผ ์ ์์ฃ . ์ด ๋ ์์๊ฐ ๊ฒฐํฉ๋์ด ํด๋ก์ ๋ผ๋ ๊ฐ๋ ฅํ ๋ง๋ฒ์ด ํ์ํ๋ ๊ฒ๋๋ค! ๐ฉโจ
๐ง ํด๋ก์ ์ ๋ฉ๋ชจ๋ฆฌ
ํด๋ก์ ์ ๋ง๋ฒ์ ๊ฐ๋ ฅํ์ง๋ง, ๋ชจ๋ ๋ง๋ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฃผ์ํด์ ์ฌ์ฉํด์ผ ํด์. ํด๋ก์ ๋ ์ธ๋ถ ํจ์์ ๋ณ์๋ฅผ ๊ณ์ ๊ธฐ์ตํ๊ณ ์๊ธฐ ๋๋ฌธ์, ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณ์ ์ฐจ์งํ๊ฒ ๋ฉ๋๋ค. ์ด๋ ๋๋๋ก ๋ฉ๋ชจ๋ฆฌ ๋์๋ก ์ด์ด์ง ์ ์์ด์.
โ ๏ธ ์ฃผ์: ํด๋ก์ ๋ฅผ ๊ณผ๋ํ๊ฒ ์ฌ์ฉํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ๋์ด๋ ์ ์์ต๋๋ค. ํ์ํ ๋๋ง ์ ์ ํ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์์!
ํ์ง๋ง ๊ฑฑ์ ๋ง์ธ์! ์ ์ ํ ์ฌ์ฉํ๋ค๋ฉด, ํด๋ก์ ๋ ์ฌ๋ฌ๋ถ์ ์ฝ๋๋ฅผ ๋์ฑ ๊ฐ๋ ฅํ๊ณ ์ ์ฐํ๊ฒ ๋ง๋ค์ด์ค ๊ฑฐ์์. ๋ง์น ํด๋ฆฌ ํฌํฐ๊ฐ '์ต์คํํ ํจํธ๋ก๋' ์ฃผ๋ฌธ์ ๋ง์คํฐํ ๊ฒ์ฒ๋ผ, ์ฌ๋ฌ๋ถ๋ ํด๋ก์ ๋ฅผ ๋ง์คํฐํ๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ์ ์ง์ ํ ๋ง๋ฒ์ฌ๊ฐ ๋ ์ ์๋ต๋๋ค! ๐งโโ๏ธโก
๐ ์ค์ฝํ ์ฒด์ธ: ์๋ฐ์คํฌ๋ฆฝํธ์ ๋น๋ฐ ํต๋ก
์, ์ด์ ์ฐ๋ฆฌ์ ๋ ๋ฒ์งธ ๋ง๋ฒ ์์ ์ ์์ํด๋ณผ๊น์? ์ด๋ฒ์๋ '์ค์ฝํ ์ฒด์ธ'์ด๋ผ๋ ์ ๋น๋ก์ด ๊ฐ๋ ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ๐ต๏ธโโ๏ธ๐
์ค์ฝํ ์ฒด์ธ(Scope Chain)์ด๋? ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด ๋ณ์๋ฅผ ์ฐพ์ ๋ ์ฌ์ฉํ๋ ๋ณ์ ํ์ ๊ฒฝ๋ก๋ฅผ ๋งํฉ๋๋ค. ๋ง์น ๋น๋ฐ ํต๋ก์ฒ๋ผ, ์ฌ๋ฌ ์ค์ฝํ๋ฅผ ์ฐ๊ฒฐํด์ฃผ๋ ์ฒด์ธ์ด์ฃ !
์... ์ฌ์ ํ ์กฐ๊ธ ์ถ์์ ์ผ๋ก ๋ค๋ฆฌ๋์? ๊ฑฑ์ ๋ง์ธ์. ์ฐ๋ฆฌ ํจ๊ป ์ค์ฝํ ์ฒด์ธ์ ์ธ๊ณ๋ก ๋ชจํ์ ๋ ๋๋ณผ๊น์? ๐
๐ฐ ์ค์ฝํ์ ์ฑ(Castle of Scope)
์ค์ฝํ ์ฒด์ธ์ ์ดํดํ๊ธฐ ์ํด, ์ฐ๋ฆฌ๋ ๋จผ์ '์ค์ฝํ'๋ผ๋ ๊ฐ๋ ์ ์์์ผ ํด์. ์ค์ฝํ๋ ๋ณ์์ ์ ํจ ๋ฒ์๋ฅผ ๋งํฉ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ํฌ๊ฒ ์ธ ๊ฐ์ง ์ข ๋ฅ์ ์ค์ฝํ๊ฐ ์์ด์:
- ์ ์ญ ์ค์ฝํ(Global Scope): ์ฝ๋์ ์ด๋ ๊ณณ์์๋ ์ ๊ทผ ๊ฐ๋ฅํ ๋ณ์๋ค์ ์์ญ
- ํจ์ ์ค์ฝํ(Function Scope): ํน์ ํจ์ ๋ด์์๋ง ์ ๊ทผ ๊ฐ๋ฅํ ๋ณ์๋ค์ ์์ญ
- ๋ธ๋ก ์ค์ฝํ(Block Scope): ES6์์ ๋์ ๋ ๊ฐ๋ ์ผ๋ก, let๊ณผ const๋ก ์ ์ธ๋ ๋ณ์๋ค์ด ์ํ๋ ์์ญ
์ด์ ์ด ์ค์ฝํ๋ค์ ํ๋์ ๊ฑฐ๋ํ ์ฑ์ผ๋ก ์์ํด๋ด ์๋ค. ์ ์ญ ์ค์ฝํ๋ ์ฑ์ ๊ฐ์ฅ ๋ฐ๊นฅ ์์ญ, ํจ์ ์ค์ฝํ๋ ์ฑ ์์ ์ฌ๋ฌ ๋ฐฉ๋ค, ๊ทธ๋ฆฌ๊ณ ๋ธ๋ก ์ค์ฝํ๋ ๊ทธ ๋ฐฉ๋ค ์์ ์์ ์์๋ค์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋ฉ๋๋ค. ๐ฐ
์ด ๊ทธ๋ฆผ์์ ๋ณผ ์ ์๋ฏ์ด, ์ค์ฝํ๋ค์ ์๋ก ํฌํจ ๊ด๊ณ๋ฅผ ๊ฐ์ง๊ณ ์์ด์. ์ ์ญ ์ค์ฝํ๊ฐ ๊ฐ์ฅ ๋ฐ๊นฅ์ ์๊ณ , ๊ทธ ์์ ํจ์ ์ค์ฝํ๋ค์ด ์์ผ๋ฉฐ, ํจ์ ์ค์ฝํ ์์ ๋ธ๋ก ์ค์ฝํ๋ค์ด ์กด์ฌํฉ๋๋ค. ์ด๋ฐ ๊ตฌ์กฐ๊ฐ ๋ฐ๋ก ์ค์ฝํ ์ฒด์ธ์ ๊ธฐ๋ณธ์ด ๋๋ ๊ฑฐ์ฃ ! ๐
๐ต๏ธโโ๏ธ ๋ณ์ ํ์ ๋์์
์, ์ด์ ์ค์ฝํ ์ฒด์ธ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์ดํด๋ณผ๊น์? ์ค์ฝํ ์ฒด์ธ์ ๋ณ์๋ฅผ ์ฐพ์ ๋ ์ฌ์ฉ๋๋ ๊ฒฝ๋ก์์. ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๋ณ์๋ฅผ ์ฐพ์ ๋ ๋ค์๊ณผ ๊ฐ์ ์์๋ก ํ์ํฉ๋๋ค:
- ํ์ฌ ์ค์ฝํ์์ ๋ณ์๋ฅผ ์ฐพ์ต๋๋ค.
- ์ฐพ์ง ๋ชปํ๋ฉด, ๋ฐ๋ก ๋ฐ๊นฅ์ ์ค์ฝํ๋ก ์ด๋ํด์ ๋ค์ ์ฐพ์ต๋๋ค.
- ๊ณ์ ์ฐพ์ง ๋ชปํ๋ฉด, ์ ์ญ ์ค์ฝํ๊น์ง ์ฌ๋ผ๊ฐ์ ์ฐพ์ต๋๋ค.
- ์ ์ญ ์ค์ฝํ์์๋ ์ฐพ์ง ๋ชปํ๋ฉด, 'ReferenceError'๋ฅผ ๋ฐ์์ํต๋๋ค.
์ด ๊ณผ์ ์ ์ฝ๋๋ก ํํํด๋ณผ๊น์? ๐งโ๐ป
let ์ฉ์ฌ์ด๋ฆ = '์์'; // ์ ์ญ ์ค์ฝํ
function ๋ชจํ์์์ํ๋ค() {
let ๋ฌด๊ธฐ = '์์ค์นผ๋ฆฌ๋ฒ'; // ํจ์ ์ค์ฝํ
function ๋๋๊ณค๊ณผ์ธ์ฐ๋ค() {
let ๋ฐฉ์ด๊ตฌ = '๋ง๋ฒ๊ฐ์ท'; // ๋ด๋ถ ํจ์ ์ค์ฝํ
console.log(`${์ฉ์ฌ์ด๋ฆ}์ด(๊ฐ) ${๋ฌด๊ธฐ}๋ฅผ ๋ค๊ณ ${๋ฐฉ์ด๊ตฌ}๋ฅผ ์
๊ณ ๋๋๊ณค๊ณผ ์ธ์๋๋ค!`);
}
๋๋๊ณค๊ณผ์ธ์ฐ๋ค();
}
๋ชจํ์์์ํ๋ค(); // ์ถ๋ ฅ: ์์์ด(๊ฐ) ์์ค์นผ๋ฆฌ๋ฒ๋ฅผ ๋ค๊ณ ๋ง๋ฒ๊ฐ์ท๋ฅผ ์
๊ณ ๋๋๊ณค๊ณผ ์ธ์๋๋ค!
์ด ์ฝ๋์์ ๋๋๊ณค๊ณผ์ธ์ฐ๋ค() ํจ์๋ ์ฉ์ฌ์ด๋ฆ, ๋ฌด๊ธฐ, ๋ฐฉ์ด๊ตฌ ์ธ ๊ฐ์ง ๋ณ์๋ฅผ ์ฌ์ฉํ๊ณ ์์ด์. ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์ด ๋ณ์๋ค์ ์ด๋ป๊ฒ ์ฐพ์๊น์?
- ๋ฐฉ์ด๊ตฌ: ํ์ฌ ํจ์ ์ค์ฝํ์์ ๋ฐ๋ก ์ฐพ์ต๋๋ค.
- ๋ฌด๊ธฐ: ํ์ฌ ์ค์ฝํ์ ์์ผ๋, ๋ฐ๋ก ๋ฐ๊นฅ ์ค์ฝํ์ธ ๋ชจํ์์์ํ๋ค() ํจ์์ ์ค์ฝํ์์ ์ฐพ์ต๋๋ค.
- ์ฉ์ฌ์ด๋ฆ: ํจ์ ์ค์ฝํ์๋ ์์ผ๋, ์ต์ข ์ ์ผ๋ก ์ ์ญ ์ค์ฝํ์์ ์ฐพ์ต๋๋ค.
์ด๋ ๊ฒ ์ค์ฝํ ์ฒด์ธ์ ๋ฐ๋ผ ๋ณ์๋ฅผ ์ฐพ์๊ฐ๋ ๊ณผ์ ์ด ๋ฐ๋ก ๋ณ์ ํ์์ ๋น๋ฐ์ด์์! ๐ต๏ธโโ๏ธ๐
๐ ์ฌ๋ฅ๋ท ํ: ์ค์ฝํ ์ฒด์ธ์ ์ ์ดํดํ๋ฉด ๋ณ์ ์ด๋ฆ ์ถฉ๋์ ํผํ๊ณ , ์ฝ๋์ ๊ตฌ์กฐ๋ฅผ ๋ ํจ์จ์ ์ผ๋ก ์ค๊ณํ ์ ์์ด์. ์ฌ๋ฅ๋ท์์ ์๋ฐ์คํฌ๋ฆฝํธ ๊ณ ๊ธ ๊ณผ์ ์ ์๊ฐํ๋ฉด, ์ด๋ฐ ๊ฐ๋ ๋ค์ ์ค์ ํ๋ก์ ํธ์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ธ ์ ์๋ต๋๋ค!
๐ญ ๋ ์์ปฌ ์ค์ฝํ: ์ค์ฝํ ์ฒด์ธ์ ๋น๋ฐ ์ด์
์ค์ฝํ ์ฒด์ธ์ ๋ ๊น์ด ์ดํดํ๊ธฐ ์ํด์๋ '๋ ์์ปฌ ์ค์ฝํ(Lexical Scope)'๋ผ๋ ๊ฐ๋ ๋ ์์์ผ ํด์. ๋ ์์ปฌ ์ค์ฝํ๋ ํจ์๋ฅผ ์ด๋์ ํธ์ถํ๋์ง๊ฐ ์๋๋ผ, ์ด๋์ ์ ์ธํ์๋์ง์ ๋ฐ๋ผ ์์ ์ค์ฝํ๋ฅผ ๊ฒฐ์ ํ๋ค๋ ๊ฐ๋ ์ ๋๋ค. ๐ฎ
๋ค์ ์์ ๋ฅผ ํตํด ๋ ์์ปฌ ์ค์ฝํ์ ๋ง๋ฒ์ ํ์ธํด๋ณผ๊น์?
let ๋ง๋ฒ์ฌ = '๊ฐ๋ฌํ';
function ๋ง๋ฒํ๊ต() {
let ๋ง๋ฒ์ฌ = '๋ค๋ธ๋์ด';
function ์์
() {
console.log(`${๋ง๋ฒ์ฌ} ์ ์๋์ ์์
์ด ์์๋ฉ๋๋ค.`);
}
์์
();
}
๋ง๋ฒํ๊ต(); // ์ถ๋ ฅ: ๋ค๋ธ๋์ด ์ ์๋์ ์์
์ด ์์๋ฉ๋๋ค.
์ฌ๊ธฐ์ ์์ () ํจ์๋ ๋ง๋ฒ์ฌ ๋ณ์๋ฅผ ์ฌ์ฉํ๊ณ ์์ด์. ๊ทธ๋ฐ๋ฐ ์ ์ญ ์ค์ฝํ์ ๋ง๋ฒํ๊ต() ํจ์ ์ค์ฝํ ๋ชจ๋์ ๋ง๋ฒ์ฌ ๋ณ์๊ฐ ์๋ค์. ๊ณผ์ฐ ์ด๋ค ๊ฐ์ด ์ถ๋ ฅ๋ ๊น์?
์ ๋ต์ '๋ค๋ธ๋์ด'์ ๋๋ค! ์๋ํ๋ฉด ์์ () ํจ์๊ฐ ์ ์ธ๋ ์์น(๋ ์์ปฌ ํ๊ฒฝ)์์ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ง๋ฒ์ฌ ๋ณ์๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ด์์. ์ด๊ฒ์ด ๋ฐ๋ก ๋ ์์ปฌ ์ค์ฝํ์ ๋ง๋ฒ์ ๋๋ค! ๐ฉโจ
๐ง ์ค์ฝํ ์ฒด์ธ๊ณผ ์ฑ๋ฅ
์ค์ฝํ ์ฒด์ธ์ ๊ฐ๋ ฅํ์ง๋ง, ๊ณผ๋ํ๊ฒ ๊ธด ์ฒด์ธ์ ์ฑ๋ฅ์ ์ํฅ์ ์ค ์ ์์ด์. ๋ณ์๋ฅผ ์ฐพ๊ธฐ ์ํด ์ฌ๋ฌ ์ค์ฝํ๋ฅผ ๊ฑฐ์ฌ๋ฌ ์ฌ๋ผ๊ฐ์ผ ํ๊ธฐ ๋๋ฌธ์ด์ฃ . ๋ฐ๋ผ์ ๊ฐ๋ฅํ ํ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ๊ณณ๊ณผ ๊ฐ๊น์ด ์ค์ฝํ์ ์ ์ธํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๐ก ์ฑ๋ฅ ํ: ์์ฃผ ์ฌ์ฉํ๋ ์ ์ญ ๋ณ์๋ ์ง์ญ ๋ณ์์ ์บ์ํ์ฌ ์ฌ์ฉํ๋ฉด ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ด์. ์๋ฅผ ๋ค์ด, let doc = document;
์ ๊ฐ์ด ์ฌ์ฉํ๋ฉด document ๊ฐ์ฒด์ ์ ๊ทผํ๋ ์๋๋ฅผ ๋์ผ ์ ์๋ต๋๋ค!
์, ์ด์ ์ฌ๋ฌ๋ถ์ ์ค์ฝํ ์ฒด์ธ์ ๋น๋ฐ์ ์๊ฒ ๋์์ด์! ์ด ์ง์์ ํ์ฉํ๋ฉด, ๋ง์น ํด๋ฆฌ ํฌํฐ๊ฐ ํธ๊ทธ์ํธ์ ๋น๋ฐ ํต๋ก๋ฅผ ์๋ ๊ฒ์ฒ๋ผ, ์ฌ๋ฌ๋ถ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋์ ๋น๋ฐ ํต๋ก๋ฅผ ์์ ์์ฌ๋ก ํ์ฉํ ์ ์์ ๊ฑฐ์์. ๐งโโ๏ธ๐ฐ
๐ฎ ํด๋ก์ ์ ์ค์ฝํ ์ฒด์ธ์ ๋ง๋ฒ์ ์กฐํ
์, ์ด์ ์ฐ๋ฆฌ๋ ํด๋ก์ ์ ์ค์ฝํ ์ฒด์ธ์ด๋ผ๋ ๋ ๊ฐ์ง ๊ฐ๋ ฅํ ๋ง๋ฒ์ ๋ฐฐ์ ์ด์. ํ์ง๋ง ์ง์ ํ ๋ง๋ฒ์ฌ๋ ์ด ๋ ๊ฐ์ง ๋ง๋ฒ์ ์กฐํ๋กญ๊ฒ ์ฌ์ฉํ ์ค ์์์ผ ํฉ๋๋ค. ๊ทธ๋ผ ์ด ๋ ๊ฐ๋ ์ด ์ด๋ป๊ฒ ํจ๊ป ์์ฉํ๋์ง ์ดํด๋ณผ๊น์? ๐งโโ๏ธโจ
๐ญ ํด๋ก์ ์ ์ค์ฝํ ์ฒด์ธ์ ์ถค
ํด๋ก์ ๋ ์ค์ฝํ ์ฒด์ธ์ ํตํด ์ธ๋ถ ํจ์์ ๋ณ์์ ์ ๊ทผํฉ๋๋ค. ์ด ๊ณผ์ ์ ์ถค์ ๋น์ ํด๋ณผ๊น์? ํด๋ก์ ๋ ์ฐ์ํ ๋ฐ๋ ๋ฆฌ๋, ์ค์ฝํ ์ฒด์ธ์ ๊ทธ ๋ฐ๋ ๋ฆฌ๋๊ฐ ์ถค์ถ๋ ๋ฌด๋๋ผ๊ณ ์๊ฐํด๋ณด์ธ์. ๐ฉฐ
function ๋ง๋ฒ์์์(๋น๋ฐ๋ด์ฉ) {
let ๋ง๋ฒ๋ ฅ = 100;
return function() {
๋ง๋ฒ๋ ฅ += 10;
console.log(`${๋น๋ฐ๋ด์ฉ}! ํ์ฌ ๋ง๋ฒ๋ ฅ: ${๋ง๋ฒ๋ ฅ}`);
}
}
const ์๋กํธ๋ชจ๋ผ = ๋ง๋ฒ์์์("๋ฌธ์ด ์ด๋ฆฝ๋๋ค");
์๋กํธ๋ชจ๋ผ(); // ์ถ๋ ฅ: ๋ฌธ์ด ์ด๋ฆฝ๋๋ค! ํ์ฌ ๋ง๋ฒ๋ ฅ: 110
์๋กํธ๋ชจ๋ผ(); // ์ถ๋ ฅ: ๋ฌธ์ด ์ด๋ฆฝ๋๋ค! ํ์ฌ ๋ง๋ฒ๋ ฅ: 120
์ด ์์ ์์ ๋ฐํ๋ ํจ์(์ฐ๋ฆฌ์ ๋ฐ๋ ๋ฆฌ๋)๋ ๋น๋ฐ๋ด์ฉ ๊ณผ ๋ง๋ฒ๋ ฅ ๋ณ์์ ์ ๊ทผํ๊ณ ์์ด์. ์ด ํจ์๋ ์์ ์ด ์ ์ธ๋ ๋ ์์ปฌ ํ๊ฒฝ(๋ฌด๋)์ ๊ธฐ์ตํ๊ณ , ์ค์ฝํ ์ฒด์ธ์ ํตํด ์ด ๋ณ์๋ค์ ์ฐ์ํ๊ฒ ์ ๊ทผํฉ๋๋ค. ๋ง์น ๋ฐ๋ ๋ฆฌ๋๊ฐ ๋ฌด๋ ์๋ฅผ ์ฐ์ํ๊ฒ ์์ง์ด๋ ๊ฒ์ฒ๋ผ์! ๐
๐ฐ ์ค์ฝํ ์ฒด์ธ ์ฑ์์์ ํด๋ก์ ๋ชจํ
์ด์ ์ฐ๋ฆฌ์ ํด๋ก์ ๋ฐ๋ ๋ฆฌ๋๊ฐ ์ค์ฝํ ์ฒด์ธ ์ฑ์ ๋ชจํํ๋ค๊ณ ์์ํด๋ด ์๋ค. ๋ ๋ณต์กํ ์์ ๋ฅผ ํตํด ์ด ๋ชจํ์ ๋ฐ๋ผ๊ฐ ๋ณผ๊น์?
let ๋ง๋ฒ์ฌ์ด๋ฆ = '๋ฉ๋ฆฐ'; // ์ ์ญ ์ค์ฝํ
function ๋ง๋ฒํ๊ต() {
let ํ๊ต์ด๋ฆ = 'ํธ๊ทธ์ํธ'; // ๋ง๋ฒํ๊ต ํจ์ ์ค์ฝํ
function ์์
์ค๋น() {
let ๊ณผ๋ชฉ = '๋ณ์ ์ '; // ์์
์ค๋น ํจ์ ์ค์ฝํ
return function ์์
์์(ํ์) {
// ํด๋ก์ : ์ธ๋ถ ์ค์ฝํ์ ๋ณ์๋ค์ ์ ๊ทผ
console.log(`${ํ๊ต์ด๋ฆ}์ ${๋ง๋ฒ์ฌ์ด๋ฆ} ์ ์๋์ด ${ํ์}์๊ฒ ${๊ณผ๋ชฉ} ์์
์ ์์ํฉ๋๋ค.`);
}
}
return ์์
์ค๋น();
}
const ์์
= ๋ง๋ฒํ๊ต();
์์
('ํด๋ฆฌ'); // ์ถ๋ ฅ: ํธ๊ทธ์ํธ์ ๋ฉ๋ฆฐ ์ ์๋์ด ํด๋ฆฌ์๊ฒ ๋ณ์ ์ ์์
์ ์์ํฉ๋๋ค.
์์ฐ! ์ ๋ง ๋ณต์กํด ๋ณด์ด์ฃ ? ํ์ง๋ง ๊ฑฑ์ ๋ง์ธ์. ์ฐ๋ฆฌ์ ํด๋ก์ ๋ฐ๋ ๋ฆฌ๋๊ฐ ์ด๋ป๊ฒ ์ถค์ ์ถ๋์ง ๋จ๊ณ๋ณ๋ก ์ดํด๋ด ์๋ค:
- ์์ ์์ ํจ์(์ฐ๋ฆฌ์ ํด๋ก์ )๋ ์์ ์ด ์ ์ธ๋ ๋ ์์ปฌ ํ๊ฒฝ์ ๊ธฐ์ตํฉ๋๋ค.
- ์ด ํจ์๋ ์ค์ฝํ ์ฒด์ธ์ ํตํด ์ธ๋ถ ๋ณ์๋ค์ ์ ๊ทผํฉ๋๋ค:
- ๊ณผ๋ชฉ: ๋ฐ๋ก ๋ฐ๊นฅ ์ค์ฝํ์ธ ์์ ์ค๋น ํจ์์์ ์ฐพ์ต๋๋ค.
- ํ๊ต์ด๋ฆ: ๊ทธ ๋ค์ ๋ฐ๊นฅ ์ค์ฝํ์ธ ๋ง๋ฒํ๊ต ํจ์์์ ์ฐพ์ต๋๋ค.
- ๋ง๋ฒ์ฌ์ด๋ฆ: ๊ฐ์ฅ ๋ฐ๊นฅ ์ค์ฝํ์ธ ์ ์ญ ์ค์ฝํ์์ ์ฐพ์ต๋๋ค.
- ํ์ ๋งค๊ฐ๋ณ์๋ ํด๋ก์ ๊ฐ ํธ์ถ๋ ๋ ์ ๋ฌ๋ฐ์ต๋๋ค.
์ด๋ ๊ฒ ํด๋ก์ ๋ ์ค์ฝํ ์ฒด์ธ์ ๋ฐ๋ผ ์ฐ์ํ๊ฒ ์ถค์ ์ถ๋ฉฐ, ํ์ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ์์งํ๊ณ ์ฌ์ฉํฉ๋๋ค. ๋ง์น ์๋ จ๋ ๋ฐ๋ ๋ฆฌ๋๊ฐ ๋ฌด๋์ ๋ชจ๋ ๊ณต๊ฐ์ ํ์ฉํ๋ ๊ฒ์ฒ๋ผ์! ๐ฉฐโจ
๐ ์ฌ๋ฅ๋ท ํ: ํด๋ก์ ์ ์ค์ฝํ ์ฒด์ธ์ ์ด๋ฐ ์ํธ์์ฉ์ ์ดํดํ๋ฉด, ๋ณต์กํ ์๋ฐ์คํฌ๋ฆฝํธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํฐ ํ๋ฆ์ ๋ ์ ์ ์ดํ ์ ์์ด์. ์ฌ๋ฅ๋ท์์ ์ ๊ณตํ๋ ๊ณ ๊ธ ์๋ฐ์คํฌ๋ฆฝํธ ๊ณผ์ ์ ํตํด ์ด๋ฐ ๊ฐ๋ ๋ค์ ์ค์ ํ๋ก์ ํธ์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์๋ณด๋ ๊ฑด ์ด๋จ๊น์?
๐ง ์ฑ๋ฅ๊ณผ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ๋ง๋ฒ
ํด๋ก์ ์ ์ค์ฝํ ์ฒด์ธ์ ์กฐํ๋ ๊ฐ๋ ฅํ์ง๋ง, ๋ชจ๋ ๊ฐ๋ ฅํ ๋ง๋ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฃผ์ํด์ ์ฌ์ฉํด์ผ ํด์. ํด๋ก์ ๋ ์ธ๋ถ ๋ณ์๋ค์ ๊ณ์ ๊ธฐ์ตํ๊ณ ์๊ธฐ ๋๋ฌธ์, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ๋์ด๋ ์ ์์ต๋๋ค. ๋ํ, ๊ธด ์ค์ฝํ ์ฒด์ธ์ ๋ณ์ ๊ฒ์ ์๊ฐ์ ๋๋ฆด ์ ์์ฃ .
๋ฐ๋ผ์ ๋ค์๊ณผ ๊ฐ์ ๋ง๋ฒ์ ์ฃผ๋ฌธ์ ๊ธฐ์ตํด๋์ธ์:
- ํ์ํ ๋ณ์๋ง ํด๋ก์ ์ ํฌํจ์ํค์ธ์. ๋ถํ์ํ ๋ณ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐจ์งํฉ๋๋ค.
- ๊ฐ๋ฅํ ํ ์ค์ฝํ ์ฒด์ธ์ ์งง๊ฒ ์ ์งํ์ธ์. ๋ณ์ ๊ฒ์ ์๋๊ฐ ๋นจ๋ผ์ง๋๋ค.
- ํด๋ก์ ๋ฅผ ์ฌ์ฉํ ํ์๋ ์ฐธ์กฐ๋ฅผ ์ ๊ฑฐํ์ฌ ๊ฐ๋น์ง ์ปฌ๋ ์ ์ด ๋์ํ ์ ์๊ฒ ํด์ฃผ์ธ์.
์ด๋ ๊ฒ ํ๋ฉด ํด๋ก์ ์ ์ค์ฝํ ์ฒด์ธ์ ๋ง๋ฒ์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ต๋๋ค! ๐งโโ๏ธ๐ซ
๐ญ ์ค์ ์์ฉ: ๋ง๋ฒ ์ฃผ๋ฌธ ์ ์์
์, ์ด์ ์ฐ๋ฆฌ๊ฐ ๋ฐฐ์ด ๊ฐ๋ ๋ค์ ํ์ฉํด ๋ฉ์ง ๋ง๋ฒ ์ฃผ๋ฌธ ์ ์์๋ฅผ ๋ง๋ค์ด๋ณผ๊น์? ์ด ์์ ๋ฅผ ํตํด ํด๋ก์ ์ ์ค์ฝํ ์ฒด์ธ์ด ์ค์ ๋ก ์ด๋ป๊ฒ ์กฐํ๋กญ๊ฒ ์๋ํ๋์ง ๋ณผ ์ ์์ ๊ฑฐ์์.
function ๋ง๋ฒ์ฃผ๋ฌธ์ ์์(๋ง๋ฒ์ฌ์ด๋ฆ) {
let ๋ง๋ฒ๋ ฅ = 100;
let ์ฃผ๋ฌธ๋ชฉ๋ก = [];
return {
์ฃผ๋ฌธ๋ฐฐ์ฐ๊ธฐ(์ฃผ๋ฌธ์ด๋ฆ) {
์ฃผ๋ฌธ๋ชฉ๋ก.push(์ฃผ๋ฌธ์ด๋ฆ);
console.log(`${๋ง๋ฒ์ฌ์ด๋ฆ}์ด(๊ฐ) ${์ฃผ๋ฌธ์ด๋ฆ} ์ฃผ๋ฌธ์ ๋ฐฐ์ ์ต๋๋ค!`);
},
์ฃผ๋ฌธ์ฌ์ฉํ๊ธฐ(์ฃผ๋ฌธ์ด๋ฆ) {
if (์ฃผ๋ฌธ๋ชฉ๋ก.includes(์ฃผ๋ฌธ์ด๋ฆ)) {
๋ง๋ฒ๋ ฅ -= 10;
console.log(`${๋ง๋ฒ์ฌ์ด๋ฆ}์ด(๊ฐ) ${์ฃผ๋ฌธ์ด๋ฆ} ์ฃผ๋ฌธ์ ์ฌ์ฉํ์ต๋๋ค. ๋จ์ ๋ง๋ฒ๋ ฅ: ${๋ง๋ฒ๋ ฅ}`);
} else {
console.log(`${๋ง๋ฒ์ฌ์ด๋ฆ}์(๋) ${์ฃผ๋ฌธ์ด๋ฆ} ์ฃผ๋ฌธ์ ๋ชจ๋ฆ
๋๋ค.`);
}
},
๋ง๋ฒ๋ ฅ์ถฉ์ () {
๋ง๋ฒ๋ ฅ += 50;
console.log(`${๋ง๋ฒ์ฌ์ด๋ฆ}์ ๋ง๋ฒ๋ ฅ์ด ์ถฉ์ ๋์์ต๋๋ค. ํ์ฌ ๋ง๋ฒ๋ ฅ: ${๋ง๋ฒ๋ ฅ}`);
}
};
}
const ํด๋ฆฌ = ๋ง๋ฒ์ฃผ๋ฌธ์ ์์('ํด๋ฆฌ ํฌํฐ');
ํด๋ฆฌ.์ฃผ๋ฌธ๋ฐฐ์ฐ๊ธฐ('์ต์คํ ๋ฆฌ์๋ฌด์ค');
ํด๋ฆฌ.์ฃผ๋ฌธ์ฌ์ฉํ๊ธฐ('์ต์คํ ๋ฆฌ์๋ฌด์ค');
ํด๋ฆฌ.์ฃผ๋ฌธ์ฌ์ฉํ๊ธฐ('์๋ฐ๋ค ์ผ๋ค๋ธ๋ผ');
ํด๋ฆฌ.๋ง๋ฒ๋ ฅ์ถฉ์ ();
์ด ์์ ์์ ๋ง๋ฒ์ฃผ๋ฌธ์ ์์ ํจ์๋ ํด๋ก์ ๋ฅผ ๋ฐํํฉ๋๋ค. ์ด ํด๋ก์ ๋ ๋ง๋ฒ์ฌ์ด๋ฆ, ๋ง๋ฒ๋ ฅ, ์ฃผ๋ฌธ๋ชฉ๋ก์ ๊ธฐ์ตํ๊ณ ์์ผ๋ฉฐ, ์ค์ฝํ ์ฒด์ธ์ ํตํด ์ด ๋ณ์๋ค์ ์ ๊ทผํฉ๋๋ค.
์คํ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ ๊ฑฐ์์:
ํด๋ฆฌ ํฌํฐ์ด(๊ฐ) ์ต์คํ ๋ฆฌ์๋ฌด์ค ์ฃผ๋ฌธ์ ๋ฐฐ์ ์ต๋๋ค!
ํด๋ฆฌ ํฌํฐ์ด(๊ฐ) ์ต์คํ ๋ฆฌ์๋ฌด์ค ์ฃผ๋ฌธ์ ์ฌ์ฉํ์ต๋๋ค. ๋จ์ ๋ง๋ฒ๋ ฅ: 90
ํด๋ฆฌ ํฌํฐ์(๋) ์๋ฐ๋ค ์ผ๋ค๋ธ๋ผ ์ฃผ๋ฌธ์ ๋ชจ๋ฆ
๋๋ค.
ํด๋ฆฌ ํฌํฐ์ ๋ง๋ฒ๋ ฅ์ด ์ถฉ์ ๋์์ต๋๋ค. ํ์ฌ ๋ง๋ฒ๋ ฅ: 140
์ด๋ ๊ฒ ํด๋ก์ ์ ์ค์ฝํ ์ฒด์ธ์ ๋ง๋ฒ์ ์ฌ์ฉํ๋ฉด, ๋ณต์กํ ์ํ ๊ด๋ฆฌ์ ์บก์ํ๋ฅผ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋ต๋๋ค. ๋ง์น ์ง์ ํ ๋ง๋ฒ์ฌ๊ฐ ๋ ๊ฒ ๊ฐ์ง ์๋์? ๐งโโ๏ธโจ
๐ ๋ง๋ฒ์ ๋, ๊ทธ๋ฆฌ๊ณ ์๋ก์ด ์์
์, ์ด์ ์ฐ๋ฆฌ์ ํด๋ก์ ์ ์ค์ฝํ ์ฒด์ธ ๋ง๋ฒ ์์ ์ด ๋๋๊ฐ๊ณ ์์ด์. ํ์ง๋ง ๊ธฐ์ตํ์ธ์, ์ด๊ฒ์ ๋์ด ์๋๋ผ ์๋ก์ด ์์์ ๋๋ค! ์ฌ๋ฌ๋ถ์ ์ด์ ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฐ๋ ฅํ ๋ง๋ฒ์ ๋ค๋ฃฐ ์ ์๋ ๋ฅ๋ ฅ์ ๊ฐ๊ฒ ๋์์ด์.
ํด๋ก์ ์ ์ค์ฝํ ์ฒด์ธ์ ์ฒ์์๋ ์ดํดํ๊ธฐ ์ด๋ ค์ธ ์ ์์ง๋ง, ๊ณ์ ์ฐ์ตํ๊ณ ์คํํด๋ณด๋ฉด ๊ณง ์ฌ๋ฌ๋ถ์ ์ฝ๋์ ์๋ช ์ ๋ถ์ด๋ฃ๋ ๊ฐ๋ ฅํ ๋๊ตฌ๊ฐ ๋ ๊ฑฐ์์. ๋ง์น ํด๋ฆฌ ํฌํฐ๊ฐ ํธ๊ทธ์ํธ์์ ๋ฐฐ์ด ๋ง๋ฒ๋ค์ ์ค์ํ์์ ์ฌ์ฉํ๋ ๊ฒ์ฒ๋ผ, ์ฌ๋ฌ๋ถ๋ ์ด ๊ฐ๋ ๋ค์ ์ค์ ํ๋ก์ ํธ์ ์ ์ฉํด๋ณด์ธ์!
๐ ์ฌ๋ฅ๋ท์ ๋ง์ง๋ง ์กฐ์ธ: ํด๋ก์ ์ ์ค์ฝํ ์ฒด์ธ์ ๋ง๋ฒ์ ์์ ํ ์ตํ๊ณ ์ถ๋ค๋ฉด, ๋ค์ํ ํ๋ก์ ํธ์ ์ ์ฉํด๋ณด๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ด์์. ์ฌ๋ฅ๋ท์์ ์ ๊ณตํ๋ ์ค์ ํ๋ก์ ํธ ๊ณผ์ ์ ํตํด ์ฌ๋ฌ๋ถ์ ๋ง๋ฒ ๋ฅ๋ ฅ์ ๋์ฑ ๋ฐ์ ์์ผ๋ณด๋ ๊ฑด ์ด๋จ๊น์? ํจ๊ป ์ฑ์ฅํ๊ณ , ๋ ๋์ ๊ฐ๋ฐ์๊ฐ ๋์ด๋ด์!
์, ์ด์ ์ฌ๋ฌ๋ถ์ ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฐ๋ ฅํ ๋ง๋ฒ์ฌ๊ฐ ๋์์ต๋๋ค. ์ด ์ง์์ ํ์ฉํด ๋๋ผ์ด ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค์ด๋ณด์ธ์. ๊ทธ๋ฆฌ๊ณ ๊ธฐ์ตํ์ธ์, ๋ชจ๋ ์๋ํ ๋ง๋ฒ์ฌ๋ ์ฒ์์๋ ์ด๋ณด์์๋ต๋๋ค. ๊ณ์ํด์ ํ์ตํ๊ณ , ์คํํ๊ณ , ์ฑ์ฅํ์ธ์!
์ฌ๋ฌ๋ถ์ ์ฝ๋ฉ ์ฌ์ ์ ํ์ด์ด ํจ๊ปํ๊ธฐ๋ฅผ! ๐๐งโโ๏ธ๐
- ์ง์์ธ์ ์ฒ - ์ง์ ์ฌ์ฐ๊ถ ๋ณดํธ ๊ณ ์ง
์ง์ ์ฌ์ฐ๊ถ ๋ณดํธ ๊ณ ์ง
- ์ ์๊ถ ๋ฐ ์์ ๊ถ: ๋ณธ ์ปจํ ์ธ ๋ ์ฌ๋ฅ๋ท์ ๋ ์ AI ๊ธฐ์ ๋ก ์์ฑ๋์์ผ๋ฉฐ, ๋ํ๋ฏผ๊ตญ ์ ์๊ถ๋ฒ ๋ฐ ๊ตญ์ ์ ์๊ถ ํ์ฝ์ ์ํด ๋ณดํธ๋ฉ๋๋ค.
- AI ์์ฑ ์ปจํ ์ธ ์ ๋ฒ์ ์ง์: ๋ณธ AI ์์ฑ ์ปจํ ์ธ ๋ ์ฌ๋ฅ๋ท์ ์ง์ ์ฐฝ์๋ฌผ๋ก ์ธ์ ๋๋ฉฐ, ๊ด๋ จ ๋ฒ๊ท์ ๋ฐ๋ผ ์ ์๊ถ ๋ณดํธ๋ฅผ ๋ฐ์ต๋๋ค.
- ์ฌ์ฉ ์ ํ: ์ฌ๋ฅ๋ท์ ๋ช ์์ ์๋ฉด ๋์ ์์ด ๋ณธ ์ปจํ ์ธ ๋ฅผ ๋ณต์ , ์์ , ๋ฐฐํฌ, ๋๋ ์์ ์ ์ผ๋ก ํ์ฉํ๋ ํ์๋ ์๊ฒฉํ ๊ธ์ง๋ฉ๋๋ค.
- ๋ฐ์ดํฐ ์์ง ๊ธ์ง: ๋ณธ ์ปจํ ์ธ ์ ๋ํ ๋ฌด๋จ ์คํฌ๋ํ, ํฌ๋กค๋ง, ๋ฐ ์๋ํ๋ ๋ฐ์ดํฐ ์์ง์ ๋ฒ์ ์ ์ฌ์ ๋์์ด ๋ฉ๋๋ค.
- AI ํ์ต ์ ํ: ์ฌ๋ฅ๋ท์ AI ์์ฑ ์ปจํ ์ธ ๋ฅผ ํ AI ๋ชจ๋ธ ํ์ต์ ๋ฌด๋จ ์ฌ์ฉํ๋ ํ์๋ ๊ธ์ง๋๋ฉฐ, ์ด๋ ์ง์ ์ฌ์ฐ๊ถ ์นจํด๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
์ฌ๋ฅ๋ท์ ์ต์ AI ๊ธฐ์ ๊ณผ ๋ฒ๋ฅ ์ ๊ธฐ๋ฐํ์ฌ ์์ฌ์ ์ง์ ์ฌ์ฐ๊ถ์ ์ ๊ทน์ ์ผ๋ก ๋ณดํธํ๋ฉฐ,
๋ฌด๋จ ์ฌ์ฉ ๋ฐ ์นจํด ํ์์ ๋ํด ๋ฒ์ ๋์์ ํ ๊ถ๋ฆฌ๋ฅผ ๋ณด์ ํฉ๋๋ค.
ยฉ 2025 ์ฌ๋ฅ๋ท | All rights reserved.
๋๊ธ 0๊ฐ