EP-01 | JavaScript ์ž‘๋™ ๋ฐฉ์‹ ๐Ÿ”ฅ& Execution Context

๋ฐœํ–‰: (2025๋…„ 12์›” 12์ผ ์˜คํ›„ 03:45 GMT+9)
3 min read
์›๋ฌธ: Dev.to

Source: Dev.to

์‹คํ–‰ ์ปจํ…์ŠคํŠธ๋ž€? (์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด)

์‹คํ–‰ ์ปจํ…์ŠคํŠธ๋ฅผ ์ž๋ฐ”์Šคํฌ๋ฆฝ์Šค๊ฐ€ ์ผํ•˜๋Š” ๊ต์‹ค์ด๋ผ๊ณ  ์ƒ๊ฐํ•ด ๋ณด์„ธ์š”.

์ด ๊ต์‹ค์—์„œ:

  • ํ™”์ดํŠธ๋ณด๋“œ โ€“ ๋ชจ๋“  ์ค‘์š”ํ•œ ๋ฉ”๋ชจ(๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜)๊ฐ€ ์ ํžˆ๋Š” ๊ณณ โ†’ ๋ฉ”๋ชจ๋ฆฌ ์ปดํฌ๋„ŒํŠธ
  • ์„ ์ƒ๋‹˜ โ€“ ์ง€์‹œ๋ฅผ ํ•˜๋‚˜์”ฉ ์ฝ๊ณ  ์‹คํ–‰ํ•˜๋Š” ์‚ฌ๋žŒ โ†’ ์‹คํ–‰ ์Šค๋ ˆ๋“œ

1. ๋ฉ”๋ชจ๋ฆฌ ์ปดํฌ๋„ŒํŠธ (๋ณ€์ˆ˜ ํ™˜๊ฒฝ)

์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด
์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ์ž๋ฐ”์Šคํฌ๋ฆฝ์Šค๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์žฅ์†Œ.

์‹ค์ƒํ™œ ์˜ˆ์‹œ
๊ต์‹ค์— ๋“ค์–ด๊ฐ€์„œ ์„ ์ƒ๋‹˜์ด ์น ํŒ์— ์ด๋ฆ„์„ ์ ๋Š”๋‹ค๊ณ  ์ƒ์ƒํ•ด ๋ณด์„ธ์š”:

studentName = "Ali"
age = 10
greet = function(){...}

ํ™”์ดํŠธ๋ณด๋“œ๊ฐ€ ๋ฐ”๋กœ ๋ฉ”๋ชจ๋ฆฌ ์ปดํฌ๋„ŒํŠธ์ด๋ฉฐ, ์ˆ˜์—…์ด ์‹œ์ž‘๋˜๊ธฐ ์ „์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

2. ์ฝ”๋“œ ์ปดํฌ๋„ŒํŠธ (์‹คํ–‰ ์Šค๋ ˆ๋“œ)

์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด
์ž๋ฐ”์Šคํฌ๋ฆฝ์Šค๊ฐ€ ์ฝ”๋“œ๋ฅผ ํ•œ ์ค„์”ฉ ์‹คํ–‰ํ•˜๋Š” ๋ถ€๋ถ„, ๋งˆ์น˜ ์„ ์ƒ๋‹˜์ด ์ง€์‹œ๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ์ฝ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์‹ค์ƒํ™œ ์˜ˆ์‹œ
ํ™”์ดํŠธ๋ณด๋“œ(๋ฉ”๋ชจ๋ฆฌ)์— ์ ํžŒ ๋’ค, ์„ ์ƒ๋‹˜์ด ๋…ธํŠธ๋ฅผ ์ฝ๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค:

  1. ํ•™์ƒ๋“ค์—๊ฒŒ ์ธ์‚ฌํ•˜๊ธฐ
  2. ์ˆ˜์—… ๋‚ด์šฉ ์„ค๋ช…ํ•˜๊ธฐ
  3. ์งˆ๋ฌธํ•˜๊ธฐ
  4. ๋‹ต๋ณ€ ๊ธฐ๋‹ค๋ฆฌ๊ธฐ
  5. ๋‹ค์Œ ์ง€์‹œ๋กœ ์ด๋™ํ•˜๊ธฐ

์„ ์ƒ๋‹˜์€ ๋‘ ์ค„์„ ๋™์‹œ์— ์ฝ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์‹คํ–‰ ์Šค๋ ˆ๋“œ์ž…๋‹ˆ๋‹ค.

3. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋™๊ธฐ์‹์ด๋ฉฐ ๋‹จ์ผ ์Šค๋ ˆ๋“œ

