๐HTML
HTML = Hypertext Markup Language์ ์ฝ์
๋ฌธ์๋ฅผ Web Browser์ ํํํ ๋ tag๋ฅผ ์ฌ์ฉํ๋ค.
- <!DOCTYPE html>: ํ์ฌ ๋ฌธ์๊ฐ HTML ๋ฌธ์์์ ์ ์
- <head>: ๋์๋ ๋ณด์ด์ง ์์ง๋ง, ์ ๋ชฉ, ๊ฒ์์์ง์์ ์ฌ์ฉํ ํค์๋, ๊ธฐํ ์ ๋ณด๋ฅผ ํ์ํ๋ค.
- <body>: ๋ฌธ์์ ๋ด์ฉ
- ์์ tag์ ์ข ๋ฃ tag๊ฐ ์๋ค. ๋จ, img tag์ฒ๋ผ content๊ฐ ํ์ ์์ด ์์ tag๋ง ์กด์ฌํ๋ tag๋ค๋ ์๋ค.
โBrowser์ ๋ ๋๋ง ๋ฐฉ์: DOM ํธ๋ฆฌ + CSSOM ํธ๋ฆฌ = ๋ ๋ ํธ๋ฆฌ
๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ๋ค. ๋จผ์ HTML ์์๋ฅผ ํ์ฑํ์ฌ DOM(Document Object Model) ํธ๋ฆฌ๋ฅผ ๋ง๋ค๊ณ , ์คํ์ผ ์์๋ฅผ ํ์ฑํ์ฌ CSSOM(CSS Object Model) ํธ๋ฆฌ๋ฅผ ๋ง๋ ๋ค. ๊ทธ๋ ๊ฒ DOM ํธ๋ฆฌ์ CSS ํธ๋ฆฌ๋ฅผ ๊ฒฐํฉํ์ฌ ๋ ๋ ํธ๋ฆฌ๋ฅผ ๋ง๋ค๊ณ , ๊ฐ ์์๊ฐ ํ๋ฉด์ ๊ทธ๋ ค์ง ์์น๋ฅผ ๊ณ์ฐํ์ฌ ํ๋ฉด์ ๊ทธ๋ฆฐ๋ค. DOM ์์๋ ์คํ์ผ์ด ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ ์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
*DOM ํธ๋ฆฌ ๊ตฌ์ฑ ๊ณผ์
HTML์ DOM(Document Object Model) ํธ๋ฆฌ ๊ด์ ์์ ํด์๋๊ณ ๊ตฌ์ฑ๋๋ค. DOM์ HTML ๋ฌธ์์ ๊ณ์ธต์ ์ธ ๊ตฌ์กฐ๋ฅผ ํํํ๋ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก, ๊ฐ HTML ์์๊ฐ ๋ ธ๋(Node)๋ก ํํ๋๊ณ ์ํ์ ๊ด๊ณ๋ฅผ ๊ฐ์ง๋ฉฐ ๊ตฌ์ฑ๋๋ค.
HTML ๋ฌธ์๋ฅผ DOM ํธ๋ฆฌ๋ก ํด์ํ๋ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
- HTML ํ์ฑ: ๋ธ๋ผ์ฐ์ ๋ HTML ๋ฌธ์๋ฅผ ์ฝ๊ณ ํ์ฑํ์ฌ DOM ํธ๋ฆฌ๋ฅผ ์์ฑํ๋ค. ์ด ๊ณผ์ ์์ ๊ฐ HTML ์์๋ ๋ ธ๋๋ก ๋ณํ๋๋ค.
- ์์ ๋ ธ๋: HTML ๋ฌธ์์ ํ๊ทธ๋ค์ ์์ ๋ ธ๋๋ก ๋ณํ๋๋ค. ์๋ฅผ ๋ค์ด, <div>, <p>, <a>์ ๊ฐ์ ํ๊ทธ๋ค์ ๊ฐ๊ฐ ์์ ๋ ธ๋๋ก ๋ณํ๋๋ค.
- ํ ์คํธ ๋ ธ๋: HTML ๋ฌธ์์์ ์์ ๋ด์ ํ ์คํธ๋ ํ ์คํธ ๋ ธ๋๋ก ๋ณํ๋๋ค. ์๋ฅผ ๋ค์ด, <p>Hello, World!</p>์์ "Hello, World!"๋ ํ ์คํธ ๋ ธ๋๋ก ๋ณํ๋๋ค.
- ์์ฑ(Attribute) ๋ ธ๋: HTML ์์์ ์์ฑ๋ค์ ํด๋น ์์์ ์์ฑ ๋ ธ๋๋ก ๋ณํ๋๋ค. ์๋ฅผ ๋ค์ด, <img src="image.jpg" alt="์ด๋ฏธ์ง">์์ "src"์ "alt"๋ ๊ฐ๊ฐ ์์ฑ ๋ ธ๋๋ก ๋ณํ๋๋ค.
DOM ํธ๋ฆฌ๋ ๊ณ์ธต์ ์ธ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ฉฐ, ๊ฐ ์์ ๋ ธ๋๋ ๋ถ๋ชจ-์์ ๊ด๊ณ๋ฅผ ๋งบ๋๋ค. ๋ถ๋ชจ ์์๋ก๋ถํฐ ์ง์ ์ ์ผ๋ก ํ์์ ์๋ ์์๋ค์ ์์ ์์๋ผ๊ณ ํ๋ค. ์ด๋ ๊ฒ ๊ตฌ์ฑ๋ DOM ํธ๋ฆฌ๋ JavaScript๋ฅผ ์ฌ์ฉํ์ฌ ๋์ ์ผ๋ก ๋ณ๊ฒฝํ๊ณ ์กฐ์ํ ์ ์๋ค.
โgetElementById
: DOM์์ ํน์ id ๊ฐ์ ๊ฐ์ง element๋ฅผ ๋ฐํํ๋ค. ์ฐพ๋ ๊ฒฐ๊ณผ๊ฐ ์์ ๊ฒฝ์ฐ null์ ๋ฐํํ๋ฉฐ, ๋์ผ id๊ฐ์ด ์์ ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ id๊ฐ์ ๋ฐํํ๋ค.
document.getElementById("first");
โgetElementsByClassName
: DOM์์ ํน์ class ๋ช ์ ๊ฐ์ง element๋ค์ HTMLCollection์ผ๋ก ๋ฐํํ๋ค.
document.getElementsByClassName("first");
โgetElementsByTagName
: ํน์ ํ๊ทธ๋ช ์ ๊ฐ์ง element๋ค์ HTMLCollection์ผ๋ก ๋ฐํํ๋ค.
document.getElementsByTagName("div");
โquerySelector
: CSS์์ ์ ํ์๋ฅผ ์์ฑํ ๋์ ๋ง์ฐฌ๊ฐ์ง๋ก, class๋ช , id๋ช , ํ๊ทธ ์์ฑ๋ช , ํ๊ทธ๋ช ๋ฑ์ ํ์ฉํ์ฌ ์ ํ์๋ฅผ ์ฐพ์ ์ ์๋ค. ๊ฐ์ด ์ฌ๋ฌ ๊ฐ์ผ ๊ฒฝ์ฐ, ์ฒซ ๋ฒ์งธ๋ก ์ผ์นํ๋ element ๋ ธ๋๋ฅผ ๋ฐํํ๋ค.
โquerySelectorAll
: CSS์์ ์ ํ์๋ฅผ ์์ฑํ ๋์ ๋ง์ฐฌ๊ฐ์ง๋ก, class๋ช , id๋ช , ํ๊ทธ ์์ฑ๋ช , ํ๊ทธ๋ช ๋ฑ์ ํ์ฉํ์ฌ ์ ํ์๋ฅผ ์ฐพ์ ์ ์๋ค. ์ฐพ์ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ๋ Nodelist๋ก ๋ฐํํ๋ค.
document.querySelector("li");
document.querySelector(".first");
document.querySelector("#first");
๐์น ํ์ค์ด๋?
- ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ์น์๋น์ค๊ฐ ์ ์์ ์ผ๋ก ๋ณด์ฌ์ง ์ ์๋๋ก ํ๋ ๊ฒ
- W3C์์ HTML5๋ฅผ ์น ํ์ค์ผ๋ก ๊ถ๊ณ ํ๊ณ ์น ๋ธ๋ผ์ฐ์ ๋ ์ด๋ฅผ ๋ฐ๋ฅธ๋ค.
[React]์น ํ์ค์ ์ค์ํ๋ฉฐ ๊ฐ๋ฐํ๋ ๋ฐฉ๋ฒ
๐HTML5์ ํน์ง
Semantic tag ์ถ๊ฐ
์น ์ฌ์ดํธ๋ฅผ ๊ฒ์์์ง์ด ์ข ๋ ๋น ๋ฅด๊ฒ ๊ฒ์ํ ์ ์๋๋ก ํน์ tag์ ์๋ฏธ๋ฅผ ๋ถ์ฌํ๋ ๋ฐฉ์์ด๋ค. ์๋ฅผ ๋ค์ด, <header> tag๋ ๋ฌธ์์ ์ฃผ์ ๋ฅผ ๋ํ๋ด๋ tag๋ก์จ <header> tag๊ฐ ์ฌ์ฉ๋ ์น ๋ฌธ์์ ๊ฒฝ์ฐ ๊ฒ์์์ง์ ์น๋ฌธ์์ ๋ชจ๋ ๋ด์ฉ์ ๊ฒ์ํ๋ ๊ฒ์ด ์๋ <header> tag์ ๋ด์ฉ๋ง์ ๊ฒ์ํด์ ๋ณด๋ค ๋น ๋ฅด๊ฒ ๊ฒ์์ ์งํํ ์ ์๋ค.
๐๊ธ๋ก๋ฒ ์์ฑ
HTML tag์๋ ์ด๋ tag์๋ ๋ฃ์ด์ ์ฌ์ฉํ ์ ์๋ ๊ธ๋ก๋ฒ ์์ฑ(global attribute)์ด ์๋ค.
class
: tag์ ์ ์ฉํ ์คํ์ผ์ ์ด๋ฆ์ ์ง์ ํ๋ค.
<div class=”content”>…</div>
id
: tag์ ์ ์ผํ id๋ฅผ ์ง์ ํจ. ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ฃผ๋ก ์ฌ์ฉํ๋ค.
<input type=”text” id=”userid”>
๐table ํ๊ทธ
table ํ๊ทธ๋ ์ฃผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฟ๋ ค์ค ๋ ์ฌ์ฉํ๋ค.(div์ span ๋ฑ ๊ณต๊ฐ๋ถํ ๊ณผ ๊ด๋ จ๋ ํ๊ทธ๋ ์ฃผ๋ก ๋์์ธํ ๋ ๋ง์ด ์ฌ์ฉํ๋ค.)
- <colgroup>๊ณผ <col>์์๋ ์ด ๊ทธ๋ฃน์ ์ํ ์ถ๊ฐ์ ์ธ ๊ตฌ์กฐ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ค.
- <caption> tag๋ table์ ์ ๋ชฉ์ ์ ์ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ฉฐ <table> start tag ๋ฐ๋ก ๋ค์ ์์นํ๋ค. ๋ํ table ๋น ํ๋๋ง ์ฌ์ฉํ๋ค.
- colspan ์์ฑ์ ๋ ๊ฐ ์ด์์ ์ด์ ํ๋๋ก ํฉ์น๊ธฐ ์ํด์ ์ฌ์ฉํ๋ค.
- rowspan ์์ฑ์ ๋ ๊ฐ ์ด์์ ํ์ ํ๋๋ก ํฉ์น๊ธฐ ์ํด์ ์ฌ์ฉํ๋ค.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<table width="600" height="250" align="center" border="1">
<caption>
์ด๋ ฅ์<br/>
์๋ ์ ๋ณด๋ ๊ฑฐ์ง์ด ์์ต๋๋ค.
</caption>
<colgroup>
<col width="150">
<col width="100">
<col width="150">
<col width="100">
<col width="100">
</colgroup>
<tr>
<td rowspan="3">์ฌ์ง</td>
<td rowspan="2">์ฑ๋ช
</td>
<td rowspan="2">ํ๊ธธ๋</td>
<td colspan="2">์ฃผ๋ฏผ๋ฒํธ</td>
</tr>
<tr>
<td colspan="2">000000-000000</td>
</tr>
<tr>
<td colspan="4">์๋
์์ผ 2000๋
01์ 01์ผ</td>
</tr>
<tr>
<td>์ฃผ์</td>
<td colspan="4">์์ธ์ ๊ฐ๋จ๊ตฌ ์ญ์ผ๋ 77-1</td>
</tr>
<tr>
<td rowspan="2">์ฐ๋ฝ์ฒ</td>
<td>์ง</td>
<td>02-1234-5678</td>
<td rowspan="2">์ด๋ฉ์ผ</td>
<td rowspan="2">honggd@naver.com</td>
</tr>
<tr>
<td>ํธ๋ํฐ</td>
<td>010-9876-5432</td>
</tr>
</table>
</body>
</html>
๐img ํ๊ทธ
alt ์์ฑ ์ฌ์ฉ: alt ์์ฑ์ ์ด๋ฏธ์ง์ ๋ํ ๋์ฒด ํ ์คํธ๋ฅผ ์ ๊ณตํ๋ ์์ฑ์ด๋ค. ์ด๋ฏธ์ง๊ฐ ๋ก๋๋์ง ๋ชปํ์ ๋๋ ์คํฌ๋ฆฐ ๋ฆฌ๋ ์ฌ์ฉ์์๊ฒ ์ด๋ฏธ์ง๋ฅผ ์ค๋ช ํด์ฃผ๋ ์ญํ ์ ํ๋ค. ๋ฐ๋ผ์ ๋ชจ๋ <img /> ํ๊ทธ์ alt ์์ฑ์ ํฌํจ์ํค๋ ๊ฒ์ด ์ข๋ค.
<img src="image.jpg" alt="์ด๋ฏธ์ง ์ค๋ช
">
๐form ํ๊ทธ
์ฌ์ฉ์๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅ๋ฐ๋ ์ฉ๋๋ก ์ฌ์ฉ๋๋ค.
<form action="/submit" method="post">
<label for="name">์ด๋ฆ:</label>
<input type="text" id="name" name="name" required>
<br>
<label for="email">์ด๋ฉ์ผ:</label>
<input type="email" id="email" name="email" required>
<br>
<input type="submit" value="์ ์ถ">
</form>
method: ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๋ด์ฉ์ ์๋ฒ๋ก ์ด๋ป๊ฒ ๋๊ฒจ์ค์ง ๊ฒฐ์ ํ๋ค.
Get
- HTTP์ ๊ธฐ๋ณธ์ ์ก ๋ฐฉ์์ GET๋ฐฉ์์ด๋ค. ๋ฐ๋ผ์ method ๋ฐฉ์์ ์ง์ ํ์ง ์์ผ๋ฉด default๋ก Get๋ฐฉ์์ผ๋ก ์ ์ก๋๋ค.
- Data์ packet์ body์ ์ฃ์ง ์๊ณ Header(ํค๋)์ url์ ๋ถ์ธ๋ค.
- ํ์] url?๋ฐ์ดํฐ, ๋ฐ์ดํฐ๋ name=value ํ์์ด๊ณ ๋ฐ์ดํฐ์ ๊ตฌ๋ณ์ &๋ก ํ๋ค.
- ๋ฐ์ดํฐ๋ ์ต๋ 2048byte๊น์ง์ด๋ค.
- ์ฃผ์์ฐฝ์ ๋ฐ์ดํฐ๊ฐ ๋ ธ์ถ์ด ๋๋ฏ๋ก ์ค์ํ ๋ฐ์ดํฐ๋ Get๋ฐฉ์์ผ๋ก ์ ์กํ์ง ์๋๋ค.
Post
- Data์ ๊ธธ์ด์ ํ์ด ์๋ค. ๋ฐ์ดํฐ๋ฅผ ํจํท์ body์ ๋ด๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ์ ๊ธธ์ด ์ ํ์ด ์๋ค.⇒๋ฐ์ดํฐ๊ฐ ์ฃผ์์ฐฝ์ ๋ณด์ด์ง ์์ผ๋ฏ๋ก Get๋ฐฉ์๋ณด๋ค ์์ ํ๊ฒ ์ ์กํ ์ ์๋ค. ⇒์ด๋ ์ฌ๋ฌ ํจํท์ ๋ฐ์ดํฐ๋ฅผ ๋๋ ๋ด๊ธฐ ๋๋ฌธ์ด๋ค.
*****method ๋ฐฉ์์ ์ง์ ํ์ง ์์ผ๋ฉด default๋ก Get๋ฐฉ์์ผ๋ก ์ ์ก๋๋ค!!
๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์ ๋ชจ๋ Get ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ก๋๋ค.
- ์ฃผ์์ฐฝ์์ ์ง์ url์ ์ ๋ ฅํด์ ์์ฒญ์
- <a href=’url’> ํ๊ทธ๋ฅผ ํตํด ์๋ฒ์ ์์ฒญ์
- form ํ๊ทธ์ method ๋ฐฉ์์ ์๋ต์
- Window.open(’url’)
- location.href=’url’
*****
- put: ์์์ ์๋ฒ์ ๋ฐ์ด๋ฃ๊ณ
- delete: ํด๋นํ๋ ์์์ ์ญ์
⇒์ํ์ง ์๋ ์์์ ๋ฐ์ด๋ฃ๊ฑฐ๋ ์ญ์ ํ ์ ์๋ค.(์๋ฒ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ ์์)
name: form์ ์ด๋ฆ์ ๊ฒฐ์ ํ๋ค.
action: form ํ๊ทธ ์์ ๋ด์ฉ๋ค์ ์ฒ๋ฆฌํด ์ค ์๋ฒ์์ ํ๋ก๊ทธ๋จ์ ์ง์ ํ๋ค.
๋ง์ฝ action์์ฑ์ URL์ ์๋ตํ๋ค๋ฉด ์๊ธฐ ์์ ์๊ฒ ์ ๋ฌ๋๋ค.
๐pre ํ๊ทธ
<pre> ํ๊ทธ๋ HTML์์ ์ฌ์ฉ๋๋ ํ๊ทธ ์ค ํ๋๋ก, "preformatted text"๋ฅผ ๋ํ๋ธ๋ค. ์ด ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด ํ ์คํธ์ ํ์์ ๊ทธ๋๋ก ์ ์งํ์ฌ ์น ํ์ด์ง์ ํ์ํ ์ ์๋ค. <pre> ํ๊ทธ ๋ด์ ํ ์คํธ๋ ๊ณต๋ฐฑ, ์ค๋ฐ๊ฟ, ํญ ๋ฑ์ ๊ณต๋ฐฑ ๋ฌธ์์ ๊ฐ์ ํ์์ ๊ทธ๋๋ก ํํํ๋ค. ์ผ๋ฐ์ ์ธ ํ ์คํธ์๋ ๋ฌ๋ฆฌ ๊ณต๋ฐฑ ๋ฌธ์๋ฅผ ๊ทธ๋๋ก ํ์ํ๋ฏ๋ก, ์ฝ๋ ๋ธ๋ก์ด๋ ์์ ์๋ ํ ์คํธ๋ฅผ ํํํ๊ธฐ์ ์ ํฉํ๋ค.
โป์ฐธ๊ณ