HTML이란 무엇인가


여러분이 지금까지 방문한 모든 웹사이트는 HTML로 작성된 순수 텍스트 문서에서 출발합니다. 페이지에서 보이는 제목, 문단, 버튼, 이미지, 링크는 모두 이 하나의 언어로 기술됩니다. 페이지를 꾸미거나 동작을 넣기 전에, 먼저 그 페이지에 무엇이 있는지를 설명해야 하는데, 그 설명이 바로 HTML입니다.
페이지는 결국 구조화된 텍스트입니다
HTML은 HyperText Markup Language의 줄임말입니다. 여기서 중요한 단어는 **마크업(markup)**입니다. HTML은 평범한 텍스트를 가져다가 어느 부분이 제목이고, 어느 부분이 문단이고, 어느 부분이 링크인지 표시하는 방법입니다. 컴퓨터에게 따라야 할 명령을 내리는 것이 아니라, 브라우저가 각 조각이 무엇인지, 어떻게 보여줘야 하는지 알 수 있도록 콘텐츠에 표시를 붙이는 것입니다.
문서를 손으로 직접 편집한다고 생각해보세요. 제목에 동그라미를 치고, 섹션 제목에는 밑줄을 긋고, 사진 주위에는 상자를 그립니다. HTML은 브라우저가 이해할 수 있는 방식으로 그런 동그라미와 밑줄을 그리는 방법입니다.
<h1>Welcome</h1>
<p>This is a paragraph of text on my first web page.</p>두 줄이 각각 하나의 구조를 이룹니다. 하나는 제목이고 다른 하나는 문단입니다. 브라우저는 이 표시를 읽어서 첫 줄은 크고 굵게, 둘째 줄은 일반 본문 텍스트로 보여줍니다.
엘리먼트, 태그, 속성
HTML의 대부분은 **엘리먼트(element)**로 이루어져 있습니다. 엘리먼트는 보통 여는 태그, 콘텐츠, 닫는 태그로 구성됩니다.
<p>Hello there.</p><p>는 여는 태그, </p>는 닫는 태그(슬래시가 붙어 있는 점에 주목하세요)이고, "Hello there."는 그 사이에 있는 콘텐츠입니다. 이 셋이 합쳐져 하나의 문단 엘리먼트를 이룹니다. 태그는 이름표이고, 콘텐츠는 방문자가 실제로 읽는 내용입니다.
태그에 **속성(attribute)**을 붙여서 추가 정보를 줄 수도 있습니다. 링크는 어디로 이동할지 알아야 하므로, href 속성으로 그 정보를 알려줍니다.
<a href="https://scrimba.com">Visit Scrimba</a><p>...</p>처럼 생겼습니다. 속성은 여는 태그 안에 들어가서 링크가 어디로 향하는지 같은 세부 정보를 추가합니다. 모든 태그를 외울 필요는 없습니다. 필요할 때마다 조금씩 배워나가면 됩니다. HTML, CSS, JavaScript가 일을 나누는 방식
완성된 웹 페이지는 보통 세 가지 언어로 만들어지며, 각각 맡은 일이 하나씩 있습니다.
- HTML은 구조입니다. 제목, 텍스트, 이미지, 버튼 같은 것들이죠.
- **CSS**는 스타일입니다. 색상, 글꼴, 여백, 레이아웃을 담당합니다.
- **JavaScript**는 동작입니다. 클릭하거나 입력하거나 스크롤할 때 일어나는 일을 처리합니다.
흔히 이렇게 비유합니다. HTML은 집의 벽과 방, CSS는 페인트와 가구, JavaScript는 전기 배선으로 물건이 켜지게 만드는 것입니다. 벽부터 배우는 이유는, 구조가 존재하기 전에는 페인트를 칠하거나 전선을 연결할 대상 자체가 없기 때문입니다.
전체 페이지를 처음으로 살펴보기
여기 아주 작지만 완전한 웹 페이지가 하나 있습니다. 여기 등장하는 각 부분은 다음 장들에서 제대로 다룰 것이므로, 아직 세부 사항까지 신경 쓰지 않아도 됩니다. 지금은 이미 앞에서 본 태그와 속성으로 이루어져 있다는 점만 눈여겨보세요.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>My first page</title>
</head>
<body>
<h1>Welcome</h1>
<p>This is a paragraph of text on my first web page.</p>
</body>
</html>위에서부터 읽어보면, 첫 줄은 브라우저에게 이것이 최신 방식의 HTML 페이지라는 것을 알려줍니다. <html>은 모든 것을 감싸고, <head>는 페이지 제목처럼 겉으로 드러나지 않는 정보를 담고, <body>는 실제로 눈에 보이는 내용을 담습니다. 앞서 나온 제목과 문단은 방문자를 위한 콘텐츠이므로 body 안에 들어 있습니다.
<html>이 <head>와 <body>를 감쌉니다. head는 겉으로 드러나지 않는 정보, body는 사람들이 실제로 보는 내용입니다. 이 부분은 다음 장에서 제대로 분해해볼 것이므로, 지금은 한번 훑어보는 것만으로 충분합니다. 
