🏷️ HTML (HyperText Markup Language)
HTML은 웹 페이지의 뼈대와 구조를 정의하는 마크업 언어로, 화면에 어떤 정보가 어떤 의미를 가지는지 브라우저와 사용자에게 알려줍니다.
1. HTML의 역할
- 문서 구조 정의: 제목, 본문, 목록, 표, 이미지 등 웹 페이지를 이루는 요소들을 계층 구조로 배치합니다.
-
의미(시맨틱) 표현:
<header>,<main>,<article>처럼 요소의 역할을 드러내는 태그를 사용해 문서의 의미를 명확히 합니다. - 브라우저와의 약속: 브라우저는 HTML을 해석해서 화면에 표시하므로, 올바른 태그 구조가 곧 올바른 화면과 접근성으로 이어집니다.
2. 기본 용어 정리
-
태그(Tag):
<요소명>또는<요소명>내용</요소명>형태로 작성되며 요소의 종류와 역할을 나타냅니다. 예:<h1>,<p> - 요소(Element): 시작 태그, 종료 태그, 그리고 그 안의 콘텐츠 전체를 통틀어 요소라고 부릅니다.
-
속성(Attribute):
태그에 추가 정보를 부여합니다.
예:
<a href="https://example.com">링크</a>,<img src="photo.png" alt="프로필 사진">
3. 자주 사용하는 태그
| 태그 | 용도 | 비고 / 사용 팁 |
|---|---|---|
<h1> ~ <h6>
|
제목(Heading)을 나타내는 태그 |
페이지당 <h1>은 보통 1개만 사용하고,
큰 제목에서 작은 제목 순으로 계층 구조를 만듭니다.
|
<p> |
문단(Paragraph)을 표현 | 텍스트를 문단 단위로 나누어 가독성을 높입니다. |
<a> |
하이퍼링크(Anchor) |
href 속성으로 이동할 주소를 지정합니다.
예: <a href="https://example.com">공식 사이트</a>
|
<div>, <span> |
레이아웃/스타일링을 위한 컨테이너 |
<div>는 블록 요소, <span>은 인라인 요소로
주로 CSS와 함께 사용합니다.
|
4. 기본 HTML 문서 구조 예시
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>나의 첫 웹페이지</title>
</head>
<body>
<h1>안녕하세요!</h1>
<p>웹프로그래밍 기초를 공부하는 중입니다.</p>
</body>
</html>
🎨 CSS (Cascading Style Sheets)
CSS는 HTML로 구성한 구조에 색상, 여백, 글꼴, 레이아웃을 적용하여 웹 페이지를 시각적으로 꾸며 주는 스타일 시트 언어입니다.
1. CSS의 기본 개념
- 내용과 디자인의 분리: HTML은 무엇을 보여줄지, CSS는 어떻게 보여줄지를 담당합니다.
- “Cascading(계단식)”: 여러 스타일이 동시에 적용될 때 우선순위(Selector, Specificity, 선언 위치 등)에 따라 최종 스타일이 결정되는 방식을 의미합니다.
- 반응형 디자인: 화면 크기에 따라 레이아웃을 조정하는 미디어 쿼리도 CSS의 중요한 기능입니다.
2. 기본 문법 구조
CSS는 다음과 같은 형식으로 작성합니다.
선택자(selector) {
속성(property): 값(value);
}
예시:
.card {
width: 260px;
padding: 16px;
background-color: #ffffff;
border-radius: 8px;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.06);
}
3. 선택자의 종류
-
요소 선택자:
p,div,h1→ 문서 안의 해당 태그 전체에 스타일이 적용됩니다. -
클래스 선택자:
.note-content→ 재사용성이 높고 가장 많이 사용되는 방식입니다. -
ID 선택자:
#header→ 문서 내에서 유일한 요소에 사용하며, 우선순위가 높습니다. -
자식/후손 선택자:
.note-content p,ul > li→ 특정 구조 안에 있는 요소에만 스타일을 적용할 수 있습니다.
4. 실무에서 자주 쓰이는 스타일 속성
- 레이아웃:
display,flex,grid,position - 박스 모델:
margin,padding,border,box-sizing - 타이포그래피:
font-size,font-weight,line-height - 색상/배경:
color,background-color,background-image
5. 간단한 카드 레이아웃 예시
.card-list {
display: flex;
gap: 16px;
}
.card {
flex: 1;
padding: 20px;
border-radius: 10px;
background-color: #ffffff;
}
🚀 JavaScript
JavaScript는 웹 페이지에 동작, 이벤트, 상호작용을 추가하는 프로그래밍 언어로, HTML·CSS와 함께 프론트엔드의 핵심을 이룹니다.
1. JavaScript의 주요 역할
- DOM 조작: HTML 문서를 객체 모델(DOM)로 바라보고 요소를 선택·추가·삭제·수정합니다. 예: 버튼을 눌렀을 때 문구 변경, 모달 창 열기 등
- 이벤트 처리: 클릭, 키보드 입력, 스크롤 등 사용자 행동에 반응하여 코드가 실행됩니다.
-
비동기 통신:
fetchAPI 등을 사용해 서버와 데이터를 주고받으면서 페이지 전체를 새로고침하지 않고도 내용을 갱신할 수 있습니다.
2. 기본 문법 (변수, 함수)
// 변수 선언
const userName = "Student"; // 상수(재할당 불가)
let count = 0; // 재할당 가능한 변수
// 함수 선언
function greet(name) {
console.log(`Hello, ${name}!`);
}
greet(userName); // "Hello, Student!" 출력
3. DOM 선택과 이벤트 예시
// HTML: <button id="login-btn">로그인</button>
// 1. 요소 선택
const loginButton = document.getElementById("login-btn");
// 2. 클릭 이벤트 등록
loginButton.addEventListener("click", () => {
alert("로그인 버튼이 클릭되었습니다!");
});
4. 탭 전환 로직(현재 페이지에서 실제로 사용 중)
document.addEventListener("DOMContentLoaded", () => {
const tabButtons = document.querySelectorAll(".tab-button");
const conceptSections = document.querySelectorAll(".concept-section");
const switchTab = (conceptId) => {
tabButtons.forEach(btn => btn.classList.remove("active"));
conceptSections.forEach(sec => sec.classList.remove("active"));
document
.querySelector(`.tab-button[data-concept="${conceptId}"]`)
?.classList.add("active");
document
.getElementById(conceptId)
?.classList.add("active");
};
tabButtons.forEach(button => {
button.addEventListener("click", () => {
switchTab(button.getAttribute("data-concept"));
});
});
switchTab("html");
});