๐Ÿ’ก HTML๊ณผ JavaScript์˜ ํ˜‘์—… ๊ตฌ์กฐ — ๋ธŒ๋ผ์šฐ์ € ์† ๋Œ€ํ™”์˜ ์›๋ฆฌ | ์ฝ”๋”ฉ์Šคํƒ€๋žฉ Part 7

๐Ÿ’ก HTML๊ณผ JavaScript์˜ ํ˜‘์—… ๊ตฌ์กฐ — ๋ธŒ๋ผ์šฐ์ € ์† ๋Œ€ํ™”์˜ ์›๋ฆฌ | ์ฝ”๋”ฉ์Šคํƒ€๋žฉ Part 7

๐Ÿ’ก HTML๊ณผ JavaScript์˜ ํ˜‘์—… ๊ตฌ์กฐ — ๋ธŒ๋ผ์šฐ์ € ์† ๋Œ€ํ™”์˜ ์›๋ฆฌ | ์ฝ”๋”ฉ์Šคํƒ€๋žฉ Part 7

์•ˆ๋…•ํ•˜์„ธ์š” ์ฝ”๋Ÿฌ์ž…๋‹ˆ๋‹ค ๐Ÿ˜Š
์˜ค๋Š˜์€ ์›น ์ฝ”๋”ฉ์˜ ์ง„์งœ ์‹œ์ž‘์ ! HTML๊ณผ JavaScript๊ฐ€ ‘์–ด๋–ป๊ฒŒ ๋Œ€ํ™”ํ•˜๋ฉฐ ์›€์ง์ด๋Š”์ง€’ ๋ฐฐ์›Œ๋ด…๋‹ˆ๋‹ค.
HTML์€ ๋ˆˆ(ํ™”๋ฉด), JavaScript๋Š” ๋‘๋‡Œ(ํ–‰๋™). ๋‘ ์–ธ์–ด๊ฐ€ ๋งŒ๋‚˜์•ผ ‘์‚ด์•„ ์žˆ๋Š” ํŽ˜์ด์ง€’๊ฐ€ ๋งŒ๋“ค์–ด์ ธ์š”.

๐Ÿ“˜ ์˜ค๋Š˜์˜ ํ•ต์‹ฌ ๊ฐœ๋…:
HTML = ๊ตฌ์กฐ(structure)
CSS = ๋””์ž์ธ(style)
JavaScript = ํ–‰๋™(action)

1️⃣ HTML์ด ํ•˜๋Š” ์ผ — ‘๋ฌด๋Œ€’ ๋งŒ๋“ค๊ธฐ

<div id="box">Hello, Corer!</div>
<button id="btn">ํด๋ฆญํ•˜๋ฉด ์ƒ‰ ๋ฐ”๋€œ</button>
<script src="script.js"></script>

HTML์€ ๋ฐฐ์šฐ๋“ค์ด ์„ค ๋ฌด๋Œ€๋ฅผ ๋งŒ๋“ค์–ด์š”. ๊ทธ๋ฆฌ๊ณ  ๋ฒ„ํŠผ, ํ…์ŠคํŠธ, ์ž…๋ ฅ์ฐฝ์ฒ˜๋Ÿผ ‘์—ญํ• ’์„ ๋ถ€์—ฌํ•˜์ฃ . ํ•˜์ง€๋งŒ ์Šค์Šค๋กœ ์›€์ง์ด์ง„ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

2️⃣ JavaScript๊ฐ€ ํ•˜๋Š” ์ผ — ‘์›€์ง์ž„’ ๋งŒ๋“ค๊ธฐ

<script>
const box = document.getElementById("box");
const btn = document.getElementById("btn");

btn.addEventListener("click", () => {
  box.style.color = "#1a73e8";
  box.style.fontSize = "24px";
  box.innerText = "ํด๋ฆญ ์„ฑ๊ณต!";
});
</script>
๐Ÿ’ป ๊ฒฐ๊ณผ ๋ฏธ๋ฆฌ๋ณด๊ธฐ

Hello, Corer!

JavaScript๋Š” HTML ์š”์†Œ๋ฅผ ์ฐพ์•„(getElementById) ์ด๋ฒคํŠธ๋ฅผ ๋ถ™์ด๊ณ (addEventListener) ์†์„ฑ์„ ๋ฐ”๊พธ๋ฉฐ ‘๋Œ€ํ™”’๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

3️⃣ HTML ↔ JS ์—ฐ๊ฒฐ์˜ ๊ตฌ์กฐ (DOM)

