๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
IT

์›น ๊ฐœ๋ฐœ์˜ ์‚ผ์ด์‚ฌ: HTML, CSS, JavaScript

by ๐Ÿ’ฒ๐ŸŽตโœ–๏ธโœ”๏ธโ˜ผ 2024. 2. 14.
728x90

์›น ๊ฐœ๋ฐœ์˜ ์‚ผ์ด์‚ฌ: 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>&copy; 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>&copy; 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๋Š” ์›น ๊ฐœ๋ฐœ์˜ ํ•ต์‹ฌ์ด์ž ์‚ผ์ด์‚ฌ์ž…๋‹ˆ๋‹ค. ์„œ๋กœ ๋ณด์™„ํ•˜๋ฉด์„œ๋„ ๋…๋ฆฝ์ ์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋“ค์„ ํšจ๊ณผ์ ์œผ๋กœ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์€ ๋ชจ๋“  ์›น ๊ฐœ๋ฐœ์ž์—๊ฒŒ ํ•„์ˆ˜์ ์ธ ์—ญ๋Ÿ‰์ž…๋‹ˆ๋‹ค. ์ตœ์‹ ์˜ ์›น ํŠธ๋ Œ๋“œ์™€ ๊ธฐ์ˆ  ๋ณ€ํ™”์— ๋Šฅ๋™์ ์œผ๋กœ ๋Œ€์‘ํ•˜์—ฌ, ์‚ฌ์šฉ์ž์—๊ฒŒ ๋›ฐ์–ด๋‚œ ์›น ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๋Š” ์›น ๊ฐœ๋ฐœ์ž๋กœ ์„ฑ์žฅํ•ด๋ณด์„ธ์š”.

๋Œ“๊ธ€