2주차: HTML 시맨틱

의미있는 HTML 구조를 설계하고 접근성을 고려한 마크업을 학습합니다

학습 목표

🏗️

시맨틱 태그 이해

HTML5 시맨틱 태그의 의미와 올바른 사용법을 학습합니다

접근성 기초

웹 접근성의 중요성과 기본 원칙을 이해합니다

📋

목록과 링크

다양한 목록 태그와 링크 요소의 활용법을 익힙니다

🖼️

미디어 요소

이미지와 멀티미디어 요소의 적절한 사용법을 배웁니다

강의 내용

1. HTML5 시맨틱 태그

시맨틱 태그는 HTML 요소의 의미를 명확하게 정의하여 문서 구조를 더 명확하게 만들고, 검색 엔진과 스크린 리더가 내용을 더 잘 이해할 수 있게 합니다.

주요 시맨틱 태그

<header>

페이지나 섹션의 헤더 영역을 나타냅니다. 보통 제목, 로고, 네비게이션 등을 포함합니다.

<nav>

네비게이션 링크들을 그룹화하는 영역입니다. 주 메뉴, 사이드바 메뉴 등에 사용됩니다.

<main>

페이지의 주요 콘텐츠 영역을 나타냅니다. 한 페이지에 하나만 사용해야 합니다.

<article>

독립적인 콘텐츠 블록입니다. 블로그 포스트, 뉴스 기사 등에 사용됩니다.

<section>

문서의 구획을 나타냅니다. 주제별로 내용을 그룹화할 때 사용합니다.

<aside>

본문과 간접적으로 관련된 내용입니다. 사이드바, 광고, 관련 링크 등에 사용됩니다.

<footer>

페이지나 섹션의 푸터 영역입니다. 저작권 정보, 연락처 등을 포함합니다.

시맨틱 HTML 구조 예제

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>시맨틱 웹페이지</title>
</head>
<body>
    <header>
        <h1>웹사이트 제목</h1>
        <nav>
            <ul>
                <li><a href="#home">홈</a></li>
                <li><a href="#about">소개</a></li>
                <li><a href="#contact">연락처</a></li>
            </ul>
        </nav>
    </header>

    <main>
        <article>
            <h2>기사 제목</h2>
            <p>기사 내용...</p>
        </article>
        
        <section>
            <h2>추가 정보</h2>
            <p>섹션 내용...</p>
        </section>
    </main>

    <aside>
        <h3>관련 링크</h3>
        <ul>
            <li><a href="#link1">링크 1</a></li>
            <li><a href="#link2">링크 2</a></li>
        </ul>
    </aside>

    <footer>
        <p>© 2025 웹사이트명. 모든 권리 보유.</p>
    </footer>
</body>
</html>

2. 목록 태그 (Lists)

HTML에서는 다양한 형태의 목록을 생성할 수 있습니다.

순서가 없는 목록 (Unordered List)

<ul>
    <li>첫 번째 항목</li>
    <li>두 번째 항목</li>
    <li>세 번째 항목</li>
</ul>
  • 첫 번째 항목
  • 두 번째 항목
  • 세 번째 항목

순서가 있는 목록 (Ordered List)

<ol>
    <li>첫 번째 단계</li>
    <li>두 번째 단계</li>
    <li>세 번째 단계</li>
</ol>
  1. 첫 번째 단계
  2. 두 번째 단계
  3. 세 번째 단계

정의 목록 (Description List)

<dl>
    <dt>HTML</dt>
    <dd>웹페이지의 구조를 정의하는 마크업 언어</dd>
    
    <dt>CSS</dt>
    <dd>웹페이지의 스타일을 지정하는 스타일시트 언어</dd>
</dl>
HTML
웹페이지의 구조를 정의하는 마크업 언어
CSS
웹페이지의 스타일을 지정하는 스타일시트 언어

3. 링크와 네비게이션

웹의 핵심은 하이퍼링크를 통한 연결입니다. 다양한 형태의 링크를 만들 수 있습니다.

링크 유형별 사용법

4. 이미지와 접근성

이미지는 웹페이지의 중요한 요소입니다. 접근성을 고려하여 적절한 대체 텍스트를 제공해야 합니다.

이미지 태그의 올바른 사용법