HTML ํŽ˜์ด์ง€์˜ ๊ตฌ์กฐ๋Š” ํŠธ๋ฆฌ(Tree)์ฒ˜๋Ÿผ ์ƒ๊ฒผ์–ด์š”.
JavaScript๋Š” ๊ทธ ๋‚˜๋ฌด ์œ„๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์›€์ง์ด๋ฉฐ ๊ฐ€์ง€๋ฅผ ๋ฐ”๊พธ์ฃ .

document.body      // ์ „์ฒด ๋ฌธ์„œ
document.getElementById("btn") // ํŠน์ • ๋ฒ„ํŠผ
document.querySelector(".menu") // ํด๋ž˜์Šค ์„ ํƒ

์ด๋Ÿฐ ๊ฑธ DOM(Document Object Model)์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ณ , HTML๊ณผ JS์˜ ํ˜‘์—…์€ ๋ฐ”๋กœ ์ด DOM ์œ„์—์„œ ์ผ์–ด๋‚ฉ๋‹ˆ๋‹ค.

4️⃣ ์ž…๋ ฅ → ์ฒ˜๋ฆฌ → ์ถœ๋ ฅ (๋ฐ์ดํ„ฐ ํ๋ฆ„)

<input id="name" placeholder="์ด๋ฆ„ ์ž…๋ ฅ">
<button id="hello">์ธ์‚ฌํ•˜๊ธฐ</button>
<div id="result"></div>

<script>
hello.onclick = function(){
  const name = document.getElementById("name").value;
  document.getElementById("result").innerText = `์•ˆ๋…•, ${name}!`;
}
</script>
๐Ÿ’ช ๋ฏธ์…˜:
์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๋ฉด “์•ˆ๋…•, OOO๋‹˜!”์ด ๋‚˜์˜ค๋„๋ก ๋งŒ๋“ค์–ด๋ณด์„ธ์š”.
์ถ”๊ฐ€๋กœ, ์ž…๋ ฅ์ด ์—†์œผ๋ฉด “์ด๋ฆ„์„ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”” ๋ฌธ๊ตฌ๋ฅผ ๋„์›Œ๋ณด์„ธ์š”!

❓ Q&A ์ฝ”๋„ˆ

Q1. HTML ์•ˆ์— JS๋ฅผ ์จ๋„ ๋˜๋‚˜์š”?
๐Ÿ‘‰ ๋„ค! ํ•˜์ง€๋งŒ ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๋ฉด ๋ณ„๋„ ํŒŒ์ผ๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒŒ ์ข‹์•„์š” (script.js).

Q2. JS๊ฐ€ HTML๋ณด๋‹ค ๋Šฆ๊ฒŒ ๋กœ๋“œ๋˜๋ฉด์š”?
๐Ÿ‘‰ ํ•ด๊ฒฐ๋ฒ•: defer ์†์„ฑ ์‚ฌ์šฉ or window.onload ์•ˆ์—์„œ ์‹คํ–‰.

Q3. ๋ฒ„ํŠผ์„ ์—ฌ๋Ÿฌ ๊ฐœ ์“ฐ๋ ค๋ฉด?
๐Ÿ‘‰ querySelectorAll๋กœ ๋ฌถ์–ด์„œ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ์ด๋ฒคํŠธ๋ฅผ ๋‹ฌ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ“˜ ๋‹ค์Œ ๋‹จ๊ณ„ ์˜ˆ๊ณ 

Part 8์—์„œ๋Š” “์ด๋ฒคํŠธ ๋ฃจํ”„์™€ ๋ฐ˜์‘ํ˜• ์ธํ„ฐ๋ž™์…˜”์œผ๋กœ ๋„˜์–ด๊ฐ€์š”.
๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํด๋ฆญ, ํ‚ค๋ณด๋“œ, ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์–ด๋–ป๊ฒŒ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•˜๋Š”์ง€ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์ž์ฒ˜๋Ÿผ ๊นŠ๊ฒŒ ํŒŒํ—ค์ณ๋ด…์‹œ๋‹ค!

๐Ÿ“ฐ ์ตœ์‹  ๊ธ€

#์ฝ”๋Ÿฌ #์ฝ”๋”ฉ์ž…๋ฌธ #HTML #JavaScript #์ฝ”๋”ฉ์Šคํƒ€๋žฉ #์›น๊ฐœ๋ฐœ #๋ธŒ๋ผ์šฐ์ €์ด๋ฒคํŠธ #ํ”„๋กœ๊ทธ๋ž˜๋ฐ #์ฝ”๋”ฉํ˜‘์—… #์ดˆ๋“ฑ์ฝ”๋”ฉ
๋‹ค์Œ ์ด์ „