๐ ์๋ฐ์คํฌ๋ฆฝํธ ๋๋ฒ๊น : ์ฝ์๊ณผ ๋ธ๋ ์ดํฌํฌ์ธํธ ๋ง์คํฐํ๊ธฐ ๐

์๋ ํ์ธ์, ์ฝ๋ฉ ๊ฟ๋๋ฌด๋ค! ์ค๋์ ์๋ฐ์คํฌ๋ฆฝํธ ๋๋ฒ๊น ์ ์ธ๊ณ๋ก ์ฌ๋ฌ๋ถ์ ์ด๋ํฉ๋๋ค. ๐ "์ด๋จธ, ๋๋ฒ๊น ์ด๋ผ๋... ๊ทธ๊ฒ ๋ญ์ผ?" ํ๊ณ ๊ณ ๊ฐ๋ฅผ ๊ฐธ์ฐ๋ฑ๊ฑฐ๋ฆฌ๋ ๋ถ๋ค๋ ๊ณ์ค ํ ๋ฐ์. ๊ฑฑ์ ๋ง์ธ์! ์ฐ๋ฆฌ ํจ๊ป ์ฐจ๊ทผ์ฐจ๊ทผ ์์๊ฐ ๋ณด์์. ์, ์ด์ ์์ํด๋ณผ๊น์? ๐
๐ก Tip: ๋๋ฒ๊น ์ ํ๋ก๊ทธ๋จ์ ๋ฒ๊ทธ(์ค๋ฅ)๋ฅผ ์ฐพ์ ์์ ํ๋ ๊ณผ์ ์ด์์. ๋ง์น ํ์ ์ด ๋์ด ์ฝ๋ ์ ๋ฒ์ธ์ ์ฐพ์๋ด๋ ๊ฑฐ์ฃ ! ์ฌ๋ฐ์ง ์๋์?
1. ์ฝ์: ๊ฐ๋ฐ์์ ๋น๋ฐ ๋ฌด๊ธฐ ๐ต๏ธโโ๏ธ
์, ์ฌ๋ฌ๋ถ! ์ฝ์์ด๋ผ๊ณ ๋ค์ด๋ณด์ จ๋์? "์, ๊ฒ์๊ธฐ ๋งํ๋ ๊ฑฐ ์๋?" ๋ผ๊ณ ์๊ฐํ์ ๋ถ๋ค, ์์ฝ๊ฒ๋ ์ค๋ ์ฐ๋ฆฌ๊ฐ ์ด์ผ๊ธฐํ ์ฝ์์ ์กฐ๊ธ ๋ค๋ฅธ ์น๊ตฌ์์. ๋ฐ๋ก ๋ธ๋ผ์ฐ์ ์ ๊ฐ๋ฐ์ ๋๊ตฌ์ ์๋ ์ฝ์์ ๋งํ๋ ๊ฑฐ์ฃ !
์ฝ์์ ๊ฐ๋ฐ์๋ค์ ๋น๋ฐ ๋ฌด๊ธฐ๋ผ๊ณ ํ ์ ์์ด์. ์ ๊ทธ๋ด๊น์? ๋ฐ๋ก ์ฝ๋์ ์คํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋ก๋ฐ๋ก ํ์ธํ ์ ์๊ธฐ ๋๋ฌธ์ด์ฃ . ๋ง์น ์๋ฆฌ์ฌ๊ฐ ์์์ ๋ง์ ๋ณด๋ ๊ฒ์ฒ๋ผ, ๊ฐ๋ฐ์๋ ์ฝ์์ ํตํด ์ฝ๋์ '๋ง'์ ๋ด ๋๋ค. ๐ณ
1.1 ์ฝ์ ์ด์ด๋ณด๊ธฐ
์, ๊ทธ๋ผ ์ด๋ป๊ฒ ์ด ์ ๋นํ ์ฝ์์ ์ด ์ ์์๊น์?
- Chrome์ด๋ Firefox ๊ฐ์ ๋ธ๋ผ์ฐ์ ์์ F12 ํค๋ฅผ ๋๋ฅด์ธ์.
- ๊ฐ๋ฐ์ ๋๊ตฌ๊ฐ ๋! ํ๊ณ ๋ํ๋ ๊ฑฐ์์.
- ๊ฑฐ๊ธฐ์ 'Console' ํญ์ ํด๋ฆญํ๋ฉด... ์ง์! ๐ ์ฝ์์ด ๋ํ๋ฉ๋๋ค.
์์ฐ! ์ด์ ์ฌ๋ฌ๋ถ๋ ๊ฐ๋ฐ์์ ๋น๋ฐ ๋ฌด๊ธฐ๋ฅผ ์์ ๋ฃ์์ด์. ์ด๋์? ๋ญ๊ฐ ํด์ปค๊ฐ ๋ ๊ฒ ๊ฐ์ ๊ธฐ๋ถ์ด ๋ค์ง ์๋์? ใ ใ ใ
1.2 ์ฝ์๋ก ๋์๋ณด๊ธฐ
์, ์ด์ ์ฝ์๋ก ์ฌ๋ฏธ์๋ ๊ฒ๋ค์ ํด๋ณผ๊น์?
console.log("์๋
ํ์ธ์, ์๋ฐ์คํฌ๋ฆฝํธ!");
console.log(2 + 2);
console.log(["์ฌ๊ณผ", "๋ฐ๋๋", "์ค๋ ์ง"]);
์ด๋ ๊ฒ ์ ๋ ฅํ๊ณ ์ํฐ๋ฅผ ๋๋ฅด๋ฉด ์ด๋ป๊ฒ ๋ ๊น์?
์ง์! ์ฝ์์ ๊ฒฐ๊ณผ๊ฐ ๋ํ๋ฌ์ฃ ? ์ด๊ฒ ๋ฐ๋ก console.log()
์ ๋ง๋ฒ์ด์์. ์ฐ๋ฆฌ๊ฐ ๋ฌด์์ ์
๋ ฅํ๋ ์ฝ์์ ๋ณด์ฌ์ฃผ๋ ๊ฑฐ์ฃ .
"์ด? ๊ทผ๋ฐ ์ด๊ฒ ๋๋ฒ๊น ์ด๋ ๋ฌด์จ ์๊ด์ด์ผ?" ๋ผ๊ณ ์๊ฐํ์ค ์ ์์ด์. ์ ๊น๋ง์! ์ด์ ๋ถํฐ๊ฐ ์ง์ง ์์์ด์์!
1.3 ์ฝ์๋ก ๋๋ฒ๊น ํ๊ธฐ
์, ์ด์ ๋ณธ๊ฒฉ์ ์ผ๋ก ๋๋ฒ๊น ์ ํด๋ณผ๊น์? ๋จผ์ ๊ฐ๋จํ ํจ์๋ฅผ ํ๋ ๋ง๋ค์ด๋ณผ๊ฒ์.
function addNumbers(a, b) {
let result = a + b;
console.log("๊ฒฐ๊ณผ๋:", result);
return result;
}
addNumbers(5, 3);
์ด ์ฝ๋๋ฅผ ์ฝ์์ ์ ๋ ฅํ๊ณ ์คํํด๋ณด์ธ์. ์ด๋ค ๊ฒฐ๊ณผ๊ฐ ๋์๋์?
"๊ฒฐ๊ณผ๋: 8"์ด ์ฝ์์ ์ฐํ์ ๊ฑฐ์์. ์ด๋ ๊ฒ console.log()
๋ฅผ ์ฌ์ฉํ๋ฉด ํจ์ ๋ด๋ถ์์ ์ด๋ค ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ๋ณผ ์ ์์ด์.
์ด๊ฒ ๋ฐ๋ก ๋๋ฒ๊น ์ ์ฒซ ๊ฑธ์์ด์์! ์ฐ๋ฆฌ๋ ๋ฐฉ๊ธ ํจ์ ๋ด๋ถ์ ์ํ๋ฅผ ์ฝ์์ ์ถ๋ ฅํด์ ํ์ธํ๊ฑฐ๋ ์. ๐
๐ Fun Fact: console.log()
๋ ๊ฐ๋ฐ์๋ค ์ฌ์ด์์ ๋๋ฌด ์์ฃผ ์ฌ์ฉ๋ผ์ "์ฝ์๋ก๊ทธ ์ค๋
"์ด๋ผ๋ ๋ง๊น์ง ์๋์. ใ
ใ
ใ
์ฌ๋ฌ๋ถ๋ ๊ณง ์ด ์ค๋
์ ๋น ์ง์ง๋ ๋ชฐ๋ผ์!
1.4 ์ฝ์์ ๋ค์ํ ๊ธฐ๋ฅ๋ค
console.log()
๋ง ์๋ ๊ฒ ์๋์์. ์ฝ์์๋ ๋ ๋ง์ ์น๊ตฌ๋ค์ด ์๋ต๋๋ค!
console.warn()
: ๊ฒฝ๊ณ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํด์. ๋ ธ๋์์ผ๋ก ํ์๋์ฃ .console.error()
: ์๋ฌ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํด์. ๋นจ๊ฐ์์ผ๋ก ํ์๋ผ์.console.table()
: ๋ฐ์ดํฐ๋ฅผ ํ ์ด๋ธ ํ์์ผ๋ก ๋ณด์ฌ์ค์.
ํ๋ฒ ์ด๊ฒ๋ค์ ์ฌ์ฉํด๋ณผ๊น์?
console.warn("์ด๊ฑด ๊ฒฝ๊ณ ์์!");
console.error("์ด๋ฐ, ์๋ฌ๊ฐ ๋ฌ์ด์!");
console.table(["์ฌ๊ณผ", "๋ฐ๋๋", "์ค๋ ์ง"]);
์! ์ฝ์์ด ์ปฌ๋ฌํํด์ก์ฃ ? ์ด๋ ๊ฒ ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ์ ๋ณด๋ฅผ ์ถ๋ ฅํ ์ ์์ด์. ๋ง์น ํ๋ คํ ๋ถ๊ฝ๋์ด ๊ฐ์์! ๐
2. ๋ธ๋ ์ดํฌํฌ์ธํธ: ์ฝ๋์ ํ์๋จธ์ โฐ
์, ์ด์ ์ฐ๋ฆฌ์ ๋ ๋ฒ์งธ ๋ฌด๊ธฐ, ๋ธ๋ ์ดํฌํฌ์ธํธ์ ๋ํด ์์๋ณผ ์๊ฐ์ด์์! "๋ธ๋ ์ดํฌ... ๋ญ๋ผ๊ณ ์?" ๋ค, ๋ง์์. ๋ธ๋ ์ดํฌํฌ์ธํธ! ์ด๋ฆ๋ถํฐ ๋ญ๊ฐ ๋๋จํด ๋ณด์ด์ฃ ?
๋ธ๋ ์ดํฌํฌ์ธํธ๋ ๋ง ๊ทธ๋๋ก ์ฝ๋์ ์คํ์ '๋ฉ์ถ๋' ์ง์ ์ด์์. ๋ง์น ์ํ์์ ์ผ์์ ์ง ๋ฒํผ์ ๋๋ฅด๋ ๊ฒ์ฒ๋ผ์!
2.1 ๋ธ๋ ์ดํฌํฌ์ธํธ ์ค์ ํ๊ธฐ
๋ธ๋ ์ดํฌํฌ์ธํธ๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ์์ฃผ ๊ฐ๋จํด์:
- ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ฝ๋๋ค (๊ธฐ์ต๋์ฃ ? F12 ํค!)
- 'Sources' ํญ์ ํด๋ฆญํด์.
- ๋๋ฒ๊น ํ๊ณ ์ถ์ JavaScript ํ์ผ์ ์ฐพ์์.
- ์ฝ๋ ๋ผ์ธ ๋ฒํธ๋ฅผ ํด๋ฆญํ๋ฉด... ์ง์! ํ๋์ ํ์ดํ๊ฐ ์๊ฒจ์. ์ด๊ฒ ๋ฐ๋ก ๋ธ๋ ์ดํฌํฌ์ธํธ์์!
"์ด? ๊ทผ๋ฐ ๋ด ์ฝ๋๋ ์ด๋ ์๋ ๊ฑฐ์ผ?" ํ๊ณ ๋นํฉํ์ ๋ถ๋ค! ๊ฑฑ์ ๋ง์ธ์. ์ฐ๋ฆฌ๊ฐ ์ง์ ์ฝ๋๋ฅผ ์์ฑํด๋ณผ๊ฒ์.
2.2 ๋ธ๋ ์ดํฌํฌ์ธํธ ์ค์ต
์, ์ด์ ๊ฐ๋จํ ํจ์๋ฅผ ๋ง๋ค์ด์ ๋ธ๋ ์ดํฌํฌ์ธํธ๋ฅผ ์ค์ ํด๋ณผ๊น์?
function calculateSum(a, b) {
let sum = a + b;
let double = sum * 2;
let square = double * double;
return square;
}
let result = calculateSum(3, 4);
console.log(result);
์ด ์ฝ๋๋ฅผ ์ฝ์์ ์
๋ ฅํ๊ณ , 'Sources' ํญ์์ ์ฐพ์๋ณด์ธ์. ๊ทธ๋ฆฌ๊ณ let sum = a + b;
๋ผ์ธ์ ๋ธ๋ ์ดํฌํฌ์ธํธ๋ฅผ ์ฐ์ด๋ณด์ธ์.
์ด์ ์ฝ์์์ calculateSum(3, 4);
๋ฅผ ์คํํด๋ณด์ธ์. ์ด๋ค ์ผ์ด ์ผ์ด๋ฌ๋์?
์์ฐ! ์ฝ๋์ ์คํ์ด ๋ฉ์ท์ด์! ๋ง์น ํ์๋จธ์ ์ ํ๊ณ ์ฝ๋์ ํ ์๊ฐ์ ๋ฉ์ถฐ์ ๊ฒ ๊ฐ์ง ์๋์?
2.3 ๋ธ๋ ์ดํฌํฌ์ธํธ ํ์ฉํ๊ธฐ
๋ธ๋ ์ดํฌํฌ์ธํธ์์ ๋ฉ์ท์ ๋, ์ฐ๋ฆฌ๋ ์ ๋ง ๋ง์ ๊ฒ์ ํ ์ ์์ด์:
- ๋ณ์์ ํ์ฌ ๊ฐ์ ํ์ธํ ์ ์์ด์.
- ์ฝ๋๋ฅผ ํ ์ค์ฉ ์คํํด๋ณผ ์ ์์ด์ (Step Over ๋ฒํผ์ ์ฌ์ฉํด์์).
- ํจ์ ๋ด๋ถ๋ก ๋ค์ด๊ฐ๋ณผ ์๋ ์์ด์ (Step Into ๋ฒํผ์ผ๋ก์).
"์, ์ด๊ฑฐ ์์ ๋งคํธ๋ฆญ์ค ๊ฐ์๋ฐ?" ๋ง์์! ์ฐ๋ฆฌ๋ ์ง๊ธ ์ฝ๋์ ๋งคํธ๋ฆญ์ค ์์ผ๋ก ๋ค์ด์จ ๊ฑฐ์์. ๐
๐ก Pro Tip: ๋ธ๋ ์ดํฌํฌ์ธํธ๋ฅผ ์ ํ์ฉํ๋ฉด, ๋ณต์กํ ๋ฒ๊ทธ๋ ์ฝ๊ฒ ์ฐพ์ ์ ์์ด์. ๋ง์น ํ์ ์ด ๋ฒ์ธ์ ๋์ ์ ๋ฐ๋ผ๊ฐ๋ฏ์ด, ์ฝ๋์ ์คํ ํ๋ฆ์ ๋ฐ๋ผ๊ฐ ์ ์๊ฑฐ๋ ์!
3. ์ฝ์๊ณผ ๋ธ๋ ์ดํฌํฌ์ธํธ์ ํ์์ ์ฝค๋น ํ๋ ์ด ๐ค
์, ์ด์ ์ฐ๋ฆฌ์ ๋ ์ฃผ์ธ๊ณต์ธ ์ฝ์๊ณผ ๋ธ๋ ์ดํฌํฌ์ธํธ๋ฅผ ํจ๊ป ์ฌ์ฉํด๋ณผ ์๊ฐ์ด์์! ์ด ๋์ ํฉ์น๋ฉด ์ ๋ง ํ์์ ์ธ ๋๋ฒ๊น ๊ฒฝํ์ ํ ์ ์๋ต๋๋ค.
3.1 ์ฝ์๊ณผ ๋ธ๋ ์ดํฌํฌ์ธํธ ํจ๊ป ์ฐ๊ธฐ
๋ค์๊ณผ ๊ฐ์ ์ฝ๋๊ฐ ์๋ค๊ณ ํด๋ณผ๊น์?
function mysteriousCalculation(x, y) {
let a = x * 2;
let b = y + 5;
let c = a + b;
let d = c * c;
return d;
}
let result = mysteriousCalculation(10, 20);
console.log(result);
์ด ํจ์๊ฐ ์ด๋ป๊ฒ ๋์ํ๋์ง ์ ํํ ์๊ณ ์ถ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น์? ๋ฐ๋ก ์ฝ์๊ณผ ๋ธ๋ ์ดํฌํฌ์ธํธ๋ฅผ ํจ๊ป ์ฌ์ฉํ๋ฉด ๋ผ์!
- ๋จผ์ ,
let a = x * 2;
๋ผ์ธ์ ๋ธ๋ ์ดํฌํฌ์ธํธ๋ฅผ ์ฐ์ด๋ณด์ธ์. - ๊ทธ๋ฆฌ๊ณ ํจ์ ๋ด๋ถ์ ๊ฐ ๋จ๊ณ๋ง๋ค
console.log()
๋ฅผ ์ถ๊ฐํด๋ณผ๊ฒ์.
function mysteriousCalculation(x, y) {
let a = x * 2;
console.log("a์ ๊ฐ:", a);
let b = y + 5;
console.log("b์ ๊ฐ:", b);
let c = a + b;
console.log("c์ ๊ฐ:", c);
let d = c * c;
console.log("d์ ๊ฐ:", d);
return d;
}
let result = mysteriousCalculation(10, 20);
console.log("์ต์ข
๊ฒฐ๊ณผ:", result);
์ด์ ์ด ํจ์๋ฅผ ์คํํด๋ณด์ธ์. ๋ธ๋ ์ดํฌํฌ์ธํธ์์ ๋ฉ์ถ๋ฉด, Step Over ๋ฒํผ์ ์ฌ์ฉํด ํ ์ค์ฉ ์คํํด๋ณด์ธ์.
์! ๊ฐ ๋จ๊ณ๋ง๋ค ์ฝ์์ ๊ฐ์ด ์ถ๋ ฅ๋๋ ๊ฑธ ๋ณผ ์ ์์ด์. ์ด๋ ๊ฒ ํ๋ฉด ํจ์์ ๋์์ ์๋ฒฝํ๊ฒ ์ดํดํ ์ ์๋ต๋๋ค.
3.2 ์ค์ ๋๋ฒ๊น : ๋ฒ๊ทธ ์ฌ๋ฅ ๋์์ ! ๐๐
์, ์ด์ ์ฐ๋ฆฌ๊ฐ ๋ฐฐ์ด ๊ฑธ ํ์ฉํด์ ์ง์ง ๋ฒ๊ทธ๋ฅผ ์ก์๋ณผ๊น์? ๋ค์๊ณผ ๊ฐ์ ๋ฒ๊ทธ๊ฐ ์๋ ์ฝ๋๊ฐ ์๋ค๊ณ ํด๋ด์.
function calculateDiscount(price, discountRate) {
let discount = price * (discountRate / 100);
let discountedPrice = price - discount;
return discountedPrice;
}
let originalPrice = 1000;
let discountRate = 20;
let finalPrice = calculateDiscount(originalPrice, discountRate);
console.log("ํ ์ธ๋ ๊ฐ๊ฒฉ:", finalPrice);
// ์ด๋ผ? ์ ํ ์ธ๋ ๊ฐ๊ฒฉ์ด ์ด์ํ์ง?
์ด ์ฝ๋๋ฅผ ์คํํ๋ฉด ๋ญ๊ฐ ์ด์ํ ๊ฒฐ๊ณผ๊ฐ ๋์์. ์ฐ๋ฆฌ์ ํ์ ๋ณธ๋ฅ์ ๋ฐํํด์ ์ด ๋ฒ๊ทธ๋ฅผ ์ก์๋ณผ๊น์?
let discount = price * (discountRate / 100);
๋ผ์ธ์ ๋ธ๋ ์ดํฌํฌ์ธํธ๋ฅผ ์ฐ์ด์.- ์ฝ๋๋ฅผ ์คํํ๊ณ , Step Over ๋ฒํผ์ผ๋ก ํ ์ค์ฉ ์งํํด๋ณด์ธ์.
- ๊ฐ ๋ณ์์ ๊ฐ์ ์ฃผ์ ๊น๊ฒ ์ดํด๋ณด์ธ์.
์ด๋ค๊ฐ์? ๋ฒ๊ทธ๋ฅผ ์ฐพ์๋์?
์ํ! discountRate
๋ฅผ 100์ผ๋ก ๋๋๋ ๋ถ๋ถ์ด ๋ฌธ์ ์์ด์. 20%๋ฅผ ๊ณ์ฐํ๋ ค๋ฉด 0.2๋ฅผ ๊ณฑํด์ผ ํ๋๋ฐ, ์ฐ๋ฆฌ ์ฝ๋๋ 0.2 ๋์ 20์ ๊ณฑํ๊ณ ์์๋ ๊ฑฐ์ฃ !
์, ์ด์ ์ฝ๋๋ฅผ ์์ ํด๋ณผ๊น์?
function calculateDiscount(price, discountRate) {
let discount = price * (discountRate / 100); // ์ฌ๊ธฐ๊ฐ ์์ ๋์์ด์!
let discountedPrice = price - discount;
return discountedPrice;
}
let originalPrice = 1000;
let discountRate = 20;
let finalPrice = calculateDiscount(originalPrice, discountRate);
console.log("ํ ์ธ๋ ๊ฐ๊ฒฉ:", finalPrice);
์ด์ ๋ค์ ์คํํด๋ณด์ธ์. ์! ์ ๋๋ก ๋ ๊ฒฐ๊ณผ๊ฐ ๋์์ฃ ? ์ฐ๋ฆฌ๋ ๋ฐฉ๊ธ ์ง์ง ๋ฒ๊ทธ๋ฅผ ์ก์์ด์! ๐
๐ Achievement Unlocked: ์ถํํด์! ์ฌ๋ฌ๋ถ์ ์ด์ ๊ณต์ '๋ฒ๊ทธ ํํฐ'๊ฐ ๋์์ด์. ์ด ํน๋ณํ ๊ธฐ์ ์ ๊ฐ์ง๊ณ ์์ผ๋ฉด, ์ด๋ค ์ฝ๋์ ๋ฌธ์ ๋ ํด๊ฒฐํ ์ ์์ ๊ฑฐ์์!
4. ๊ณ ๊ธ ๋๋ฒ๊น ๊ธฐ์ : ํ๋ก์ ์ธ๊ณ๋ก! ๐
์, ์ด์ ์ฐ๋ฆฌ๋ ๊ธฐ๋ณธ์ ์ธ ๋๋ฒ๊น ๊ธฐ์ ์ ๋ง์คํฐํ์ด์. ํ์ง๋ง ์์ง ๋ ๊น์ ์ธ๊ณ๊ฐ ๋จ์์๋ต๋๋ค! ๊ณ ๊ธ ๋๋ฒ๊น ๊ธฐ์ ๋ก ํ ๋จ๊ณ ๋ ๋์๊ฐ๋ณผ๊น์?
4.1 ์กฐ๊ฑด๋ถ ๋ธ๋ ์ดํฌํฌ์ธํธ
"์ด? ์กฐ๊ฑด๋ถ ๋ธ๋ ์ดํฌํฌ์ธํธ๋ผ๊ณ ์?" ๋ค, ๋ง์์! ํน์ ์กฐ๊ฑด์์๋ง ์คํ์ ๋ฉ์ถ๊ฒ ํ๋ ๋ธ๋ ์ดํฌํฌ์ธํธ์์. ์ด๊ฑธ ์ฌ์ฉํ๋ฉด ์ ๋ง ํจ์จ์ ์ผ๋ก ๋๋ฒ๊น ํ ์ ์๋ต๋๋ค.
์๋ฅผ ๋ค์ด, ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๊ฐ ์๋ค๊ณ ํด๋ณผ๊ฒ์:
function processArray(arr) {
for(let i = 0; i < arr.length; i++) {
let result = arr[i] * 2;
console.log(result);
}
}
let myArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
processArray(myArray);
๋ง์ฝ result
๊ฐ 10๋ณด๋ค ํฐ ๊ฒฝ์ฐ์๋ง ๋ฉ์ถ๊ณ ์ถ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น์? ๋ฐ๋ก ์กฐ๊ฑด๋ถ ๋ธ๋ ์ดํฌํฌ์ธํธ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ผ์!
let result = arr[i] * 2;
๋ผ์ธ์ ๋ธ๋ ์ดํฌํฌ์ธํธ๋ฅผ ์ค์ ํด์.- ๋ธ๋ ์ดํฌํฌ์ธํธ๋ฅผ ์ฐํด๋ฆญํ๊ณ 'Edit breakpoint'๋ฅผ ์ ํํด์.
- ์กฐ๊ฑด์ผ๋ก
result > 10
์ ์ ๋ ฅํด์.
์ด์ ์ฝ๋๋ฅผ ์คํํด๋ณด์ธ์. ์! result
๊ฐ 10๋ณด๋ค ํฐ ๊ฒฝ์ฐ์๋ง ๋ฉ์ถ๋ ๊ฑธ ๋ณผ ์ ์์ด์.
์ด๋ ๊ฒ ํ๋ฉด ์ฐ๋ฆฌ๊ฐ ์ํ๋ ํน์ ์ํฉ์์๋ง ์ฝ๋๋ฅผ ๊ฒ์ฌํ ์ ์์ด์. ์ ๋ง ํธ๋ฆฌํ์ฃ ?
4.2 Watch ํํ์
Watch ํํ์์ ๋ ๋ค๋ฅธ ๊ฐ๋ ฅํ ๋๊ตฌ์์. ์ฝ๋ ์คํ ์ค์ ํน์ ํํ์์ ๊ฐ์ ๊ณ์ ์ง์ผ๋ณผ ์ ์๊ฒ ํด์ค์.
์๋ฅผ ๋ค์ด, ์์ processArray
ํจ์์์ i
์ result
์ ๊ฐ์ ๊ณ์ ๊ด์ฐฐํ๊ณ ์ถ๋ค๋ฉด:
- ๊ฐ๋ฐ์ ๋๊ตฌ์ 'Watch' ์น์ ์ ์ฐพ์์.
- '+'๋ฒํผ์ ํด๋ฆญํ๊ณ 'i'๋ฅผ ์ ๋ ฅํด์.
- ๋ค์ '+'๋ฒํผ์ ํด๋ฆญํ๊ณ 'result'๋ฅผ ์ ๋ ฅํด์.
์ด์ ์ฝ๋๋ฅผ ์คํํ๋ฉด์ ๋ธ๋ ์ดํฌํฌ์ธํธ์ ๊ฑธ๋ฆด ๋๋ง๋ค ์ด ๊ฐ๋ค์ด ์ด๋ป๊ฒ ๋ณํ๋์ง ๋ณผ ์ ์์ด์!
๐งโโ๏ธ Wizard Tip: Watch ํํ์์ ๋จ์ํ ๋ณ์๋ฟ๋ง ์๋๋ผ ๋ณต์กํ ํํ์๋ ๊ด์ฐฐํ ์ ์์ด์. ์๋ฅผ ๋ค์ด, i * result
๊ฐ์ ๊ฒ๋ ๊ฐ๋ฅํ๋ต๋๋ค!
4.3 Call Stack ์ดํดํ๊ธฐ
Call Stack์ ํ์ฌ ์คํ ์ค์ธ ํจ์๋ค์ ์์๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋๊ตฌ์์. ๋ง์น ํจ์๋ค์ ์กฑ๋ณด ๊ฐ์ ๊ฑฐ์ฃ !
๋ค์๊ณผ ๊ฐ์ ์ฝ๋๋ฅผ ๋ณผ๊น์?
function grandparent() {
console.log("๋๋ ํ ์๋ฒ์ง!");
parent();
}
function parent() {
console.log("๋๋ ๋ถ๋ชจ!");
child();
}
function child() {
console.log("๋๋ ์์!");
console.log("์ฌ๊ธฐ์ ๋ญ๊ฐ ์ด์ํ๋ฐ...");
}
grandparent();
child
ํจ์ ์์ ๋ธ๋ ์ดํฌํฌ์ธํธ๋ฅผ ์ฐ๊ณ ์คํํด๋ณด์ธ์. ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฐ์ ๋๊ตฌ์ 'Call Stack' ์น์
์ ๋ณด์ธ์.
์! ํจ์๋ค์ด ํธ์ถ๋ ์์๋๋ก ์์ฌ์๋ ๊ฑธ ๋ณผ ์ ์์ด์. ์ด๋ ๊ฒ ํ๋ฉด "์ด๋ค ๊ฒฝ๋ก๋ก ์ด ํจ์๊ฐ ํธ์ถ๋์๋์ง" ํ๋์ ์ ์ ์๋ต๋๋ค.
4.4 ๋น๋๊ธฐ ์ฝ๋ ๋๋ฒ๊น
์๋ฐ์คํฌ๋ฆฝํธ์์ ๋น๋๊ธฐ ์ฝ๋๋ฅผ ๋๋ฒ๊น ํ๋ ๊ฒ์ ์กฐ๊ธ ๊น๋ค๋ก์ธ ์ ์์ด์. ํ์ง๋ง ๊ฑฑ์ ๋ง์ธ์! ์ฐ๋ฆฌ์๊ฒ ๋น๋ฒ์ด ์๋ต๋๋ค.
๋ค์๊ณผ ๊ฐ์ ๋น๋๊ธฐ ์ฝ๋๊ฐ ์๋ค๊ณ ํด๋ณผ๊ฒ์:
function fetchData() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("๋ฐ์ดํฐ ๋์ฐฉ!");
}, 2000);
});
}
async function processData() {
console.log("๋ฐ์ดํฐ ์์ฒญ ์์...");
let data = await fetchData();
console.log("๋ฐ์ ๋ฐ์ดํฐ:", data);
}
processData();
์ด๋ฐ ๋น๋๊ธฐ ์ฝ๋๋ฅผ ๋๋ฒ๊น ํ ๋๋ 'Async' ์คํ ํธ๋ ์ด์ค๋ฅผ ํ์ฉํ๋ฉด ์ข์์.
- ๊ฐ๋ฐ์ ๋๊ตฌ์ 'Sources' ํญ์์ 'Async' ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํด์.
let data = await fetchData();
๋ผ์ธ์ ๋ธ๋ ์ดํฌํฌ์ธํธ๋ฅผ ์ฐ์ด์.- ์ฝ๋๋ฅผ ์คํํด๋ณด์ธ์.
๋ธ๋ ์ดํฌํฌ์ธํธ์ ๊ฑธ๋ ธ์ ๋ Call Stack์ ๋ณด๋ฉด, ๋น๋๊ธฐ ์์ ์ ์ ์ฒด ํ๋ฆ์ ๋ณผ ์ ์์ด์. ์ ๋ง ์ ๊ธฐํ์ฃ ?
๐ญ Drama Time: ๋น๋๊ธฐ ์ฝ๋๋ ๋ง์น ์ฐ๊ทน ๋ฌด๋ ๊ฐ์์. ์ฃผ์ธ๊ณต(๋ฉ์ธ ์ค๋ ๋)์ด ๋์ฌ๋ฅผ ํ๋ ๋์, ๋ค์์๋ ๋ค๋ฅธ ๋ฐฐ์ฐ๋ค(๋น๋๊ธฐ ์์ ๋ค)์ด ์ค๋น๋ฅผ ํ๊ณ ์์ฃ . 'Async' ์คํ ํธ๋ ์ด์ค๋ ์ด ๋ชจ๋ ๋ฐฐ์ฐ๋ค์ ๋์์ ํ๋์ ๋ณผ ์ ์๊ฒ ํด์ฃผ๋ ๊ฑฐ์์!
5. ๋๋ฒ๊น ๋ฒ ์คํธ ํ๋ํฐ์ค: ํ๋ก์ฒ๋ผ ๋๋ฒ๊น ํ๊ธฐ ๐
์, ์ด์ ์ฐ๋ฆฌ๋ ๋๋ฒ๊น ์ ๋ค์ํ ๋๊ตฌ๋ค์ ๋ฐฐ์ ์ด์. ํ์ง๋ง ์ง์ ํ ํ๋ก๊ฐ ๋๋ ค๋ฉด ์ด ๋๊ตฌ๋ค์ ์ด๋ป๊ฒ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉํด์ผ ํ๋์ง ์์์ผ ํด์. ๊ทธ๋์ ์ค๋นํ์ต๋๋ค. ๋๋ฒ๊น ๋ฒ ์คํธ ํ๋ํฐ์ค!
5.1 ๋ฌธ์ ๋ฅผ ์ฌํํ์ธ์
๋ฒ๊ทธ๋ฅผ ์ก์ผ๋ ค๋ฉด ๋จผ์ ๊ทธ ๋ฒ๊ทธ๋ฅผ ๋ค์ ๋ง๋ค ์ ์์ด์ผ ํด์. ๋ง์น ๋ฒ์ธ์ ์ก์ผ๋ ค๋ฉด ๋ฒํ ํ์ฅ์ ์ฌ๊ตฌ์ฑํ๋ ๊ฒ์ฒ๋ผ์!
ํญ์ ๋ฒ๊ทธ๋ฅผ ์ฌํํ ์ ์๋ ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ์ฐพ์ผ์ธ์. ์ด๋ ๊ฒ ํ๋ฉด ๋ฌธ์ ์ ์์ธ์ ๋ ์ฝ๊ฒ ์ฐพ์ ์ ์์ด์.
5.2 ๊ฐ์ค์ ์ธ์ฐ๊ณ ํ ์คํธํ์ธ์
๊ณผํ์์ฒ๋ผ ์๊ฐํด๋ณด์ธ์. "์ด ๋ฒ๊ทธ์ ์์ธ์ ์ด๊ฒ์ผ ๊ฑฐ์ผ"๋ผ๋ ๊ฐ์ค์ ์ธ์ฐ๊ณ , ๊ทธ ๊ฐ์ค์ ํ ์คํธํด๋ณด๋ ๊ฑฐ์์.
- ์ง์์ธ์ ์ฒ - ์ง์ ์ฌ์ฐ๊ถ ๋ณดํธ ๊ณ ์ง
์ง์ ์ฌ์ฐ๊ถ ๋ณดํธ ๊ณ ์ง
- ์ ์๊ถ ๋ฐ ์์ ๊ถ: ๋ณธ ์ปจํ ์ธ ๋ ์ฌ๋ฅ๋ท์ ๋ ์ AI ๊ธฐ์ ๋ก ์์ฑ๋์์ผ๋ฉฐ, ๋ํ๋ฏผ๊ตญ ์ ์๊ถ๋ฒ ๋ฐ ๊ตญ์ ์ ์๊ถ ํ์ฝ์ ์ํด ๋ณดํธ๋ฉ๋๋ค.
- AI ์์ฑ ์ปจํ ์ธ ์ ๋ฒ์ ์ง์: ๋ณธ AI ์์ฑ ์ปจํ ์ธ ๋ ์ฌ๋ฅ๋ท์ ์ง์ ์ฐฝ์๋ฌผ๋ก ์ธ์ ๋๋ฉฐ, ๊ด๋ จ ๋ฒ๊ท์ ๋ฐ๋ผ ์ ์๊ถ ๋ณดํธ๋ฅผ ๋ฐ์ต๋๋ค.
- ์ฌ์ฉ ์ ํ: ์ฌ๋ฅ๋ท์ ๋ช ์์ ์๋ฉด ๋์ ์์ด ๋ณธ ์ปจํ ์ธ ๋ฅผ ๋ณต์ , ์์ , ๋ฐฐํฌ, ๋๋ ์์ ์ ์ผ๋ก ํ์ฉํ๋ ํ์๋ ์๊ฒฉํ ๊ธ์ง๋ฉ๋๋ค.
- ๋ฐ์ดํฐ ์์ง ๊ธ์ง: ๋ณธ ์ปจํ ์ธ ์ ๋ํ ๋ฌด๋จ ์คํฌ๋ํ, ํฌ๋กค๋ง, ๋ฐ ์๋ํ๋ ๋ฐ์ดํฐ ์์ง์ ๋ฒ์ ์ ์ฌ์ ๋์์ด ๋ฉ๋๋ค.
- AI ํ์ต ์ ํ: ์ฌ๋ฅ๋ท์ AI ์์ฑ ์ปจํ ์ธ ๋ฅผ ํ AI ๋ชจ๋ธ ํ์ต์ ๋ฌด๋จ ์ฌ์ฉํ๋ ํ์๋ ๊ธ์ง๋๋ฉฐ, ์ด๋ ์ง์ ์ฌ์ฐ๊ถ ์นจํด๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
์ฌ๋ฅ๋ท์ ์ต์ AI ๊ธฐ์ ๊ณผ ๋ฒ๋ฅ ์ ๊ธฐ๋ฐํ์ฌ ์์ฌ์ ์ง์ ์ฌ์ฐ๊ถ์ ์ ๊ทน์ ์ผ๋ก ๋ณดํธํ๋ฉฐ,
๋ฌด๋จ ์ฌ์ฉ ๋ฐ ์นจํด ํ์์ ๋ํด ๋ฒ์ ๋์์ ํ ๊ถ๋ฆฌ๋ฅผ ๋ณด์ ํฉ๋๋ค.
ยฉ 2025 ์ฌ๋ฅ๋ท | All rights reserved.
๋๊ธ 0๊ฐ