HTML, CSS, JS의 기본 개념, 용도, 사용방법, 관계

  • HTML (HyperText Markup Language)
    - HTML은 웹페이지의 뼈대를 만드는 언어입니다.
    - 텍스트, 이미지, 링크, 버튼 등 페이지에 보이는 요소들을 배치하고 구조를 잡는 역할을 하며, 집을 짓는다면 벽과 기둥, 창문 같은 부분이 HTML입니다.
    - 예를 들어, 글을 쓸 때 제목을 정하거나 문단을 나누는 것도 HTML 태그를 이용하며, 이미지를 넣거나, 다른 페이지로 이동하는 링크를 만드는 것도 모두 HTML로 작성합니다.
  • CSS (Cascading Style Sheets)
    - CSS는 HTML로 만들어진 구조에 디자인을 입히는 역할을 합니다.
    - 색상, 글씨 크기, 글꼴, 여백, 레이아웃 등 시각적으로 보이는 모든 요소를 꾸며주는 스타일 시트 언어입니다.
    - 예를 들어, 배경을 파란색으로 바꾸거나 버튼을 둥글게 만들고, 글자를 가운데 정렬하는 등의 작업이 CSS를 통해 이루어집니다.
    - CSS 덕분에 웹페이지가 더 아름답고 보기 좋게 바뀌며, 사용자에게 좋은 인상을 줄 수 있습니다.
  • JavaScript
    - JavaScript웹페이지에 동적인 기능을 추가하는 프로그래밍 언어입니다.
    - 사용자의 행동(버튼 클릭, 입력 등)에 따라 페이지가 반응하도록 만들어줍니다.
    - 예를 들어, 버튼을 클릭했을 때 알림 창이 뜨거나, 입력한 값을 검사하는 기능, 페이지 내용이 실시간으로 변경되는 인터랙션 등이 모두 JavaScript의 역할입니다.
    - JS가 없으면 웹페이지는 단순히 정보를 보여주는 정적인 페이지에 머무르지만, JS를 사용하면 살아있는 웹페이지를 만들 수 있습니다.
구분 HTML CSS JavaScript
역할 구조 (Structure) 스타일링 (Design) 동작 (Interaction)
용도 웹페이지의 뼈대를 만든다 (텍스트, 이미지, 링크 등) 웹페이지를 꾸민다 (색상, 크기, 배치 등) 웹페이지를 동적으로 만든다 (버튼 클릭 시 이벤트, 데이터 처리 등)
작성 위치 .html 파일 .css 파일 .js 파일
<html>, <body> 내부에 작성 <style> 태그 안 <script> 태그 안
  link로 연결 src로 연결
관계 HTML이 기본 골격, CSS가 꾸밈, JS가 동작을 부여하는 관계    
세 가지가 함께 웹페이지를 완성함  

 

  • 웹페이지 제작에 필요한 기본적인 HTML 태그들

태그 설명 예시
<html> HTML 문서의 루트 <html> ... </html>
<head> 메타데이터, 외부 파일 연결 <head> <title>문서 제목</title> </head>
<body> 실제 페이지에 보이는 내용 <body> ... </body>
<h1> ~ <h6> 제목 (숫자가 작을수록 크다) <h1>큰 제목</h1>
<p> 문단 (Paragraph) <p>문장입니다.</p>
<a> 링크 (Anchor) 클릭
<img> 이미지 삽입 <img src="image.jpg" alt="설명">
<ul>, <ol>, <li> 목록 (순서 없는/있는) <ul><li>아이템</li></ul>
<table> <table><tr><td>셀</td></tr></table>
<div> 블록 영역 그룹화 <div>내용</div>
<span> 인라인 영역 그룹화 <span>내용</span>
<form>, <input> 입력 폼 <form><input type="text"></form>
<button> 버튼 <button>클릭</button>

 

  • CSS의 기본적인 문법과 속성들
    1. 주요 선택자
       - * : 모든 요소
       - 태그명 : 특정 태그
       - .클래스명 : 클래스 선택
       - #아이디명 : 아이디 선택
    2. 주요 속성들
    속성 설명 예시
    color 글자 색상 color: red;
    background-color 배경 색상 background-color: yellow;
    font-size 글자 크기 font-size: 16px;
    margin 바깥 여백 margin: 10px;
    padding 안쪽 여백 padding: 10px;
    border 테두리 border: 1px solid black;
    width, height 너비, 높이 width: 100px; height: 50px;
    display 요소 표시 방식 display: block;
    flex, grid 레이아웃 display: flex;

    3. 
    문법
