η„‘μ œ

μžλ°”μŠ€ν¬λ¦½νŠΈ (JS, JavaScript) λ³Έλ¬Έ

<script>

μžλ°”μŠ€ν¬λ¦½νŠΈ (JS, JavaScript)

yo-u-loo 2026. 5. 26. 10:36

 

πŸ”· JavaScript πŸ”·

μ›Ή νŽ˜μ΄μ§€μ— 동적인 λ™μž‘κ³Ό μƒν˜Έμž‘μš©μ„ μΆ”κ°€ν•˜λŠ” ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄.

 

◼️ μ›Ήμ—μ„œ JS둜 ν•  수 μžˆλŠ” 일

  • μ‹€μ‹œκ°„ μƒν˜Έμž‘μš©: λ²„νŠΌμ„ ν΄λ¦­ν–ˆμ„ λ•Œ νŒμ—…μ°½μ„ λ„μš°κ±°λ‚˜, 메뉴가 μŠ¬λΌμ΄λ“œ ν˜•νƒœλ‘œ 열리고 λ‹«νžˆλŠ” λ“± μ‚¬μš©μžμ˜ 행동에 μ¦‰μ‹œ λ°˜μ‘ν•˜λŠ” κΈ°λŠ₯을 κ΅¬ν˜„ν•  수 μžˆλ‹€.
  • 데이터 μ—…λ°μ΄νŠΈ: νŽ˜μ΄μ§€ 전체λ₯Ό μƒˆλ‘œκ³ μΉ¨ν•˜μ§€ μ•Šκ³ λ„ μ„œλ²„μ™€ ν†΅μ‹ ν•˜μ—¬ μƒˆλ‘œμš΄ λŒ“κΈ€, μ•Œλ¦Ό, 날씨 정보 등을 가져와 화면을 κ°±μ‹ ν•  수 μžˆλ‹€. (비동기 톡신 ν™œμš©)
  • μ‹œκ°μ  효과: μ• λ‹ˆλ©”μ΄μ…˜, 차트 생성, κ·Έλž˜ν”½ ν‘œν˜„ λ“± 화면에 λ‹€μ–‘ν•œ 동적 효과λ₯Ό μ μš©ν•  수 μžˆλ‹€.
  • μž…λ ₯κ°’ 검증: 둜그인 μ‹œ 아이디가 λΉ„μ–΄ μžˆκ±°λ‚˜ λΉ„λ°€λ²ˆν˜Έκ°€ λ„ˆλ¬΄ 짧은 경우 μ¦‰μ‹œ μ•ˆλ‚΄ν•˜λŠ” λ“±, μ‚¬μš©μž μž…λ ₯ 였λ₯˜λ₯Ό 사전에 확인할 수 μžˆλ‹€. (단, λ³΄μ•ˆμ„ μœ„ν•œ 검증은 μ„œλ²„μ—μ„œλ„ λ°˜λ“œμ‹œ μˆ˜ν–‰ν•΄μ•Ό ν•œλ‹€.)

 


 

◼️ μ›ΉλΈŒλΌμš°μ €κ°€ JSλ₯Ό ν•΄μ„ν•˜λŠ” κ³Όμ •

μš°λ¦¬κ°€ μž‘μ„±ν•œ JavaScript μ½”λ“œλŠ” μ‚¬λžŒμ΄ 읽고 μž‘μ„±ν•˜κΈ° μ‰¬μš΄ ν˜•νƒœμ˜ ν”„λ‘œκ·Έλž˜λ° 언어이기 λ•Œλ¬Έμ—, 컴퓨터가 직접 μ΄ν•΄ν•˜κ³  μ‹€ν–‰ν•  μˆ˜λŠ” μ—†λ‹€.

이λ₯Ό μ‹€ν–‰ν•˜κΈ° μœ„ν•΄ μ›Ή λΈŒλΌμš°μ € λ‚΄λΆ€μ—λŠ” JavaScript μ—”μ§„(JavaScript Engine) 이 μ‘΄μž¬ν•˜λ©°, 엔진은 μž‘μ„±λœ μ½”λ“œλ₯Ό ν•΄μ„ν•˜κ³  μ‹€ν–‰ κ°€λŠ₯ν•œ ν˜•νƒœλ‘œ λ³€ν™˜ν•˜μ—¬ μ²˜λ¦¬ν•œλ‹€.

λŒ€ν‘œμ μΈ JavaScript μ—”μ§„μœΌλ‘œλŠ” Chrome의 V8, Firefox의 SpiderMonkey, Safari의 JavaScriptCore 등이 μžˆλ‹€.

1️⃣ λ‘œλ”© (Loading)

  • λΈŒλΌμš°μ €κ°€ HTML λ¬Έμ„œλ₯Ό 읽닀가 <script> νƒœκ·Έλ₯Ό λ§Œλ‚˜λ©΄ JavaScript νŒŒμΌμ„ λ‹€μš΄λ‘œλ“œν•œλ‹€.
  • μ΄λ•Œ 슀크립트의 μœ„μΉ˜μ™€ defer, async μ†μ„±μ˜ μ‚¬μš© 여뢀에 따라 λ‹€μš΄λ‘œλ“œ 및 μ‹€ν–‰ μ‹œμ μ΄ λ‹¬λΌμ§ˆ 수 μžˆλ‹€.

