본문으로 건너뛰기
웹 프로젝트 기초집LESSON 03

HTML 기초: 시맨틱 태그로 페이지 뼈대 만들기

난이도입문
예상 시간40분
선수지식2강 프로젝트 준비

3강. HTML 기초: 시맨틱 태그로 페이지 뼈대 만들기

1. 이번 강의에서 해결할 문제​

div만 반복하면 브라우저와 보조 기술이 각 영역의 목적을 알기 어렵습니다. 콘텐츠 의미에 맞는 요소로 페이지 뼈대를 만듭니다.

2. 학습 목표​

3. 핵심 개념​

header, nav, main, section, article, footer는 영역의 의미를 전달합니다. h1은 페이지 주제, h2는 주요 섹션 제목입니다. 버튼처럼 동작하면 button, 다른 위치로 이동하면 a를 씁니다.

시맨틱 요소는 이름만 다른 div가 아닙니다. 브라우저와 스크린 리더가 "여기는 주요 메뉴", "여기가 본문", "이 단위는 독립적인 프로젝트 글"이라고 파악할 수 있는 정보를 제공합니다. CSS가 없어도 문서 구조와 키보드 기본 동작이 유지되는 것이 출발점입니다.

용어 정리​

요소/용어역할포트폴리오에서 사용할 곳
랜드마크페이지의 큰 탐색 영역header, nav, main, footer
section하나의 주제로 묶인 문서 구역소개, 프로젝트, 연락처
article따로 떼어도 의미 있는 독립 콘텐츠프로젝트 카드 한 개
제목 계층콘텐츠의 포함 관계를 나타내는 h1~h6페이지 h1 → 섹션 h2 → 카드 h3
앵커 링크다른 URL 또는 같은 문서 위치로 이동<a href="#projects">
id한 문서에서 요소를 유일하게 식별id="projects"

가장 작은 예제로 시작하기​

<nav aria-label="주요 메뉴">
<a href="#projects">프로젝트</a>
</nav>

<main>
<section id="projects">
<h2>프로젝트</h2>
</section>
</main>

링크를 누르면 브라우저가 id="projects"인 요소로 이동합니다. JavaScript가 없어도 동작합니다. aria-label은 화면에 별도 글자를 추가하지 않지만 보조 기술에서 이 내비게이션의 목적을 구분합니다.

4. 단계별 실습​

HTML · 파일 경로: game-dev-portfolio/index.html의 body 교체

교체 전 기존 head의 문자 인코딩, viewport, CSS와 defer 스크립트 연결은 유지합니다. 이번 단계는 화면 내용을 담는 body만 의미 구조로 바꾸는 작업입니다.

game-dev-portfolio/index.html
<body>
<a class="skip-link" href="#main">본문 바로가기</a>
<header class="site-header">
<a class="brand" href="#home">김개발</a>
<nav aria-label="주요 메뉴">
<a href="#about">소개</a>
<a href="#projects">프로젝트</a>
<a href="#contact">연락처</a>
</nav>
</header>
<main id="main">
<section id="home"><h1>플레이 경험을 코드로 만드는 게임 개발자</h1></section>
<section id="about"><h2>소개</h2><p>Unity와 Unreal을 공부합니다.</p></section>
<section id="projects">
<h2>프로젝트</h2>
<article><h3>Parcel Rush</h3><p>Unity 2D 분류 게임</p></article>
</section>
<section id="contact"><h2>연락처</h2><p>문의 폼 준비 중</p></section>
</main>
<footer><p>© 2026 김개발</p></footer>
</body>

중요한 줄을 따라가기​

  1. skip-link는 키보드 사용자가 반복 메뉴를 건너뛰고 main으로 바로 이동하게 합니다.
  2. nav aria-label="주요 메뉴"는 여러 내비게이션이 생겨도 목적을 구분할 이름을 제공합니다.
  3. href="#about"은 같은 문서의 id="about"과 연결됩니다. 철자와 대소문자가 일치해야 합니다.
  4. main은 페이지의 핵심 콘텐츠를 한 곳에만 표시합니다.
  5. 각 section에는 그 구역을 설명하는 h1 또는 h2가 있습니다.
  6. article은 한 프로젝트 소개를 독립 단위로 묶고 내부 h3가 카드 제목이 됩니다.
  7. footer에는 페이지나 사이트의 보조 정보를 둡니다.

실행 결과와 동작 흐름​

CSS를 잠시 꺼도 김개발, 대표 소개, 소개·프로젝트·연락처, 저작권 문구 순서로 읽을 수 있어야 합니다. Tab 키의 첫 포커스는 본문 바로가기 링크이고, 메뉴의 프로젝트를 실행하면 URL 끝이 #projects로 바뀌며 프로젝트 섹션으로 이동합니다.

접근성 트리에서는 대략 다음 계층을 확인할 수 있습니다.

banner
navigation "주요 메뉴"
main
heading level 1
heading level 2 "소개"
heading level 2 "프로젝트"
article → heading level 3 "Parcel Rush"
heading level 2 "연락처"
contentinfo

기존 <head>의 CSS와 defer 스크립트 연결은 유지합니다. 개발자 도구 확인: Elements의 Accessibility 또는 접근성 트리에서 navigation, main, 제목 계층을 확인하고 각 메뉴 링크가 올바른 섹션으로 이동하는지 봅니다.

5. 코드가 동작하는 이유​

랜드마크 요소는 문서의 큰 구역을 브라우저에 전달합니다. href="#projects"는 같은 문서에서 id="projects"인 요소로 이동합니다. 올바른 요소는 별도 JavaScript 없이 키보드와 보조 기술의 기본 동작을 제공합니다.

6. 자주 하는 실수와 해결법​

7. 직접 실습​

8. 이해 점검 질문 3개​

9. 핵심 요약​

다음 강의 연결​

구조가 의미만으로 읽히는 상태를 만들었습니다. 4강. CSS 기초에서 이 구조는 유지한 채 선택자·상속·박스 모델로 화면 표현을 추가합니다.

MINI QUIZ

HTML 기초: 시맨틱 태그로 페이지 뼈대 만들기 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“HTML 기초: 시맨틱 태그로 페이지 뼈대 만들기” 내용을 실제 작업에 적용한 설명으로 가장 알맞은 것은 무엇인가요?
  2. 문제 2“HTML 기초: 시맨틱 태그로 페이지 뼈대 만들기” 실습 중 ‘중복 id’ 상황을 발견했습니다. 본문과 일치하는 설명은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

3강. HTML 기초: 시맨틱 태그로 페이지 뼈대 만들기 미완료 상태