웹페이지를 만들기 위한 언어로 웹브라우저 위에서 동작하는 언어다.
HTML은
HyperText (웹 페이지에서 다른 페이지로 이동할 수 있도록 하는 것)
Markup (태그로 이루어짐)
Language
의 약어로 HyperText 기능을 가진 문서를 만드는 언어
<html>
, <head>
, <body>
, <title>
태그를 가지고 있어야 한다<html>
을 사용한다. 그 하위에 <head>
태그와 <body>
태그를 컨텐츠로 가지고 있다<!DOCTYPE html>
은 현재 문서가 HTML5 문서임을 명시한다<html>
는 HTML 문서의 루트(root) 요소를 정의한다.<head>
태그는 문서의 메타데이터(metadata)를 정의함. 문서를 설명하는 태그로 제목이나 키워드와 같은 정보를 담는다.<title>
태그는 HTML 문서의 제목(title)을 정의하며, 다음과 같은 용도로 사용됨<body>
태그에는 웹 브라우저를 통해 보이는 내용(content) 부분시멘틱 태그란 마크업 대상 컨텐트가 화면에 표현되는 방식 시각적으로 어떻게 보이는지를 결정하기 위함이 아닌, 해당 컨텐츠에 어떤 의미(역할 또는 목적) 를 부여하기 위해서 사용되는 태그
<div>
태그로만 마크업된 문서는 검색 엔진이 효과적으로 해당 웹페이지를 분석하기 어려워 SEO 측면에서 좋지 않다.
<header>
: 머리글, 머리말, 제목 영억으로 문서 또는 섹션의 헤더를 나타냄. 이 태그로 마크업된 헤더 영역은 일반적으로 웹사이트의 로고, 이름, 소개글 그리고 메인 메뉴가 위치하게 됨.<nav>
: 네비게이션(navigation), 목차, 리스트 등 다른 페이지로의 이동, 탐색을 위한 링크의 집합. 문서 안의 모든 링크가 다 nav 영역에 포함되는 것은 아님<main>
: 문서 body의 중심 주제, 주요 내용(content) 또는 응용 프로그램의 중심 기능과 직접 관련되거나 확장되는 콘텐츠. 한 페이지에 한 번만 사용 가능하다<section>
: 주제. 어느 한 구역. 제목을 갖고 있으면서 문서 전체와 관련있는 콘텐츠의 집합을 말함. 카테고리 별로 섹션을 구분하는 용도의 태그로 주로 사용. 같은 테마를 가진 여러개의 콘텐츠의 그룹화<article>
: 문서 본문 중 독립된 컨텐츠. 기사, 블로그, 게시물 등 텍스트 위주의 페이지를 구성할때 주로 사용. section은 여러 개 콘텐츠의 묶음이고 article은 그 자체로 독립적 콘텐츠이다<aside>
: 사이드 바라고 불리며 좌측과 우측 사이드 위치의 공간을 의미. 본문 외에 광고 등의 부수적인 내용을 주로 표현하는 태그. 필요하지 않으면 안 써도 상관없음<footer>
: 꼬리말 혹은 바닥글로, 문서 하단에 들어가는 정보 구분 공간을 표현하는 태그. 주로 화면 제일 아래에 위치해 회사 소개, 약관, 저작권, 사이트나 콘텐츠 작성자나 소유자나 제작자의 정보 등 제작 정보 등을 표시함<address>
: 연락처 정보를 표시<hgroup>
: 제목과 관련된 부제목을 묶어서 나타내는 태그<figure>
, <figcation>
, <mark>
, <time>
, <summary>
도 있음아무런 역할이나 목적이 없이 단순히 컨텐트를 그룹화하는데만 사용됨. css로 시각적 효과를 적용할 때 사용
DTD(Document Type Definition)는 우리말로 문서 형식 정의. 브라우저에게 '이 문서가 어떤 문서 형식을 따르고 있다'라고 알려주는 것으로, 랜더링 모드를 지정해주고 유효성 검증기(Validator)의 기준이 되므로 HTML 문서의 상단에 반드시 선언해줘야함
참고
생활코딩 - DTD(Doctype)
[ HTML ] DTD(Document Type Definition) 란?
heading <h1>
~<h6>
<h1>
은 해당 웹페이지의 최상위 계층의 제목을 마크업하기 위해서 사용됨<h1>
로 시작해서, <h2>
, 순차적으로 기입<h1>
만 사용하기. 오류는 나지 않지만 모범 사례로 꼽힘paragraph <p>
순서가 없는 목록 <ul>
순서가 있는 목록 <ol>
<ul>
<li>항목 1</li>
<li>항목 2</li>
</ul>
<table>
<tr>
<td>1행1열</td>
<td>1행2열</td>
</tr>
<tr>
<td>2행1열</td>
<td>2행2열</td>
</tr>
</table>
Cookies는 두 가지 유형이 있음. 바로 persistent cookies와 session cookies
Session cookies는 만료일을 포함하지 않음. 대신 브라우저나 탭이 열려있는 동안에만 저장되며 닫히면 영구적으로 삭제됨 (은행 유저들의 자격 증명을 저장)
Persistent cookies는 만료일을 가짐. 이 쿠키는 만료일까지 유저의 디스크에 저장되고 만료일이 지나면 삭제됨 (유저 경험을 위해 행동을 기록)
서버가 아닌, 클라이언트에서 데이터를 저장할 수 있도록 지원하는 HTML5의 새로운 기능
만료 조건은 persistent cookies처럼 동작함. JavaScript 코드를 통해 삭제하지 않으면 데이터는 자동으로 삭제되지 않으므로 더 오랜 시간 동안 저장해야 하는 큰 데이터에 유용함. 문자열뿐만 아니라 javascript의 primitives와 object도 저장할 수 있음
로컬 스토리지를 잘 사용하려면 이 상황에 저장된 데이터의 위협 수준이 매우 낮아야 함. 쉽게 해킹되지 않도록 저장된 데이터를 암호화하는 등의 보안 작업이 필요. 재무 정보와 같은 매우 취약한 데이터는 로컬스토리지를 사용해 제대로 저장하거나 보호할 수 없음
localStorage에 비해 자주 사용되진 않음. 각 세션마다 데이터가 개별적으로 저장됨. 현재 떠 있는 탭 내에서만 유지되므로 세션을 종료하면 데이터가 자동으로 제거되며, 같은 도메인이라도 세션이 다르면 데이터에 접근할 수 없음
웹 스토리지는 사용자 측에 이름:값 쌍의 데이터를 저장하는 두 가지 메커니즘을 의미합니다. 첫 번째는 로컬스토리지, 두 번째는 세션스토리지 입니다. 웹 스토리지의 데이터는 쿠키와 다르게 HTTP 헤더를 통한 조작이 불가능하며 서버로 전송되지 않습니다. 로컬스토리지는 컴퓨터를 종료하거나 브라우저를 종료하더라도 지속되며, 세션 스토리지는 페이지가 열려 있는 동안이나 페이지 리로딩 혹은 복원 시에는 데이터가 유지되지만 다른 세션이나 창이 종료될 경우 데이터에 접근할 수 없습니다.
쿠키와 웹스토리지의 큰 차이점 중 하나는 쿠키의 경우 서버와 클라이언트 측 모두 데이터를 읽을 수 있지만, 웹스토리지는 클라이언트 측에서만 데이터를 읽을 수 있습니다.
참고
생활코딩 - HTML이란?
HTML 기본 구조
[HTML] 시멘틱 마크업
[HTML5] 시멘틱 태그(sementic tag)
#1 HTML 이란 무엇인가?
HTML 기본 지식
HTML 태그 모음 & 요약정리
참고하기
#1. 웹 브라우저 & HTML
프론트엔드 면접 질문 정리 ① HTML 질문
[프론트엔드 면접 준비] 링크 모음집!
프론트엔드 개발자가 되기위해 알아야할 기초지식
신입 프론트엔드 개발자가 되려면 무엇을 학습해야 하나요?
HTML5-기본 & 중요 필수지식