์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด
์ž๋ฐ”์Šคํฌ๋ฆฝ์Šค๋Š” ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์ž‘์—…๋งŒ ์ˆœ์„œ๋Œ€๋กœ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ƒํ™œ ์˜ˆ์‹œ
ํ•™์ƒ์ด ์ฑ…์„ ํฐ ์†Œ๋ฆฌ๋กœ ์ฝ๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•ด ๋ณด์„ธ์š”. ํ•œ ๋ฌธ์žฅ์„ ๋๋‚ด์•ผ ๋‹ค์Œ ๋ฌธ์žฅ์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๊ณ , ๋‘ ๋ฌธ์žฅ์„ ๋™์‹œ์— ์ฝ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ž๋ฐ”์Šคํฌ๋ฆฝ์Šค๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹โ€”๋‹จ๊ณ„๋ณ„, ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์”ฉ.

์ „์ฒด ์‹ค์ƒํ™œ ์˜ˆ์‹œ (์ „์ฒด ํ๋ฆ„)

var name = "Sara";

function sayHi() {
  console.log("Hi " + name);
}

sayHi();

์‹ค์ƒํ™œ ๋ถ„์„

  • ๋ฉ”๋ชจ๋ฆฌ ์ปดํฌ๋„ŒํŠธ (ํ™”์ดํŠธ๋ณด๋“œ)
    • name: "Sara"
    • sayHi: function
  • ์‹คํ–‰ ์Šค๋ ˆ๋“œ (์„ ์ƒ๋‹˜์˜ ์ฝ๊ธฐ ๋‹จ๊ณ„)
    1. sayHi() ๋กœ ์ด๋™
    2. ์‹คํ–‰ โ†’ "Hi Sara" ์ถœ๋ ฅ

์ž๋ฐ”์Šคํฌ๋ฆฝ์Šค๋Š” ๋‹ค์Œ ์ค„๋กœ ๋„˜์–ด๊ฐ€๊ธฐ ์ „์— ์ด ๊ณผ์ •์„ ๋ชจ๋‘ ๋งˆ์นฉ๋‹ˆ๋‹ค.

Back to Blog

๊ด€๋ จ ๊ธ€

๋” ๋ณด๊ธฐ ยป

JavaScript์—์„œ ์ผ๊ธ‰ ํ•จ์ˆ˜

์†Œ๊ฐœ ๊ฐœ๋ฐœ์ž๋“ค์ด JavaScript๋ฅผ ๋ฐฐ์šฐ๋ฉด์„œ โ€œfirstโ€‘class functionsโ€๋ผ๋Š” ์šฉ์–ด๊ฐ€ ํ† ๋ก ๊ณผ ๋ฌธ์„œ์—์„œ ์ž์ฃผ ๋“ฑ์žฅํ•ฉ๋‹ˆ๋‹ค. JavaScript์—์„œ ํ•จ์ˆ˜๋Š” โ€ฆ

์ƒˆ๋กœ์šด Snap.svg๋ฅผ ์‚ฌ์šฉํ•œ ์Šคํƒ€์ผ๋ง ๋ฐ ์†์„ฑ (๊ธฐ์ดˆ - ํŒŒํŠธ 2)

์ด๊ฒƒ์€ ์šฐ๋ฆฌ Snap.svg ์‹œ๋ฆฌ์ฆˆ์˜ ๋‘ ๋ฒˆ์งธ ํŠœํ† ๋ฆฌ์–ผ์ž…๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋ถ€๋ถ„์—์„œ๋Š” g, g_a, ๊ทธ๋ฆฌ๊ณ  Snap.FORCE_AFTER๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ„์ธต์ ์ธ SVG ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค. ์ด์ œ...

์ดˆ๋ณด์ž๋Š” JavaScript๋ฅผ ๋จผ์ € ๋ฐฐ์›Œ์•ผ ํ• ๊นŒ, ์•„๋‹ˆ๋ฉด Python์„ ๋ฐฐ์›Œ์•ผ ํ• ๊นŒ?

์†Œ๊ฐœ ์ด ์งˆ๋ฌธ์€ ๋ˆ„๊ตฐ๊ฐ€ ์ฝ”๋”ฉ์„ ๋ฐฐ์šฐ๊ธฐ ์‹œ์ž‘ํ•  ๋•Œ๋งˆ๋‹ค ๊ฑฐ์˜ ํ•ญ์ƒ ๋“ฑ์žฅํ•ฉ๋‹ˆ๋‹ค. Python์€ ๊น”๋”ํ•œ ๋ฌธ๋ฒ•๊ณผ ๊ฐ€๋…์„ฑ ๋•Œ๋ฌธ์— ์ž์ฃผ ์ถ”์ฒœ๋ฉ๋‹ˆ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋น„๋ฐ€์Šค๋Ÿฌ์šด ์‚ถ: ์ปค๋ง vs. ๋ถ€๋ถ„ ์ ์šฉ

ํ‹ฐ๋ชจ์‹œ๊ฐ€ ๋ชจ๋‹ˆํ„ฐ๋ฅผ ๋ฐ”๋ผ๋ณด๋ฉฐ ๋ˆˆ์„ ๊ฐ€๋Š˜๊ฒŒ ๋œจ๊ณ , ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ๊ฐ€์ ธ์˜จ JavaScript ์ฝ”๋“œ ํ•œ ์ค„์„ ์ฝ์—ˆ๋‹ค: js const formatUrl = protoโ€ฆ