๐ช๊ฐ์
ํด๋ก์ ๋ ๊ฐ๋ ์ ์๊ณ ๋ ์์์ง๋ง ๋ฉด์ ์ด๋ ๋ค๋ฅธ์ฌ๋์๊ฒ ์ค๋ช ํ ๋ ๋ง์ ๋ชปํ๋ ๊ฒฝํ์ด ๋ง์๊ธฐ ๋๋ฌธ์ ๋๋ง์ ์ธ์ด๋ก ๊ธ์ ์ฐ๊ณ ์ ๋ฆฌํด๋ณด๊ณ ์ถ์ด ์ด๋ฒ ํฌ์คํ ์ ํ๊ฒ ๋๋ค.
๐คํด๋ก์ ๋?
์์ ์ ๋ ์์ปฌ ์ค์ฝํ
๋ฅผ ๊ธฐ์ตํ๋ ๋ฐํ๋ ํจ์
์ด๋ค.
๐ค๋ ์์ปฌ ์ค์ฝํ๋?
์๋ฐ์คํฌ๋ฆฝํธ์์ง์ด ํจ์๋ฅผ ์ด๋์ ์ ์
ํ๋์ง์ ๋ฐ๋ผ ์์ ์ค์ฝํ๋ฅผ ๊ฒฐ์ ํ๋๊ฒ์ด๋ค.
1
2
3
4
5
6
7
8
9
10
11
12
13
// ๋ ์์ปฌ ์ค์ฝํ๋ฅผ ๋ฐ๋ฅธ๋ค๋ ์์ 1
const x = 1;
function foo() {
const x = 10;
bar();
}
function bar() {
console.log(x);
}
foo(); // 1
foo์์ 10์ผ๋ก ์ด๊ธฐํ๋ ๋ณ์ x๋ฅผ bar์์ ์ถ๋ ฅํ์ง ์์ ์ด์ ๋ค์๊ณผ ๊ฐ๋ค. bar๋ ์ ์ญ์ค์ฝํ์ ์ ์ธ
๋์ด์๊ธฐ ๋๋ฌธ์ x๋ฅผ ํธ์ถํ์ ๋ ์ ์ญ์ ์ ์ธ๋ x๊ฐ 1๋ก ์ด๊ธฐํ๋์ด ์๊ธฐ์ ํธ์ถํ๊ฒ ๋๋ ๊ฒ์ด๋ค. ์ฆ, barํจ์์ ๋ ์์ปฌ ์ค์ฝํ๋ ์ ์ญ์ด๋ค.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// ๋ ์์ปฌ ์ค์ฝํ๋ฅผ ๋ฐ๋ฅธ๋ค๋ ์์ 2
const x = 1;
function foo() {
const x = 10;
function bar() {
console.log(x);
}
bar();
}
foo(); // 10
1๋ฒ ์์ ์ ๋น์ทํ์ง๋ง ์ฐจ์ด์ ์ barํจ์๋ฅผ ์ ์ญ์ด ์๋ foo๋ด๋ถ์์ ์ ์ธ
ํ ๊ฒ์ด๋ค. barํจ์๋ ์์ ์ ์์ ์ค์ฝํ๊ฐ foo์ด๊ธฐ ๋๋ฌธ์ ์์ ์ ๋ ์์ปฌํ๊ฒฝ์ x๊ฐ์ด 10์ผ๋ก ์ ์ธ๋์๊ธฐ ๋๋ฌธ์ 1๋ฒ ์์ ์ ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ธ๋ค. ์ฆ, barํจ์์ ๋ ์์ปฌ ์ค์ฝํ๋ fooํจ์์ด๋ค.
๐คํด๋ก์ ์ ๋ ์์ปฌ ์ค์ฝํ๋ ์๋ฉธํ๋๊ฐ?
์์ ์ ๋ ์์ปฌ ์ค์ฝํ์ ์คํ์ปจํ
์คํธ๋ ์คํ์ปจํ
์คํธ์์ ์ ๊ฑฐ๊ฐ ๋์ง๋ง, ํด๋ก์ ์ ๊ธฐ๋ณธ ๋์์๋ฆฌ์ธ ๋ ์์ปฌ์ค์ฝํ๋ฅผ ์ฐธ์กฐ
ํ๊ธฐ ๋๋ฌธ์ ๋ ์์ปฌํ๊ฒฝ์ ์ฌ๋ผ์ง์ง ์๋๋ค. ๋ ์์ปฌ ํ๊ฒฝ๊น์ง ์ฌ๋ผ์ง๋ ค๋ฉด ๋ ์ด์ ํด๋ก์ ๋ฅผ ์ฌ์ฉํ์ง ์์ ๊ฐ๋น์ง์ปฌ๋ ํฐ์ ๋ค์ด๊ฐ ๋ฉ๋ชจ๋ฆฌ ํด์ ๊ฐ ์ด๋ค์ ธ์ผ ๋๋ค.
๐ซํด๋ก์ ๊ฐ ์๋ ๊ฒฝ์ฐ
- ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์ ์ต์ ํ๋ฅผ ํตํด ์์ ์ค์ฝํ์
์ด๋ค ์๋ณ์๋ ๊ธฐ์ตํ์ง ์๋ค๋ฉด
๋ฉ๋ชจ๋ฆฌ์์ ํด์ ํจ ์ค์ฒฉํจ์๋ก ๋ฐํํ์ง ์๋๋ค๋ฉด
์ธ๋ถํจ์๋ณด๋ค ์๋ช ์ฃผ๊ธฐ๊ฐ ์งง๊ธฐ ๋๋ฌธ์ ์๋
โ ์ค์ฒฉํจ์๋ก ๋ฐํํ๊ณ ์์ ์ค์ฝํ์ ๋ชจ๋ ๋ณ์๊ฐ ์๋ ๋ถ๋ถ๋ง ๊ธฐ์ตํ๋ค๋ฉด?
๋ธ๋ผ์ฐ์ ์์ง ์ต์ ํ๋ก ์ธํด ์์ ๋ ์์ปฌํ๊ฒฝ์ ์ฐธ์กฐ๋์ด ์๋ ๋ณ์๋ง ๋ฐ๊ธฐ ๋๋ฌธ์ ์์ ๋ ์์ปฌํ๊ฒฝ์ ์ฐธ์กฐ๋์ง ์์ ๋ณ์๋ ๊ธฐ์ตํ์ง ์๋๋ค.
๐จํด๋ก์ ์ฌ์ฉ์ด์
์ํ๊ฐ ์๋์น ์๊ฒ ๋ณ๊ฒฝ๋์ง ์๋๋ก ์๋ํ๊ณ ํน์ ํจ์์๊ฒ๋ฉ๋ ์ํ ๋ณ๊ฒฝ์ ํ์ฉํ์ฌ ์ํ๋ฅผ ์์ ํ๊ฒ ๋ณ๊ฒฝํ๊ณ ์ ์งํ๊ธฐ ์ํด ์ฌ์ฉ
๐๋๋์
ํด๋ก์ ๋ผ๋ ๊ฐ๋ ์ ๊น๊ฒ ํ ์๋ก ์ด๋ ค์ด ๊ฑฐ ๊ฐ๋ค. ๊ธฐ์กด ํจ์ ์ ์ธ์์ผ๋ก๋ ์ดํด๊ฐ ๋์ง๋ง newํค์๋๋ฅผ ์ถ๊ฐํ๋ ๋ฌธ๋ฒ์ด๋ ์ ์ธ์์ด ์๋ ๋ฌธ๋ฒ๋ค์ ๋ํด์๋ ์์ง ์ดํดํ๊ธฐ๋ ์ด๋ ค์ด ๊ฑฐ ๊ฐ๋ค. ๋ฅ๋ค์ด๋ธ์์ ํด๋ก์ ์ ๋ํด ๋ง์ด ์ฝ์ด๋ณด๊ณ ์ด๋์ ํ์ฉํ๋์ง ๊ณ ๋ฏผํด ๋ณด๋ ํ์ต์ด ํ์ํ ๊ฑฐ ๊ฐ๋ค.
ํด๋น๊ธ์ ์์ผ๋ก ํ์ตํ๋ฉด์ ์ ๋ฐ์ดํธ ๋ ์์ !
์ฐธ์กฐ
๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ Deep Dive