์น ๊ฐ๋ฐ์ ์์ํ๋ฉด์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๋ฐฐ์ฐ๋ ๊ฒ์ ํ์์ ์ ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฒ์ ๋ฐฐ์ฐ๋ ๋ถ๋ค์ ์ํด ์ด๋ฒ ๊ธ์์๋ ๋ด๋ถ์คํฌ๋ฆฝํธ์ ์ธ๋ถ์คํฌ๋ฆฝํธ์ ์ฌ์ฉ๋ฒ, ์ฃผ์์ ํตํด ์ฝ๋์ ๊ฐ๋ ์ฑ์ ๋์ด๋ ๋ฐฉ๋ฒ, ๊ทธ๋ฆฌ๊ณ ๋ฐ์ํ ์ ์๋ ์ค๋ฅ๋ฅผ ํ์ธํ๊ณ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ด ๋ค ๊ฐ์ง ์ฃผ์ ๋ฅผ ํตํด ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ธฐ์ด๋ฅผ ํํํ ๋ค์ ธ๋ด ์๋ค.
โฃ ๋ชฉ์ฐจ
01. ๋ด๋ถ์คํฌ๋ฆฝํธ๐
์ ์
๋ด๋ถ์คํฌ๋ฆฝํธ๋ HTML ํ์ผ ๋ด์ ์ง์ ์์ฑํ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋์ ๋๋ค. <script> ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ HTML ๋ฌธ์์ ํน์ ์์น์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฝ์ ํ ์ ์์ต๋๋ค.
์ฅ์
- ๋น ๋ฅธ ์์ฑ๊ณผ ํ ์คํธ: ๊ฐ๋จํ ํ ์คํธ๋ ์์ ๊ท๋ชจ์ ํ๋ก์ ํธ์์ ์ ์ฉํฉ๋๋ค.
- ์ง๊ด์ ์ธ ์์น ์ง์ : ํ์ํ ์์น์ ๋ฐ๋ก ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ด ํธ๋ฆฌํฉ๋๋ค.
๋จ์
- ์ฝ๋์ ๊ฐ๋ ์ฑ ์ ํ: HTML๊ณผ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๊ฐ ์์ฌ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๋๋ค.
- ์ ์ง๋ณด์ ์ด๋ ค์: ์ฝ๋๊ฐ ๊ธธ์ด์ง์๋ก ๊ด๋ฆฌ๊ฐ ์ด๋ ค์์ง๋๋ค.
- ๋ณด์ ์ทจ์ฝ์ : XSS ๊ณต๊ฒฉ์ ์ทจ์ฝํ ์ ์์ต๋๋ค.
์์ ์ฝ๋
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>๋ด๋ถ์คํฌ๋ฆฝํธ ์์ </title>
</head>
<body>
<h1>๋ด๋ถ์คํฌ๋ฆฝํธ ํ
์คํธ</h1>
<script>
document.write("์ด ๋ฌธ์ฅ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์์ฑ๋์์ต๋๋ค.");
</script>
</body>
</html>
02. ์ธ๋ถ์คํฌ๋ฆฝํธ๐จ
์ ์
์ธ๋ถ์คํฌ๋ฆฝํธ๋ ๋ณ๋์. js ํ์ผ๋ก ์์ฑ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋์ ๋๋ค. HTML ํ์ผ์์๋ <script src="ํ์ผ๊ฒฝ๋ก.js"></script> ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์ธ๋ถ ํ์ผ์ ๋ถ๋ฌ์ต๋๋ค.
์ฅ์
- ์ฝ๋์ ๋ชจ๋ํ: ์ฝ๋๊ฐ ๋ถ๋ฆฌ๋์ด ๊ด๋ฆฌ๊ฐ ์ฉ์ดํฉ๋๋ค.
- ์ ์ง๋ณด์ ์ฉ์ด: ์ฌ๋ฌ HTML ํ์ผ์์ ๋์ผํ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ์ฑ๋ฅ ํฅ์: ๋ธ๋ผ์ฐ์ ๊ฐ ์คํฌ๋ฆฝํธ ํ์ผ์ ์บ์ฑํ์ฌ ๋ก๋ฉ ์๋๊ฐ ๋นจ๋ผ์ง๋๋ค.
๋จ์
- ์ด๊ธฐ ์ค์ ์๊ฐ ์์: ์ธ๋ถ ํ์ผ์ ์์ฑํ๊ณ ์ฐ๊ฒฐํด์ผ ํฉ๋๋ค.
- ํ์ผ ๊ด๋ฆฌ ํ์: ํ๋ก์ ํธ๊ฐ ์ปค์ง์๋ก ํ์ผ ๊ด๋ฆฌ๊ฐ ์ค์ํด์ง๋๋ค.
์์ ์ฝ๋
HTML ํ์ผ:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>์ธ๋ถ์คํฌ๋ฆฝํธ ์์ </title>
<script src="script.js"></script>
</head>
<body>
<h1>์ธ๋ถ์คํฌ๋ฆฝํธ ํ
์คํธ</h1>
</body>
</html>
์ธ๋ถ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ (script.js):
document.write("์ด ๋ฌธ์ฅ์ ์ธ๋ถ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์์ ์์ฑ๋์์ต๋๋ค.");
03. ์๋ฐ์คํฌ๋ฆฝํธ ์ฃผ์๐
์ฃผ์์ ์ค์์ฑ
์ฃผ์์ ์ฝ๋์ ๊ฐ๋ ์ฑ์ ๋์ด๊ณ , ํ์ ์ ๋ค๋ฅธ ๊ฐ๋ฐ์๋ค์ด ์ฝ๋์ ์๋๋ฅผ ์ดํดํ๋ ๋ฐ ๋์์ ์ค๋๋ค.
์ฃผ์์ ์ข ๋ฅ
- ํ ์ค ์ฃผ์: //๋ฅผ ์ฌ์ฉํ์ฌ ํ ์ค์ ์ฃผ์ ์ฒ๋ฆฌํฉ๋๋ค.
- ์ฌ๋ฌ ์ค ์ฃผ์: /* */๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ์ค์ ์ฃผ์ ์ฒ๋ฆฌํฉ๋๋ค.
์ฃผ์ ์ฌ์ฉ ์์
// ์ด ํจ์๋ ๋ ์ซ์์ ํฉ์ ๋ฐํํฉ๋๋ค.
function add(a, b) {
return a + b; // a์ b๋ฅผ ๋ํ ๊ฐ์ ๋ฐํ
}
/*
์ด ํจ์๋ ๋ ์ซ์์ ๊ณฑ์ ๋ฐํํฉ๋๋ค.
์ด ํจ์๋ ์ฌ๋ฌ ์ค์ ์ฃผ์์ ์ฌ์ฉํ์ฌ ์ค๋ช
ํ ์ ์์ต๋๋ค.
*/
function multiply(a, b) {
return a * b;
}
04. ์๋ฐ์คํฌ๋ฆฝํธ ์ค๋ฅ ํ์ธ ๋ฐฉ๋ฒ๐ ๏ธ
์ผ๋ฐ์ ์ธ ์ค๋ฅ ์ข ๋ฅ
- ๋ฌธ๋ฒ ์ค๋ฅ: ์๋ชป๋ ๊ตฌ๋ฌธ์ผ๋ก ์ธํด ์ฝ๋๊ฐ ์คํ๋์ง ์์
- ๋ ผ๋ฆฌ ์ค๋ฅ: ์ฝ๋๊ฐ ์คํ๋์ง๋ง ์๋ํ ๋๋ก ์๋ํ์ง ์์
- ์คํ ์ค๋ฅ: ์ฝ๋ ์คํ ์ค์ ๋ฐ์ํ๋ ์ค๋ฅ
๋๋ฒ๊น ๋๊ตฌ ์๊ฐ
- ๋ธ๋ผ์ฐ์ ์ฝ์ ํ์ฉ๋ฒ: ๋๋ถ๋ถ์ ๋ธ๋ผ์ฐ์ ์๋ ๊ฐ๋ฐ์ ๋๊ตฌ๊ฐ ๋ด์ฅ๋์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, Chrome์์๋ F12 ํค๋ฅผ ๋๋ฌ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ด ์ ์์ต๋๋ค.
- console.log() ์ฌ์ฉ๋ฒ: ์ฝ๋์ ํ๋ฆ์ ์ถ์ ํ๊ณ ๋ณ์ ๊ฐ์ ์ถ๋ ฅํ์ฌ ๋๋ฒ๊น ์ ๋์์ ์ค๋๋ค.
์์ ์ฝ๋
function divide(a, b) {
if (b === 0) {
console.error("์ค๋ฅ: 0์ผ๋ก ๋๋ ์ ์์ต๋๋ค.");
return null;
}
return a / b;
}
let result = divide(10, 0);
if (result !== null) {
console.log("๊ฒฐ๊ณผ: " + result);
}
์ ์ฝ๋์์๋ 0์ผ๋ก ๋๋๋ ๊ฒฝ์ฐ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๊ณ , console.log()๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
05. ํต์ฌ ๋ด์ฉ๐