선택자 {
  속성: 값;
  속성: 값;
}

 

 

  • JS의 기본적인 문법과 함수들
    1. 주요 기능 및 함수

    기능 설명 예시
    변수 선언 데이터를 저장 let name = "철수";
    함수 선언 코드 블록 저장 후 실행 function sayHi() { alert("안녕"); }
    조건문 분기 처리 if (a > 5) { ... } else { ... }
    반복문 반복 실행 for (let i = 0; i < 5; i++) { ... }
    이벤트 처리 사용자 상호작용 감지 element.addEventListener("click", 함수);
    DOM 조작 HTML 요소 변경 document.querySelector("p").textContent = "변경된 내용";
    내장 함수 alert(), console.log(), prompt() 등  

    2. 기본 문법
// 변수
let a = 10;
const b = 20;

// 함수
function greet() {
  console.log("안녕하세요!");
}

// 이벤트
document.querySelector("button").addEventListener("click", greet);

 

 


다음을 이해해 봅시다.

<!-- HTML 문서의 유형을 선언 (HTML5 문서임을 브라우저에 알림) -->
<!DOCTYPE html>

<!-- HTML 문서의 시작 -->
<html>

<!-- 문서의 메타데이터(스타일, 제목, 스크립트 등)를 담는 head 부분 -->
<head>
    <!-- 문서 내부에 CSS 스타일을 정의 -->
    <style>
        /* body 태그의 배경색을 연한 파란색으로 설정 */
        body {background-color: powderblue;}
        /* h1 태그(제목)의 글자색을 파란색으로 설정 */
        h1   {color: blue;}
        /* p 태그(문단)의 글자색을 빨간색으로 설정 */
        p    {color: red;}
    </style>
</head>

<!-- 문서의 본문 시작 -->
<body>

<!-- h1 태그: 큰 제목 표시 -->
<h1>h1태그</h1>

<!-- p 태그: 단락(문장) 표시 -->
<p>p 태그</p>

<!-- 버튼 생성, 클릭하면 changeColor() 함수 실행 -->
<button onclick="changeColor()">배경색 변경</button>

<!-- JavaScript 코드를 작성하는 영역 -->
<script>
    // changeColor 함수 정의
    function changeColor() {
        // 문서의 body 배경색을 노란색으로 변경
        document.body.style.backgroundColor = "yellow";
    }
</script>

<!-- 문서의 본문 종료 -->
</body>

<!-- HTML 문서 종료 -->
</html>

 

실행화면

<!-- HTML5 문서라는 것을 선언 -->
<!DOCTYPE html>

<!-- HTML 문서의 시작 -->
<html>

<!-- 문서의 본문 시작 -->
<body>

<!-- h2 태그: 중간 크기의 제목을 표시 -->
<h2>배열 이해하기</h2>

<!-- p 태그: id="demo" 인 문단 -->
<p id="demo"></p>

<!-- JavaScript 코드를 작성하는 영역 -->
<script>
    // 'cars'라는 이름의 배열을 선언하고, 문자열 요소 3개를 저장
    var cars = ["Saab", "Volvo", "BMW"];

    // id가 "demo"인 HTML 요소를 찾아서, cars 배열의 내용을 표시
    document.getElementById("demo").innerHTML = cars;
    // 결과: Saab,Volvo,BMW (배열 요소가 쉼표로 구분되어 출력됨)
</script>

<!-- 문서의 본문 종료 -->
</body>

<!-- HTML 문서 종료 -->
</html>

 

실행화면

 

 


실습

  • 자신을 소개하는 페이지를 작성해 봅시다(형식 자유)
<!-- HTML5 문서임을 선언 -->
<!DOCTYPE html>
<html> <!-- HTML 문서의 시작 -->

