여름방학에 진행한 방학 프로젝트, 그리고 2학기에 참가한 공공데이터 활용 공모전 모두 플러터와 파이어베이스를 이용해 앱을 만드는 프로젝트를 진행했었다.
플러터를 이용해 한 페이지를 구현하는 것 정도는 이제 조금 할 줄 알지만, 웹에 대한 기본이 부족하다 보니 페이지를 연결하는 등 단순 페이지 구현을 넘어선 다른 일들이 어렵게 느껴졌다.
그래서 겨울방학 동안 웹에 대해 공부해보기로 다짐했다. 나름대로 구글링을 해본 결과 udemy의 Web Developer Bootcamp 강의가 평이 괜찮은 것 같았고, 마침 2022년 버전이 새로 나왔다. html, css, javascript, 그리고 그 외에 Ajax, node, express 등 많은 부분을 다뤄주는 것이 마음에 들어서 이 강의를 듣기로 했다.
한국어 자막이 달린 버전도 나왔었지만 어차피 나중에 자료를 찾아볼 때 영어로 찾을 일이 많을 것 같기도 하고, 리뷰에 달린 한국어 자막에 대한 평이 상당히 안좋은 것 같아 그냥 영어 버전을 구매했다. 어려운 영어는 아니라서 못알아듣는 부분은 거의 없는데 진도가 잘 안나가진다.
Hyper Text Markup Language, HTML은 페이지 안의 정보들을 담는 역할을 한다.
과거에는 table을 활용해 layout을 배치하는 등 단순히 정보를 담는 것 외에 다른 역할도 했지만, CSS의 발전으로 웹을 꾸미는 일은 CSS에게 넘겨주게 되었고, 이제는 정보를 담는 역할에 집중한다.
C 프로그램이 여러 함수로 이루어진 것처럼, HTML은 element들의 집합이다.
일반적인 element는 시작태그 + 내용 + 종료태그
로 이루어져 있다.
시작 태그는 <태그명>
의 형태로, 종료 태그는 </태그명>
의 형태로 작성한다.
<p>I am a paragraph</p>
위의 <p>
element에서 <p>
는 시작 태그(opening tag), I am a paragraph
는 내용(contents), <\p>
는 종료 태그(closing tag)이다.
<img src="https://~.jpg" alt="그림">
간혹, <img>
태그처럼 종료 태그가 없는 태그도 있는데, 이러한 태그를 빈 태그(empty tag)라고 부른다.
이미지를 보여줄 때 사용하는 <img>
태그는 이미지의 주소(src), 대체 텍스트(alt) 와 같은 추가적인 정보를 필요로 한다.
여기서 alt나 src와 같은 것들을 attribute라고 하고, 우리는 attribute를 통해 해당 element에게 추가적인 정보를 제공해줄 수 있다.
<h1>
~ <h6>
<p>
<ol>
(ordered), <ul>
(unordered)<li>
태그로 작성<a href="http://www.~">
<img src="" alt="">
<!--comment-->
<!DOCTYPE html>
<html>
<head>
<title>tab name</title>
</head>
<body>
<h1>html문서</h1>
</body>
</html>
가장 단순한 html 문서는 위의 구조로 생겼다.
위에서부터 한 줄씩 살펴보면,
<!DOCTYPE html>
: HTML5임을 말해준다.
<html>
: root element라고도 한다. 자식으로 <head>
와 <body>
태그를 가진다.
<head>
: metadata element라고도 한다. 페이지와 관련된 정보를 담고있는데, 브라우저에 표시되는 탭의 이름을 지정하는 <title>
태그, 문자셋(charset) 등 여러 정보를 지정할 수 있는 <meta>
태그 등이 <head>
태그 안에 들어간다.
<body>
: 브라우저에 보여지는, 페이지의 주요 내용들이 담긴 부분이다
element가 무엇인지, 기본적인 element들, 그리고 html 문서의 구조에 대해 정리해봤다. 이정도가 html의 기초라고 할 수 있겠다. 다음 글에는 시맨틱 마크업에 대해, 그리고 다른 주요 태그들을 정리해보겠다.