2️⃣ νŒŒμ‹± (Parsing)

  • JavaScript 엔진은 μ½”λ“œλ₯Ό 읽어 문법을 λΆ„μ„ν•˜κ³ , 이λ₯Ό AST(Abstract Syntax Tree, 좔상 ꡬ문 트리) ν˜•νƒœλ‘œ λ³€ν™˜ν•œλ‹€.
  • λ§Œμ•½ 문법 였λ₯˜(Syntax Error)κ°€ 발견되면 이 λ‹¨κ³„μ—μ„œ 싀행이 μ€‘λ‹¨λœλ‹€.

3️⃣ 컴파일 및 μ‹€ν–‰ (Compilation & Execution)

  • νŒŒμ‹±μ΄ μ™„λ£Œλœ μ½”λ“œλŠ” JavaScript 엔진에 μ˜ν•΄ μ‹€ν–‰λœλ‹€.
  • ν˜„λŒ€ JavaScript 엔진은 인터프리터와 컴파일러λ₯Ό ν•¨κ»˜ μ‚¬μš©ν•˜λŠ” ꡬ쑰λ₯Ό κ°€μ§€λ©°, 자주 μ‹€ν–‰λ˜λŠ” μ½”λ“œλŠ” JIT(Just-In-Time) μ»΄νŒŒμΌμ„ 톡해 κΈ°κ³„μ–΄λ‘œ λ³€ν™˜ν•˜μ—¬ μ„±λŠ₯을 μ΅œμ ν™”ν•œλ‹€.
  • 이 κ³Όμ •μ—μ„œ λ³€μˆ˜ μ„ μ–Έ, ν•¨μˆ˜ 호좜, μ—°μ‚° 처리, DOM μ‘°μž‘ 등이 μ‹€μ œλ‘œ μˆ˜ν–‰λœλ‹€.

 


 

◼️ JS κΈ°λ³Έ μš©μ–΄ 정리

  • κ°’ (Value): 100, "μ•ˆλ…•", true와 같이 ν”„λ‘œκ·Έλž¨μ—μ„œ μ‹€μ œλ‘œ λ‹€λ£¨λŠ” 데이터 자체.
  • λ³€μˆ˜ (Variable): 값을 μ €μž₯ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” 이름이 μžˆλŠ” 곡간.
  • μ—°μ‚°μž (Operator): +, -, *, /, === λ“± 값을 κ³„μ‚°ν•˜κ±°λ‚˜ λΉ„κ΅ν•˜λŠ” 데 μ‚¬μš©ν•˜λŠ” 기호.
  • ν•¨μˆ˜ (Function): νŠΉμ • μž‘μ—…μ„ μˆ˜ν–‰ν•˜λ„λ‘ μž‘μ„±ν•œ μ½”λ“œμ˜ 묢음. ν•„μš”ν•  λ•Œ ν˜ΈμΆœν•˜μ—¬ μ‹€ν–‰ν•  수 μžˆλ‹€.
  • 문법 (Syntax): JavaScriptκ°€ μ½”λ“œλ₯Ό μ˜¬λ°”λ₯΄κ²Œ μ΄ν•΄ν•˜κ³  μ‹€ν–‰ν•  수 μžˆλ„λ‘ μ •ν•΄ 놓은 μž‘μ„± κ·œμΉ™.

 


 

◼️ HTML에 JS μž‘μ„±ν•˜λŠ” 방법

1️⃣ λ‚΄λΆ€ 슀크립트 (Internal Script)

<!DOCTYPE html>
<html>
<head>
    <title>Internal Script</title>
</head>
<body>
    <script> console.log("μ•ˆλ…•ν•˜μ„Έμš”!");
    </script>
</body>
</html>
  • HTML 파일의 <script> νƒœκ·Έ μ•ˆμ— JavaScript μ½”λ“œλ₯Ό 직접 μž‘μ„±ν•˜λŠ” 방법.

 

2️⃣ μ™ΈλΆ€ 슀크립트 (External Script)

HTML 파일
<script src="script.js"></script>
script.js 파일
console.log("μ•ˆλ…•ν•˜μ„Έμš”!");
  • JavaScript μ½”λ“œλ₯Ό λ³„λ„μ˜ .js νŒŒμΌμ— μž‘μ„±ν•œ ν›„ HTMLμ—μ„œ λΆˆλŸ¬μ˜€λŠ” 방법. (ꢌμž₯ 방식)

 

 

πŸ“β€Š POINT πŸ“β€Š

βœ”οΈ μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” 웹을 μ›€μ§μ΄κ²Œ λ§Œλ“œλŠ” 동적 언어이닀. βœ”οΈ

βœ”οΈ λΈŒλΌμš°μ € λ‚΄λΆ€μ˜ μ—”μ§„ (V8 λ“±)이 μ½”λ“œλ₯Ό ν•΄μ„ν•˜κ³  μ‹€ν–‰ν•œλ‹€. βœ”οΈ

βœ”οΈ HTML νŒŒμΌκ³Ό μ—°κ²°ν•˜μ—¬ μ‚¬μš©ν•˜λ©°, 주둜 λ³„λ„μ˜ 파일둜 κ΄€λ¦¬ν•˜λŠ” 것이 κΉ”λ”ν•˜λ‹€. βœ”οΈ

 

'<script>' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

HTMLμ—μ„œ JavaScriptλ₯Ό λ°°μΉ˜ν•˜λŠ” κ°€μž₯ 쒋은 μœ„μΉ˜  (0) 2026.05.26
ECMAScript (ES6)  (0) 2026.05.26
JS coding rule and style guide  (0) 2026.05.26
console.log()  (0) 2026.05.26
JS I/O (Input / Output) μž…μΆœλ ₯  (0) 2026.05.26