1. HTML์ด๋?
HTML(Hypertext Markup Langage, ํ์ดํผํ ์คํธ ๋งํฌ์ ์ธ์ด)๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ์๋์ง๋ง,
์ฐ๋ฆฌ๊ฐ ๋ณด๋ ์นํ์ด์ง๊ฐ ์ด๋ป๊ฒ ๊ตฌ์กฐํ๋์ด ์๋์ง ๋ธ๋ผ์ฐ์ ๋ก ํ์ฌ๊ธ ์ ์ ์๋๋ก ํ๋ ๋งํฌ์ ์ธ์ด์ด๋ค.
HTMl์ elements๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ ์ ์ ํ ๋ฐฉ๋ฒ์ผ๋ก ๋ํ๋ด๊ณ ์คํํ๊ธฐ ์ํด ๊ฐ ์ปจํ ์ธ ์ ์ฌ๋ฌ ๋ถ๋ถ๋ค์ ๊ฐ์ธ๊ณ ๋งํฌ์ ํ๋ค.
๊ทธ๋ฆฌ๊ณ tags๋ ์น ์์ ๋ค๋ฅธ ํ์ด์ง๋ก ์ด๋ํ๊ฒ ํ๋ ํ์ดํผ๋งํฌ ๋ด์ฉ๋ค์ ์์ฑํ๊ฑฐ๋ ๋จ์ด๋ฅผ ๊ฐ์กฐํ๋ ๋ฑ์ ์ญํ ์ ํ๋ค.
Hello HTML! ์ด๋ผ๋ ๋ฌธ์ฅ์ ๊ทธ ์์ฒด๋ก ํํํ๊ณ ์ถ์ผ๋ฉด ํ๊ทธ ์ค <p> ํ๊ทธ๋ก ๊ฐ์ธ elements๋ฅผ ๋ฌธ๋จ์ผ๋ก ๋ช ์ํ ์ ์๋ค.
<p>Hello HTML!!</p>
์ฐธ๊ณ ! html ์์๋ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๋๋ค. <title> ์์๋ <TITLE>, <Title> ๋ฑ๊ณผ ๊ฐ์ด ์ฌ์ฉ ๊ฐ๋ฅํ๋
๊ฐ๋ ์ฑ์ ์ํด ์๋ฌธ์๋ก ์์ฑํจ
2. HTML ์์(Element)์ ๊ตฌ์กฐ
- ์ฌ๋ ํ๊ทธ(opening tag) : ์์์ ์ด๋ฆ๊ณผ ์ด๊ณ ๋ซ๋ ๊บฝ์ ๊ดํธ๋ก ๊ตฌ์ฑ, <p> ์์ ์์๋ถํฐ ํจ๊ณผ ์ ์ฉ
- ๋ซ๋ ํ๊ทธ(closing tag) : ์์์ ๋(๋จ๋ฝ์ ๋ ๋ถ๋ถ)์ ์์นํ๊ณ ๋ซ๋ ํ๊ทธ๋ฅผ ์ ์ด์ฃผ์ง ์์ผ๋ฉด ์ค๋ฅ๋จ
- ๋ด์ฉ(content) : ์์์ ๋ด์ฉ, ๋จ์ํ ํ ์คํธ
- ์์(element) : ์ฌ๋ ํ๊ทธ, ๋ซ๋ ํ๊ทธ, ๋ด์ฉ์ ํต๋ค์ด ์์(element)๋ผ๊ณ ํจ
2-1. ํฌํจ(๋ดํฌ)๋ ์์(Nesting elements)
์์ ์์ ๋ค๋ฅธ ์์๊ฐ ๋ค์ด๊ฐ ์ ์๋๋ฐ ์ด๋ฐ ์์๋ ๋ดํฌ๋์๋ค๊ณ ํํํ๋ค.
Hello HTML ์ด๋ผ๋ ๋ฌธ๋จ์ ๊ฐ์กฐํ๊ธฐ ์ํด์ 'Hello'๋ผ๋ ๋จ์ด๋ฅผ ๊ฐ์กฐํ๋ <strong> ์์๋ฅผ ์ค์ฒฉํ์ฌ ์ฌ์ฉํ ์ ์๋ค.
<p> <strong> Hello </strong> HTML </p>
2-2. ๋ธ๋ก ๋ ๋ฒจ ์์ vs ์ธ๋ผ์ธ ์์(Block versus inline elements)
HTML์๋ ๋ธ๋ก ๋ ๋ฒจ ์์์ ์ธ๋ผ์ธ ์์, ๋๊ฐ์ง ์ข ๋ฅ์ ์์๊ฐ ์๋ค.
- ๋ธ๋ก ๋ ๋ฒจ ์์ (https://developer.mozilla.org/ko/docs/Glossary/Block-level_content)
์นํ์ด์ง ์์ ๋ธ๋ก(block)์ ๋ง๋๋ ์์
๋ธ๋ก ๋ ๋ฒจ ์์๋ ์๋ค ์์ ์ฌ์ด์ ์๋ก์ด ์ค์ ๋ง๋ค๊ณ ๋ํ๋ด๋๋ฐ
์ฆ, ๋ธ๋ก ๋ ๋ฒจ ์์ ์ด์ ๊ณผ ์ดํ ์์์ฌ์ด์ ์ค์ ๋ฐ๊พผ๋ค.
ex) ๊ฐ๋ฐ์๋ ๋ธ๋ก ๋ ๋ฒจ ์์๋ฅผ ์ฌ์ฉํ์ฌ ๋จ๋ฝ(Paragraphs), ๋ชฉ๋ก(list), ๋ค๋น๊ฒ์ด์ ๋ฉ๋ด(Navigation Menus), ๊ผฌ๋ฆฌ๋ง(Footers) ๋ฑ์ ํํํ ์ ์์
๊ทธ๋ฌ๋ ๋ธ๋ก ๋ ๋ฒจ ์์๋ ์ธ๋ผ์ธ ์์์ ์ค์ฒฉ๋ ์ ์์ผ๋ ๋ค๋ฅธ ๋ธ๋ก ๋ ๋ฒจ ์์์ ์ค์ฒฉ ๊ฐ๋ฅ - ์ธ๋ผ์ธ ์์(https://developer.mozilla.org/ko/docs/Glossary/Inline-level_content)
ํญ์ ๋ธ๋ก ๋ ๋ฒจ ์์๋ด์ ํฌํจ๋์ด ์๋ค.
์ธ๋ผ์ธ ์์๋ ๋ฌธ์์ ํ ๋จ๋ฝ๊ฐ์ ํฐ ๋ฒ์์๋ ์ ์ฉ๋ ์ ์๊ณ ๋ฌธ์ฅ, ๋จ์ด ๊ฐ์ ์์ ๋ถ๋ถ์ ๋ํด์๋ง ์ ์ฉ๋ ์ ์๋ค.
์ธ๋ผ์ธ ์์๋ ์๋ก์ด ์ค์ ๋ง๋ค์ง ์๋๋ฐ
์ฆ, ์ธ๋ผ์ธ ์์๋ฅผ ์์ฑํ๋ฉด ๊ทธ๊ฒ์ ์์ฑํ ๋จ๋ฝ๋ด์ ๋ํ๋๊ฒ ๋๋ค.
ex) ํ์ดํผ๋งํฌ๋ฅผ ์ ์ํ๋ ์์ <a>, ํ ์คํธ๋ฅผ ๊ฐ์กฐํ๋ ์์์ธ <em>, <strong> ๋ฑ
<em>first</em><em>second</em><em>third</em>
<p>fourth</p><p>fifth</p><p>sixth</p>
<em>์ ์ธ๋ผ์ธ ์์๋ก, 3๊ฐ์ ์์๋ ์๋ก ๊ฐ์ ์ค์ ๋์ค๊ณ
<p>๋ ๋ธ๋ก ๋ ๋ฒจ ์์๋ก ๊ฐ ์์๋ค์ ์๋ก์ด ์ค์ ๋ํ๋๋ฉฐ ์ ์๋์ ์ฌ๋ฐฑ์ด ์๋ค. (์ด๋ ๊ธฐ๋ณธ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ฌธ๋จ์ ์ ๊ณตํ๋ ๊ธฐ๋ณธ CSS styling๋๋ฌธ์ ์ ์ฉ๋๋ ๋ถ๋ถ์ด๋ค.)
2-3. ๋น ์์(Empty elements)
์ด ์ธ์๋ ์ฃผ๋ก ๋ฌธ์์ ๋ฌด์ธ๊ฐ๋ฅผ ์ฒจ๋ถํ๊ธฐ ์ํด ๋จ์ผ ํ๊ทธ(Single tag)๋ฅผ ์ฌ์ฉํ๋ ์์๋ ์๋ค.
ex) <img> ์์๋ ํด๋น ์์น์ ์ด๋ฏธ์ง๋ฅผ ์ฝ์ ํ๊ธฐ ์ํ ์์
<img src="https://raw.githubusercontent.com/mdn/beginner-html-site/gh-pages/images/firefox-icon.png">
์์ ๋ํ ๊ฒฐ๊ณผ๋ ์ผ์ชฝ ๊ณผ ๊ฐ์ด ๋์จ๋ค.
๋น ์์๋ ๊ฐ๋ Void ์์๋ผ๊ณ ๋ถ๋ฆฌ๊ธฐ๋ ํ๋ค.
3. ์์ฑ(Attributes)
์์๋ ์๋ ์ด๋ฏธ์ง์ ๊ฐ์ด ์์ฑ์ ๊ฐ์ง ์ ์๋ค.
์์ฑ์ ์์์ ์ค์ ๋ก ๋ํ๋ด๊ณ ์ถ์ง ์์ง๋ง ์ถ๊ฐ์ ์ธ ๋ด์ฉ์ ๋ด๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค.
์์ ์ฌ์ง์ ์คํ์ผ์ ๊ด๋ จ๋ ๋ด์ฉ์ด๋ ๊ธฐํ ๋ด์ฉ์ ์ํด ํด๋น ๋ชฉํ๋ฅผ ๊ตฌ๋ถํ ์ ์๋ class ์์ฑ์ ๋ถ์ฌํ๋ค.
์์ฑ์ ์ฌ์ฉํ ๋์๋ ๋ค์๊ณผ ๊ฐ์ ๋ด์ฉ์ ์ง์ผ์ผํ๋ค.
- ์์ ์ด๋ฆ ๋ค์์ ๋ฐ๋ก ์ค๋ ์์ฑ์ ์์ ์ด๋ฆ๊ณผ ์์ฑ ์ฌ์ด์ ๊ณต๋ฐฑ์ด ์์ด์ผ ๋๊ณ ํ๋ ์ด์์ ์์ฑ์ด ์๋ ๊ฒฝ์ฐ์ ์์ฑ ์ฌ์ด์ ๊ณต๋ฐฑ์ด ์์ด์ผ ํ๋ค.
- ์์ฑ ์ด๋ฆ ๋ค์์ ๋ฑํธ(=)๊ฐ ๋ถ๋.
- ์์ฑ ๊ฐ์ ์ด๊ณ ๋ซ๋ ๋ฐ์ดํ๋ก ๊ฐ์ธ์ผ ํ๋ค.
<a href="url ๋งํฌ ์ฃผ์">
a๋ ์์ href๋ ์์ฑ์ด๋ฏ๋ก ์์ ๋ด์ฉ๊ณผ ๋น๊ตํด์ ๋ณด๋ฉด ์ง์ผ์ผํ๋ ๋ด์ฉ๋ค์ ์ฝ๊ฒ ์ด์ ํ ์ ์๋ค.
- href : ์ด ์์ฑ์๋ ๋ด๊ฐ ์ฐ๊ฒฐํ๊ณ ์ ํ๋ ์น ์ฃผ์ ์ง์
- title : ๋งํฌ์ ๋ํ ์ถ๊ฐ ์ ๋ณด ( ๋งํฌ ์๋ก ๋ง์ฐ์ค๋ฅผ ์ฎ๊ฒผ์ ๋ ๋ํ๋จ )
- target : ๋งํฌ๊ฐ ์ด๋ป๊ฒ ์ด๋ฆด ๊ฒ์ธ์ง ์ง์ ( target="_blank" ๋ก ์ง์ ํ๋ฉด ๋งํฌ๋ฅผ ์ํญ์์ ๋ณด์ฌ์ฃผ๊ณ ํ์ฌ ํญ์์ ๋งํฌ๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์ถ์ผ๋ฉด ์ด ์์ฑ ์๋ตํ๋ฉด ๋๋ค.)
3-1. ์ฐธ๊ณผ ๊ฑฐ์ง ์์ฑ(Boolean attributes)
๊ฐ์ด ์๋ ์์ฑ๋ ๋ณผ ์ ์๋๋ฐ ์ด๊ฑด ํ์ฉ๋ ๊ฒ์ด๊ณ ์ด๋ฅผ ๋ถ๋ฆฐ ์์ฑ์ด๋ผ๊ณ ํ๋ค.
์ผ๋ฐ์ ์ผ๋ก ๊ทธ ์์ฑ์ ์ด๋ฆ๊ณผ ๋์ผํ ํ๋์ ๊ฐ๋ง ๊ฐ์ง ์ ์๋ค.
์๋ฅผ ๋ค์ด disabled ์์ฑ์ ์์ ์ ๋ ฅ ์์์ ํ ๋นํ๋ฉด ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ ์ ์๋๋ก ๋นํ์ฑํ(ํ์์ผ๋ก ํ์) ํ ์ ์๋ค.
<input type="text" disabled>
<input type="text">
์ด๋ ์์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค๋ค.
3-2. ์์ฑ๊ฐ์ ๋ฐ์ดํ ์๋ต
์์ฑ๊ฐ์ ๋ฐ์ดํ๋ฅผ ๊ผญ ๋ถ์ด๋ ๊ฒ์ด ์ค๋ฅ๋ฅผ ํผํ ์ ์๊ณ ์ฝ๋์ ๊ฐ๋ ์ฑ์ด ์ข์์ง๊ธฐ์ ์๋ต์ ํ๋ฉด ์๋๋ค.
ํ์ง๋ง ์์ฑ๊ฐ์ด ํ๋์ธ
<a href=https://www.mozilla.org/>favorite website</a>
์์ ์ฝ๋๋ฅผ ์คํํ์๋ ๋ฌธ์ ๊ฐ ์๊ฒ ์ง๋ง
<a href=https://www.mozilla.org/ title=The Mozilla homepage>favorite website</a>
์์ ์ฝ๋์ฒ๋ผ title ์์ฑ์ด ์ถ๊ฐ๋๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ฒ ๋๋ค. ""๊ฐ ์๊ธฐ ๋๋ฌธ์ title์ ์์ฑ๊ฐ The์ ๋๊ฐ์ ๋ถ ์์ฑ๊ฐ Mozilla, homepage๋ฅผ ๊ฐ์ง๋ค๊ณ ์๊ฐ ํ ๊ฒ์ด๋ค.
3-3. ์์ ๋ฐ์ดํ, ํฐ ๋ฐ์ดํ?
๋ ์ค ์๋ฌด๊ฑฐ๋ ์จ๋ ์๊ด์ ์๋ค.
<a href="http://www.example.com">A link to my example.</a>
<a href='http://www.example.com'>A link to my example.</a>
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์์ ๋ ๋ฌธ์ฅ์ ๋๊ฐ์ด ๋์์ ํ๋ค.
ํ์ง๋ง, ์ฃผ์ํด์ผํ ์ ์ ๋ ๊ฐ๋ฅผ ์์ด์ ์ฐ๋ฉด ์๋๋ค๋ ๊ฒ์ด๋ค.
<a href="http://www.example.com'>A link to my example.</a>
" ํฐ ๋ฐ์ดํ๋ก ์์ํ์ฌ ' ์์ ๋ฐ์ดํ๋ก ๋๋ฌ์ธ๋ฉด ์ค๋ฅ๊ฐ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ง์ฝ ๋ฌธ์ฅ ์์์ ํ๊ฐ์ง์ ๋ฐ์ดํ๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ๋ค๋ฅธ ๋ฐ์ดํ๋ก ์์ฑ๊ฐ์ ๋๋ฌ์ธ๋ฉด ๋๋ค.
<a href="http://www.example.com" title="Isn't this fun?">A link to my example.</a>
์ด๋ ๊ฒ Isn't์์ '๋ฅผ ์ฌ์ฉํ์ผ๋ ์์ฑ๊ฐ์ "" ํฐ ๋ฐ์ดํ๋ก ๋ฌถ์ด์ ๊ตฌ๋ถ ํ ์ ์๊ฒ ํด์ฃผ๋ฉด ๋๋ค.
4. HTML ๋ฌธ์์ ๊ตฌ์กฐ
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>My test page</title>
</head>
<body>
<p>This is my page</p>
</body>
</html>
- <!DOCTYPE html> : ๋ฌธ์ ํ์์ ๋ํ๋ธ๋ค. ์ ํจํ ๋ฌธ์ ํ์์ ๋ํ๋ด๋ ์งง์ ๋ฌธ์ฅ
- <html></html> : <html>์ ์์์ด๋ค. ์ ์ฒด ํ์ด์ง์ ์ฝํ ์ธ ๋ฅผ ํฌํจ, ๊ธฐ๋ณธ ์์
- <head></head> : <head>์ ์์์ด๋ค. ํํ์ด์ง ์ด์ฉ์์๊ฒ๋ ๋ณด์ด์ง ์์ง๋ง ๊ฒ์ ๊ฒฐ๊ณผ์ ๋ ธ์ถ ๋ ํค์๋, ํํ์ด์ง ์ค๋ช , CSS ์คํ์ผ, character setdeclaration ๋ฑ HTMl ํ์ด์ง์ ๋ชจ๋ ๋ด์ฉ์ ๋ด๊ณ ์๋ค.
- <meta charset="utf-8"> : HTML ๋ฌธ์์ ๋ฌธ์ ์ธ์ฝ๋ฉ ์ค์ ์ utf-8๋ก ์ง์ , ์ฌ๊ธฐ์ utf-8์ด๋ผํจ์ ์ ์ธ๊ณ์์ ์ฌ์ฉ๋๋ ์ธ์ด์ ๋ํ ๋๋ถ๋ถ์ ๋ฌธ์๊ฐ ํฌํจ๋ ๊ฒ์ด๋ผ๊ณ ํ ์ ์๋ค. ์ด ์ค์ ์ ํตํด ํ์ด์ง์ ํฌํจ๋ ๋ชจ๋ ํ ์คํธ ๋ด์ฉ์ ์ฒ๋ฆฌํ ์ ์๊ณ ๋์ค์ ๋ฌธ์ ์ธ์ฝ๋ฉ๊ณผ ๊ด๋ จ๋ ์ผ๋ถ ๋ฌธ์ ๋ฅผ ํผํ๋๋ฐ ๋์์ด ๋ ์ ์์
- <title></title> : <title> ์์์ด๋ค. ํ์ด์ง ์ ๋ชฉ ์ค์ , ํ์ด์ง๊ฐ ๋ก๋๋๋ ๋ธ๋ผ์ฐ์ ํญ์ ํ์๋๋ ์ ๋ชฉ์ผ๋ก ์ฌ์ฉ๋๋ค. ํ์ด์ง ์ ๋ชฉ์ ํ์ด์ง๊ฐ ์ฑ ๊ฐํผ๋ ๋ ํ์ด์ง๋ฅผ ์ค๋ช ํ๋ ๋ฐ์๋ ์ฌ์ฉ
- <body></body> : <body> ์์์ด๋ค. ์ฌ๊ธฐ์๋ ํ ์คํธ, ์ด๋ฏธ์ง, ๋น๋์ค, ๊ฒ์, ์ฌ์ ๊ฐ๋ฅํ ์ค๋์ค ํธ๋ ๋ฑ์ ๋น๋กฏํ์ฌ ํ์ด์ง์ ํ์๋๋ ๋ชจ๋ ์ฝํ ์ธ ๊ฐ ํฌํจ๋๋ค.
5. Entity references: HTML์ ํน์ ๋ฌธ์ ํฌํจ
HTML์์ ๋ฌธ์ <, >, " ๋ฐ &๋ ํน์ ๋ฌธ์์ด๋ค. ์ด๋ค์ HTML ๊ตฌ๋ฌธ ์์ฒด์ ์ผ๋ถ๋ผ๊ณ ํ ์ ์๋ค.
๊ฐ ๋ฌธ์ ์ฐธ์กฐ๋ ์ฐํผ์๋ (&)๋ก ์์ํ๊ณ ์ธ๋ฏธ์ฝ๋ก (;)์ผ๋ก ๋๋๋ค.
์ฐธ๊ณ : HTML์ ๋ฌธ์ ์ธ์ฝ๋ฉ์ด UTF-8๋ก ์ค์ ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ต์ ๋ธ๋ผ์ฐ์ ๋ ์ค์ ๊ธฐํธ๋ฅผ ์ ์ฒ๋ฆฌํ๋ฏ๋ก ๋ค๋ฅธ ๊ธฐํธ์ ๋ํด์๋ ์ํฐํฐ ์ฐธ์กฐ๋ฅผ ์ฌ์ฉํ ํ์๊ฐ ์๋ค.
6. HTML์ ์ฃผ์
HTML ์ฃผ์์ ์ฐ๋ ค๋ฉด ํน์ ๋ง์ปค <!- ๋ฐ ->๋ก ์ฃผ์์ ๋ฌถ๋๋ค.
<p>I'm not inside a comment</p>
<!-- <p>I am!</p> -->
๊ทธ๋ผ ์๋ ์ฃผ์์ ๋จ ๋ฌธ์ฅ์ ์ถ๋ ฅ์ด ๋์ง ์๋๋ค.