<head> <!-- 문서의 설정 및 스타일을 지정하는 부분 -->
    <title>나의 소개</title> <!-- 브라우저 탭에 표시될 제목 -->
    <style> <!-- CSS 스타일 정의 시작 -->
        body { /* body 태그 전체에 적용할 스타일 */
            background-color: #f0f8ff; /* 배경 색을 연한 파란색으로 지정 */
            font-family: Arial, sans-serif; /* 글꼴을 Arial 또는 sans-serif로 지정 */
            padding: 20px; /* 바깥 여백을 20픽셀로 지정 */
        }
        h1 { /* h1 태그에 적용할 스타일 */
            color: #3333cc; /* 글자 색을 파란 계열로 지정 */
        }
        p { /* p 태그(문단)에 적용할 스타일 */
            color: #000000; /* 글자 색을 검정으로 지정 */
            font-size: 18px; /* 글자 크기를 18픽셀로 지정 */
            line-height: 1.6; /* 줄 간격을 1.6으로 지정 */
        }
        button { /* 버튼에 적용할 스타일 */
            margin-top: 20px; /* 버튼 위 여백 20픽셀 */
            padding: 10px 20px; /* 안쪽 여백 위아래 10픽셀, 좌우 20픽셀 */
            background-color: #4CAF50; /* 배경 색을 녹색으로 지정 */
            color: white; /* 글자 색을 흰색으로 지정 */
            border: none; /* 테두리를 없앰 */
            border-radius: 8px; /* 모서리를 둥글게 8픽셀 */
            cursor: pointer; /* 마우스 올릴 때 포인터 모양으로 변경 */
        }
        button:hover { /* 버튼에 마우스를 올렸을 때 스타일 */
            background-color: #45a049; /* 조금 더 짙은 녹색으로 변경 */
        }
    </style> <!-- CSS 스타일 정의 끝 -->
</head> <!-- head 영역 끝 -->

<body> <!-- 웹페이지 본문 시작 -->

    <h1>안녕하세요! 👋</h1> <!-- 큰 제목으로 인사말 표시 -->
    
    <p>저는 보안관제로 근무중이며,모의해킹으로 이직을 하기 위해<br> 
       <strong>ELITE HACKER Bootcamp 4th</strong>를 배우고 있는 직장인입니다.</p> 
       <!-- 본문 소개 문장, <strong>은 강조 (굵게), <br>은 줄바꿈 -->
       
    <p>진행중인 <strong>pre.Web</strong>, <strong>pre.Rev</strong> 모두에 관심이 있어요.</p> 
    <!-- pre.Web, pre.Rev 과정에 관심 있다는 소개 -->

    <p><strong>pre.Web</strong> 코스를 다 끝내고 나면 <strong>pre.Rev</strong> 코스도 도전할 예정입니다!</p> 
    <!-- pre.Web 끝난 후 pre.Rev 도전할 계획 -->

    <p>취미는 🎮 게임, 🎤 노래 부르기 입니다!</p> 
    <!-- 취미 소개 -->

    <button onclick="alert('응원합니다! 화이팅!')">응원 받기</button> 
    <!-- 버튼 클릭 시 "응원합니다! 화이팅!" 알림이 뜨는 기능 -->

</body> <!-- 웹페이지 본문 끝 -->

</html> <!-- HTML 문서 끝 -->

 

실행결과

 

  • 간단한 계산기 페이지 만들기

<!-- HTML5 문서임을 선언 -->
<!DOCTYPE html>

<html>
<head>
	<!-- 브라우저 탭 제목을 "간단한 계산기"로 설정 -->
    <title>간단한 계산기</title>
</head>
<body>
	<!-- 페이지의 메인 제목 -->
    <h1>간단한 계산기</h1>

    <!-- 사용자가 계산식을 입력하는 텍스트 박스 -->
    <input type="text" id="expression" placeholder="계산식을 입력하세요">

    <!-- 버튼 클릭 시 calculate() 함수를 호출하여 계산 실행 -->
    <button onclick="calculate()">계산!</button>

    <!-- 결과가 출력될 영역 -->
    <p>Result: <span id="result"></span></p>

    <script>
        // 계산을 수행하는 함수 정의
        function calculate() {
            // 사용자가 입력한 수식을 가져옴
            var expression = document.getElementById("expression").value;

            // eval() 함수를 이용하여 수식 계산
            var result = eval(expression);

            // 계산된 결과를 HTML의 result 영역에 출력
            document.getElementById("result").innerText = result;
        }
    </script>

</body>
</html>

 

실행결과

+ Recent posts