<!-- 의미있는 이미지 -->
<img src="chart.png" alt="2025년 월별 매출 증가 그래프" 
     width="600" height="400">

<!-- 장식용 이미지 -->
<img src="decoration.png" alt="" role="presentation">

<!-- figure와 figcaption 사용 -->
<figure>
    <img src="diagram.png" alt="웹 개발 프로세스 다이어그램">
    <figcaption>그림 1: 웹 개발의 주요 단계</figcaption>
</figure>

반응형 이미지

<picture>
    <source media="(min-width: 800px)" srcset="large-image.jpg">
    <source media="(min-width: 400px)" srcset="medium-image.jpg">
    <img src="small-image.jpg" alt="반응형 이미지">
</picture>

5. 웹 접근성 기초

웹 접근성은 모든 사용자가 웹 콘텐츠를 사용할 수 있도록 하는 것입니다.

ARIA 속성

aria-label
<button aria-label="메뉴 열기">☰</button>
aria-describedby
<input type="password" aria-describedby="pwd-help">
<div id="pwd-help">비밀번호는 8자 이상이어야 합니다.</div>
role 속성
<div role="alert">오류가 발생했습니다!</div>
<nav role="navigation" aria-label="주 메뉴">
    <ul>...</ul>
</nav>

실습 활동

실습 1: 시맨틱 페이지 레이아웃 만들기

목표: 시맨틱 태그를 사용하여 의미있는 웹페이지 구조를 생성합니다.

요구사항:

  • header, nav, main, article, section, aside, footer 태그 사용
  • 네비게이션 메뉴 구현 (ul, li 태그 활용)
  • 최소 2개의 article과 1개의 aside 포함
  • 적절한 제목 태그 (h1-h6) 계층 구조
<!-- 예시 구조 -->
<header>
    <h1>내 블로그</h1>
    <nav>
        <ul>
            <li><a href="#home">홈</a></li>
            <li><a href="#blog">블로그</a></li>
            <li><a href="#about">소개</a></li>
        </ul>
    </nav>
</header>

<main>
    <article>
        <h2>첫 번째 포스트</h2>
        <p>포스트 내용...</p>
    </article>
</main>
GitHub Copilot

실습 2: Copilot과 함께 시맨틱 태그 추천받기

목표: GitHub Copilot을 활용하여 적절한 시맨틱 태그를 추천받고 검증합니다.

Copilot 활용 방법:

  • 주석으로 콘텐츠의 의미 설명하기
  • 시맨틱 태그의 적절한 사용 제안 받기
  • 접근성 속성 자동 완성하기
💡 Copilot 프롬프트 예시:
  • "블로그 포스트를 위한 시맨틱 HTML 구조"
  • "접근 가능한 네비게이션 메뉴"
  • "이미지에 적절한 alt 텍스트 생성"

실습 3: 접근 가능한 이미지 갤러리

목표: 접근성을 고려한 이미지 갤러리를 만듭니다.

구현 내용:

  • figure와 figcaption 태그 활용
  • 의미있는 alt 텍스트 작성
  • ARIA 속성으로 접근성 향상
  • 키보드 네비게이션 고려
<section aria-labelledby="gallery-title">
    <h2 id="gallery-title">프로젝트 갤러리</h2>
    
    <figure>
        <img src="project1.jpg" 
             alt="React로 만든 Todo 앱 스크린샷, 완료된 할 일 3개와 진행중인 할 일 2개가 표시됨">
        <figcaption>프로젝트 1: React Todo 앱</figcaption>
    </figure>
    
    <figure>
        <img src="project2.jpg" 
             alt="Node.js API 서버 구조 다이어그램, 클라이언트-서버-데이터베이스 연결 관계 표시">
        <figcaption>프로젝트 2: REST API 서버</figcaption>
    </figure>
</section>

주차 요약

핵심 포인트

  • 시맨틱 태그로 의미있는 HTML 구조 설계
  • header, nav, main, article, section, aside, footer 활용
  • 목록 태그(ul, ol, dl)의 적절한 사용
  • 접근성을 고려한 이미지와 링크 작성
  • ARIA 속성으로 접근성 향상

다음 주 미리보기

3주차에서는 CSS의 기초를 학습합니다. 선택자, 색상, 폰트, 박스 모델 등 기본적인 스타일링 방법을 다룰 예정입니다.