Fast Blinking Hello Kitty
 

[🥸HTML/CSS]📝HTML구조와 시맨틱 태그 종류(➰당근마켓, 네이버 분석)

📍 개요

◾ WEB과 HTML의 개념을 학습하고 여러 태그를 사용하여 실습하는 시간을 가져보았습니다.
◾ <form>태그 요소와 CSS를 활용하여 게시글 작성, 회원가입, 로그인, 항공권 검색 메서드를 구현하였습니다.


💡 WEB, HTML 정의

✅ HTML
문서가 화면에 표시될 수 있게 해주는 마크업 언어이며 계층적 트리 구조를 가집니다.

✅ WEB(World Wide Web)
웹은 수많은 문서와 리소스가 서로 연결된 네트워크로
HTML 문서, 이미지, 비디오 등 다양한 형태로 이루어져 있습니다.

✅  웹 브라우저
HTML 문서를 읽고 해석하여 사용자에게 화면에 표시해주는 소프트웨어입니다.
웹 브라우저는 웹 페이지의 HTML, CSS, JavaScript 등을 처리하여 페이지의 구조와 디자인을 화면에 나타냅니다.

 

⭐ HTML(Hypertext Markup Language) 구조

<!DOCTYPE html>
<html lang="ko">
	<head>
    	<meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        // 브라우저 너비를 기기에 맞추어 표시(모바일, 웹)
    	
        <link rel="stylesheet" href="파일명.css"> // 스타일시트 적용
 		<title>웹브라우저 상단 탭 제목</title>
	</head>
	<body>
	</body>
</html>

1️⃣ 시맨틱 태그란?

사전적으로 의미가 있는 태그라고 정의되어 있지만 무슨 말인지 이해가 가지 않는 분들이 계실겁니다.

시맨틱 태그는 웹 개발을 할 때 HTML 태그 자체만으로도 의미를 지니고 있다는 개념인데요.

🥸 시맨틱 태그의 이해를 돕기 위해 네이버와 당근마켓 홈페이지로 비유하여 설명하겠습니다!


☝️

네이버 시맨틱 태그 분석


피드백 받기 전


나.. 완전히 틀렸었구나!😅


강사님 피드백 반영


✌️

당근마켓 시맨틱 태그 분석


🧐 즉, 페이지의 구조와 내용을 더 명확히 표현할 수 있도록 설계된 태그를 말합니다.
조금 더 와 닿게 설명해보자면 예를 들어, <header>는 페이지의 상단,
<footer>는 하단 부분을 나타낸다는 것을 바로 알 수 있습니다.
반면 시맨틱 하지 않은 태그라는 것은 이 태그가 무엇을 의미하지 모호한 태그들을 말합니다.

 


각 태그들에 대해서 어떤 상황에서 사용되는지 아래에서 자세히 살펴보도록 하겠습니다.

 

2️⃣ 시맨틱 태그 종류

태그 설명 사용 예시
<header> 웹 페이지의 상단에 위치 ✔️ 사이트 제목, 로고, 검색창, 내비게이션 요소 포함
❗혼동주의! <head> 태그는 문서의 메타데이터를 포함하는 영역
<nav> 내비게이션 링크를 모아놓은 영역 ✔️ 현재페이지에서 다른 요소로 이동하거나
다른 페이지로 이동할 때 사용
💭 메뉴, 목차, 브레드크럼
<main> 문서의 주요 콘텐츠를 정의 ✔️ 페이지의 핵심 내용 부분
❗웹페아지에서 1번만 사용 가능
❗인터넷 익스플로러 지원 불가 👉🏻 <div> 태그로 대체
<section> 관련된 콘텐츠를 그룹화 ✔️ 주제나 컨텐츠를 구분
💭 뉴스의 사회면과 연예면
<article> 독립적으로 배포 가능한 콘텐츠를 정의 ✔️ 뉴스 기사, 블로그 포스트, 포럼 게시물
<aside> 문서의 주요 콘텐츠와
간접적으로 관련된 내용
✔️ 사이드바, 광고, 부가 정보
<footer> 웹 페이지 하단에 위치 ✔️ 회사 정보, 저작권 정보, 관련 문서

 


🙆‍♀️ 올바른 시맨틱 태그

header, nav, body, main, section, article, footer 태그를 적절하게 사용한 예제입니다.

