์น ๊ฐ๋ฐ์ ์ผ์ด์ฌ: HTML, CSS, JavaScript
1. ๋ฐฐ๊ฒฝ
1.1 ์ด๊ธฐ ์น์ ํ๊ณ
1990๋ ๋ ์ด๊ธฐ ์น์ ์ ์ ์ธ ํ ์คํธ์ ์ด๋ฏธ์ง๋ง์ ํ์ํ ์ ์๋ ์์ค์ด์์ต๋๋ค. ์ฌ์ฉ์์์ ์ํธ์์ฉ์ด ๊ฑฐ์ ์์๊ณ , ์๊ฐ์ ์ธ ๋์์ธ๋ ์ ํ์ ์ด์์ต๋๋ค.
1.2 HTML์ ๋ฑ์ฅ
HTML(ํ์ดํผํ ์คํธ ๋งํฌ์ ์ธ์ด)๋ ์น ๋ฌธ์์ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๋ ์ธ์ด๋ก, 1993๋ ํ ๋ฒ๋์ค๋ฆฌ์ ์ํด ์ฒ์ ์ ์๋์์ต๋๋ค. HTML์ ์น ๋ฌธ์๋ฅผ ๊ตฌ์กฐํํ๊ณ ํ ์คํธ, ์ด๋ฏธ์ง, ๋งํฌ ๋ฑ์ ์ ์ํจ์ผ๋ก์จ ์ด๊ธฐ ์น์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ์ต๋๋ค.
1.3 HTML ์์ ์ฝ๋
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>My First Web Page</title>
</head>
<body>
<header>
<h1>Welcome to My Website</h1>
</header>
<nav>
<ul>
<li><a href="#home">Home</a></li>
<li><a href="#about">About</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</nav>
<section id="home">
<h2>Home Section</h2>
<p>This is the home section of my website.</p>
</section>
<section id="about">
<h2>About Section</h2>
<p>Learn more about me and my interests.</p>
</section>
<section id="contact">
<h2>Contact Section</h2>
<p>Feel free to contact me through the form below.</p>
</section>
<footer>
<p>© 2024 My Website. All rights reserved.</p>
</footer>
</body>
</html>
2. HTML(ํ์ดํผํ ์คํธ ๋งํฌ์ ์ธ์ด)
2.1 HTML์ ์ญํ
- ๊ตฌ์กฐํ: ์น ํ์ด์ง์ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ๋ฅผ ์ ์ํฉ๋๋ค.
- ์ฝํ ์ธ ํ์: ํ ์คํธ, ์ด๋ฏธ์ง, ๋์์ ๋ฑ์ ํ์ํฉ๋๋ค.
- ํ์ดํผ๋งํฌ: ๋ค๋ฅธ ๋ฌธ์๋ก์ ๋งํฌ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
2.2 HTML5์ ๋ฑ์ฅ
HTML5๋ ๋ฉํฐ๋ฏธ๋์ด๋ฅผ ๋น๋กฏํ ๋ค์ํ ์๋ก์ด ์์์ API๋ฅผ ์ ๊ณตํ์ฌ ๋ณด๋ค ๋์ ์ด๊ณ ํ๋ถํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ์ ์๊ฒ ํ์ต๋๋ค.
2.3 HTML5 ์๋ก์ด ์์ ์์ ์ฝ๋
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HTML5 Features</title>
</head>
<body>
<header>
<h1>New Features in HTML5</h1>
</header>
<article>
<section>
<h2>Canvas</h2>
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #000;"></canvas>
<script>
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
ctx.font = "30px Arial";
ctx.fillText("Hello, HTML5!", 10, 50);
</script>
</section>
<section>
<h2>Audio</h2>
<audio controls>
<source src="audio.mp3" type="audio/mp3">
Your browser does not support the audio element.
</audio>
</section>
<section>
<h2>Video</h2>
<video width="320" height="240" controls>
<source src="video.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
</section>
</article>
<footer>
<p>© 2024 HTML5 Features. All rights reserved.</p>
</footer>
</body>
</html>
3. CSS(Cascading Style Sheets)
3.1 CSS์ ํ์์ฑ
CSS(Cascading Style Sheets)๋ HTML๋ก ์์ฑ๋ ๋ฌธ์์ ์คํ์ผ์ ๊พธ๋ฏธ๊ธฐ ์ํ ์คํ์ผ ์ํธ ์ธ์ด์ ๋๋ค. ์ด๊ธฐ์๋ HTML ๋ด๋ถ์ ์คํ์ผ์ ์ง์ ์์ฑํ๋ ๋ฐฉ์์ด์์ผ๋, ์น์ ๊ท๋ชจ๊ฐ ์ปค์ง๋ฉด์ ์คํ์ผ์ ๊ด๋ฆฌ์ ์ฌ์ฌ์ฉ์ฑ์ ํ์์ฑ์ด ๋๋๋์์ต๋๋ค.
3.2 CSS์ ์ญํ
- ๋์์ธ ๋ฐ ๋ ์ด์์: ์น ํ์ด์ง์ ์๊ฐ์ ์ธ ๋์์ธ๊ณผ ๋ ์ด์์์ ๋ด๋นํฉ๋๋ค.
- ๋ฐ์ํ ์น ๋์์ธ: ๋ค์ํ ๋๋ฐ์ด์ค์์ ์ผ๊ด๋ ํ๋ฉด์ ์ ๊ณตํ๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค.
3.3 CSS ์์ ์ฝ๋
body {
font-family: 'Arial', sans-serif;
background-color: #f0f0f0;
margin: 0;
padding: 0;
}
header {
background-color: #333;
color: #fff;
text-align: center;
padding: 1em 0;
}
nav {
background-color: #555;
color: #fff;
padding: 0.5em;
}
nav ul {
list-style: none;
margin: 0;
padding: 0;
display: flex;
}
nav li {
margin-right: 1em;
}
nav a {
text-decoration: none;
color: #fff;
}
section {
padding: 2em;
}
footer {
background-color: #333;
color: #fff;
text-align: center;
padding: 1em 0;
}
4. JavaScript
4.1 JavaScript์
ํ์์ฑ
JavaScript๋ ์น ํ์ด์ง๋ฅผ ๋์ ์ผ๋ก ๋ง๋ค๊ณ ์ํธ์์ฉ์ ๊ฐ๋ฅ์ผ ํ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋๋ค. ์ด๊ธฐ ์น์์๋ ์ ์ ์ธ ์ฝํ ์ธ ๊ฐ ์ฃผ๋ฅผ ์ด๋ฃจ์์ง๋ง, JavaScript์ ๋ฑ์ฅ์ผ๋ก ์ฌ์ฉ์์์ ์ค์๊ฐ ์ํธ์์ฉ์ด ๊ฐ๋ฅํด์ก์ต๋๋ค.
4.2 JavaScript์ ์ญํ
- ๋์ ์ฝํ ์ธ ์ ์ด: HTML๊ณผ CSS๋ฅผ ๋ณ๊ฒฝํ์ฌ ๋์ ์ผ๋ก ์ฝํ ์ธ ๋ฅผ ์กฐ์ํฉ๋๋ค.
- ์ด๋ฒคํธ ์ฒ๋ฆฌ: ์ฌ์ฉ์์ ํ๋์ ๋ฐ์ํ์ฌ ๋ค์ํ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
4.3 JavaScript ์์ ์ฝ๋
// ๋์ ์ผ๋ก ํ์ฌ ์๊ฐ์ ํ์ํ๋ ํจ์
function displayCurrentTime() {
const currentTime = new Date();
const hours = currentTime.getHours();
const minutes = currentTime.getMinutes();
const seconds = currentTime.getSeconds();
const formattedTime = `${hours}:${minutes}:${seconds}`;
// ์๊ฐ์ ํ์ํ๋ HTML ์์์ ์ฝ์
document.getElementById('currentTime').innerText = formattedTime;
}
// ํ์ด์ง ๋ก๋ ์ ์ด๊ธฐํ ํจ์ ํธ์ถ
window.onload = function () {
// 1์ด๋ง๋ค displayCurrentTime ํจ์ ํธ์ถ
setInterval(displayCurrentTime, 1000);
};
5. ํ์ฌ์ ํ์ฉ
5.1 ์น ๊ฐ๋ฐ์์์ ํตํฉ ํ์ฉ
HTML, CSS, JavaScript๋ ์น ๊ฐ๋ฐ์์ ํตํฉ์ ์ผ๋ก ์ฌ์ฉ๋๋ฉฐ, ํ๋์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด ์ธ ๊ธฐ์ ์ ์กฐํฉ์ผ๋ก ๊ตฌํ๋ฉ๋๋ค. ํ๋ก ํธ์๋ ํ๋ ์์ํฌ(React, Angular, Vue.js ๋ฑ)๋ฅผ ํตํด ์ด๋ค์ ๋ณด๋ค ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ํ์ฉํ ์ ์์ต๋๋ค.
5.2 SPA(Single Page Application)์ ๋ฑ์ฅ
SPA๋ ํ๋์ HTML ํ์ด์ง๋ก ๊ตฌ์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก, JavaScript๋ฅผ ์ค์ฌ์ผ๋ก ํ์ด์ง ๊ฐฑ์ ์ ๋ด๋นํฉ๋๋ค. ์ด๋ก์จ ๋ ๋์ ์ฌ์ฉ์ ๊ฒฝํ๊ณผ ๋น ๋ฅธ ์ฑ๋ฅ์ ์ ๊ณตํ ์ ์๊ฒ ๋์์ต๋๋ค.
6. ๋ง๋ฌด๋ฆฌ
HTML, CSS, JavaScript๋ ์น ๊ฐ๋ฐ์ ํต์ฌ์ด์ ์ผ์ด์ฌ์ ๋๋ค. ์๋ก ๋ณด์ํ๋ฉด์๋ ๋ ๋ฆฝ์ ์ผ๋ก ์ฌ์ฉ๋ ์ ์์ผ๋ฉฐ, ์ด๋ค์ ํจ๊ณผ์ ์ผ๋ก ๋ค๋ฃจ๋ ๊ฒ์ ๋ชจ๋ ์น ๊ฐ๋ฐ์์๊ฒ ํ์์ ์ธ ์ญ๋์ ๋๋ค. ์ต์ ์ ์น ํธ๋ ๋์ ๊ธฐ์ ๋ณํ์ ๋ฅ๋์ ์ผ๋ก ๋์ํ์ฌ, ์ฌ์ฉ์์๊ฒ ๋ฐ์ด๋ ์น ๊ฒฝํ์ ์ ๊ณตํ๋ ์น ๊ฐ๋ฐ์๋ก ์ฑ์ฅํด๋ณด์ธ์.
'IT' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ธ๋ก์ฒด์ธ๊ณผ ๋นํธ์ฝ์ธ: ๋์งํธ ํ๋ช ์ ํต์ฌ ๊ธฐ์ ๊ณผ ํํ (0) | 2024.02.17 |
---|---|
๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง ์์ง: ์น์ ํต์ฌ ๋์ ์๋ฆฌ (0) | 2024.02.14 |
Kubernetes: ํ๋์ ์ธ ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ์ ํต์ฌ (0) | 2024.02.14 |
Jenkins: ์ง์์ ํตํฉ๊ณผ ๋ฐฐํฌ์ ํต์ฌ (0) | 2024.02.14 |
Flex์ Grid: ์น ๋ ์ด์์ ๋์์ธ์ ๋ ๊ฐ์ (0) | 2024.02.14 |
๋๊ธ