각각 페이지의 의미를 명확히 나타낸다는 것을 알 수 있습니다.

<!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>
        <section>
            <p>본문의 주제나 여러 내용을 구분</p>
        </section>

        <article>
            <p>본문의 주요 내용</p>
        </article>
    </main>

    <footer>
        <p>작성자, 저작권 정보, 관련 문서</p>
    </footer>
</body>
</html>

 

🙅‍♀️ 올바르지 않은 시맨틱 태그

해당 예제에서는 모든 구조를 <div> 태그로 감싸서 표현했습니다.

어떤 내용이 무엇을 의미하는지 전혀 직관적이지 않는다는 것을 알 수 있습니다.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>올바르지 않은 태그 예제</title>
</head>
<body>
    <div>
        <h1>웹사이트 제목</h1>
        <div>
            <ul>
                <li><a href="#home">홈</a></li>
                <li><a href="#about">소개</a></li>
                <li><a href="#contact">연락처</a></li>
            </ul>
        </div>
    </div>

    <div>
        <div>
            <p>본문의 주제나 여러 내용을 구분</p>
        </div>

        <div>
            <p>본문의 주요 내용</p>
        </div>
    </div>

    <div>
        <p>작성자, 저작권 정보, 관련 문서</p>
    </div>
</body>
</html>

3️⃣ CSS(Cascading Style Sheets)



💭 그 외로 궁금했던 사항들

백엔드 개발자가 프론트엔드 개발자와 원활한 협업을 위해서 프론트엔드 영역도 알아야 한다는 사실!

 

❓<body>, <main> 태그 차이

◾ <main> 태그는 문서의 주요 컨텐츠를 정의하며 문서 내에서 한 번만 사용 가능하며  <header>, <footer>, <aside>, <nav> 같은 요소는 포함되지 않아야 합니다.

◾<body> 태그는 문서 전체의 본문을 포함하며 <main>을 포함한 모든 컨텐츠와 구조적 요소를 가지고 있습니다.

<body>
    <header>
        <h1>웹사이트 제목</h1>
    </header>
    <main>
        <h2>주요 콘텐츠</h2>
        <p> 콘텐츠 내용</p>
    </main>
    <footer>
        <p>저작권 정보</p>
    </footer>
</body>

❓<section>, <article> 태그 차이

<section>은 주제별로 구분하고 <article>은 독립적인 콘텐츠를 구분합니다.

🧐 어느 태그를 사용해야 되는지 판단이 잘 안될 경우에는
<article> 사용을 우선 고민해보는 것이 좋다고 한다.
👉🏻 단순히 꾸미기가 목적이라면 div 요소를 이용한다.

 


📝 3일차 부트캠프 회고

1️⃣ 잘했던 점
예전에 디자인과를 준비해왔어서 그런지 CSS 관련해서 속성들은 보면 "화면에 이렇게 나타나겠구나!" 하고 바로 떠올랐다. 포토샵이나 일러스트레이터 같은 경우에는 클릭 몇 번하면 화면에 보이니 프로그램 다루기가 쉬운데 역시 프로그래밍은 하나씩 속성들을 알고 타이핑 해봐야돼서 번거로운 것 같다는 생각이 들었다.

2️⃣ 부족했던 점
거의 하루만에 HTML/CSS의 전체내용을 보고 어마어마한 공부량에 놀랐다. 회사 다닐 때 어떤 프론트엔드 개발자가 모든 태그를 다 알고 있는 건 아니라고 했던 말이 기억났다. 상황에 따라 필요한 태그들이 있어서 그때마다 검색해서 찾아본다고 했었다. 너무 많다고 놀라기보다는 "아~ 이런 것이 있구나~" 하고 어떤 것들이 있는지 대략적으로 파악하는 정도면 좋을 것 같다. 추가적으로 HTML 구조에 대해서 이해는 했지만 실제로 화면에 그려질 레이아웃 배치 방법에 대해 테이블로 처리하는 것인지 모르겠어서 더 공부해야될 것 같다.

3️⃣ 향후 개선 방향
혼자 프로젝트를 한다면 프론트엔드도 같이 할 줄 알아야된다고 생각하기 때문에 내가 부족했던 부분인 웹페이지 레이아웃 만들기 연습을 추가적으로 더 진행해볼 것이다. 

728x90
320x100