๋ธ๋ผ์ฐ์ ?
์น ๋ธ๋ผ์ฐ์ ๋ ๋๊ธฐ์ ์ผ๋ก HTML CSS JS ์ธ์ด๋ฅผ "ํด์"ํด์ ํ๋ฉด์ ๋ด์ฉ์ ๋ณด์ฌ์ฃผ๋ "์์ฉ ์ํํธ์จ์ด" ์ ๋๋ค.
๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ์ ์์์ ์์ฒญํ๋ฉด ? ์๋ฒ๋ ๊ทธ ์์ฒญ์ "์๋ต"์ ํ๊ณ ์น ๋ธ๋ผ์ฐ์ ๋ ๊ทธ "์๋ต"์ "ํด์"ํ์ฌ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ค๋๋ค.
์์์ HTML PDF ์ด๋ฏธ์ง ๋ฑ ๋ค์ํ ์ข
๋ฅ๊ฐ ์๊ณ ,
ํฌ๋กฌ / ์ฌํ๋ฆฌ / ํ์ด์ดํญ์ค ๋ฑ์ "์น ๋ธ๋ผ์ฐ์ ์ ์ข
๋ฅ"๋ผ๊ณ ํฉ๋๋ค.
๋ธ๋ผ์ฐ์ ์ ๊ตฌ์กฐ
๋ธ๋ผ์ฐ์ ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1. ์ ์ ์ธํฐํ์ด์ค
์ ์ ์ธํฐํ์ด์ค๋ ์ฌ์ฉ์๊ฐ ์ ๊ทผํ ์ ์๋ "์์ญ"์ ๋๋ค.
๋ณดํต HTML์ HEAD ๋ถ๋ถ์ ์กด์ฌํ๋ ์ฃผ์ ํ์์ค / ์ด์ ๋ค์๋ฒํผ / ์๋ก๊ณ ์นจ / ํ ๋ฒํผ / ๋ฑ๋ฑ ์๋ฒ์ ์์ฒญํ ํ์ด์ง๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ฐฝ์ ์ ์ธํ ๋๋จธ์ง์ ๋ชจ๋ ๋ถ๋ถ์ ์ํฉ๋๋ค.
2. ๋ธ๋ผ์ฐ์ ์์ง
์ ์ ์ธํฐํ์ด์ค์ ๋ ๋๋ง ์์ง ์ฌ์ด์์ ๋์์ ์ ์ดํฉ๋๋ค.
Data Storage ๋ฅผ ์ฐธ์กฐํ๋ฉด์ ๋ก์ปฌํ๊ฒฝ์ ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ณ , ์ฝ์ผ๋ฉด์ ๋ค์ํ ์์ ์ ์งํํ๋ค๊ณ ํฉ๋๋ค.
3. ๋ ๋๋ง ์์ง
์น ์๋ฒ๋ก๋ถํฐ ์๋ต๋ฐ์ ์์์ ์น ๋ธ๋ผ์ฐ์ ์์ ๋ํ๋ด์ฃผ๋ ์ญํ ์ ํฉ๋๋ค.
์๋ก HTML ๋ฌธ์์ HTML/CSS ๋ฅผ ํ์ฑํ์ฌ ํ๋ฉด์ ํ์ํด์ค๋๋ค.
๋ธ๋ผ์ฐ์ ์ ๋์ ์๋ฆฌ๋ฅผ ์ดํดํจ์ ์์ด์๋ ๋ ๋๋ง ์์ง์ ์ดํด๊ฐ ์ค์ํ๋ค.
"๋ธ๋ผ์ฐ์ ๋ ์๋ฒ๋ก๋ถํฐ HTML ์๋ต์ ๋ฐ๊ฒ๋๋ฉด ๋ ๋๋ง ์์ง์ HTML ํ์ / CSS ํ์์ ์ํด์ ํ์ฑ๋์ด DOM / CSSOM ํธ๋ฆฌ๋ก ๋ณํ๋๊ณ , ๋ ๋ํธ๋ฆฌ๋ก ๊ฒฐํฉํ๊ฒ ๋ฉ๋๋ค.
์ด๋ ๊ฒ ์์ฑ๋ ๋ ๋ํธ๋ฆฌ๋ก ์ธํด์ ๋ธ๋ผ์ฐ์ ๋ ์น ํ์ด์ง๋ฅผ ๋ํ๋ผ ์ ์์ต๋๋ค.
4. ๋คํธ์ํน(ํต์ )
HTTP ์์ฒญ๊ณผ ๊ฐ์ ์๋ฒ์ ํต์ ์ด ๊ฐ๋ฅํ๊ฒ ํ๋ ๋คํธ์ํฌ ํธ์ถ์ ์ฌ์ฉ๋๋ค.
5. JS ์์ง
JS ์ฝ๋๋ฅผ ํด์ํ๊ณ ์คํ (ํฌ๋กฌ๊ฐ์ ๊ฒฝ์ฐ๋ V8 ์์ง์ด ๋์ ์ธ์ด์ธ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํ์คํ์ค ํด์ํ์ฌ ๋ฟ๋ ค์ค๋น.)
6. UI/๋ฐฑ์๋
๊ธฐ๋ณธ์ ์ธ ์์ ฏ์ ๊ทธ๋ฆฌ๋ ์ธํฐํ์ด์ค
7. ๋ฐ์ดํฐ ์ ์ฅ์
Cookie / Local-Storage / Indexed DB ๋ฑ๋ฑ ๋ธ๋ผ์ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ์ฉํด์ ์ ์ฅํ๋ ์์ญ์ด๋ค.
๋ ๋๋ง ์์ง
์์ฒญ๋ฐ์ ๋ด์ฉ์ ๋ธ๋ผ์ฐ์ ํ๋ฉด์ ํ์ํ๋ ๋
์
(๊ฐ ๋ธ๋ผ์ฐ์ ๋ง๋ค ๋ ๋๋ง ์์ง์ด ์กฐ๊ธ์ฉ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๊ฐ์ ํ์ด์ง๋ผ๋ ์กฐ๊ธ์ฉ ๋ค๋ฅด๊ฒ ๋ณด์ผ ์ ์์ต๋๋ค.)
๋ ๋๋ง ์์ง์ ์ข ๋ฅ
- Blink - ํฌ๋กฌ / ์คํ๋ผ
- Webkit - ์ฌํ๋ฆฌ
- Trident - ์ต์คํ๋ก์ด
- EdgeHTML - ๋ง์ดํฌ๋ก์ํํธ ์ฃ์ง
๋ ๋๋ง ์์ง์ ๋ ๋์ UX๋ฅผ ์ํด์ ์ต๋ํ ๋น ๋ฅด๊ฒ ๋ด์ฉ์ ํ์ํ๋ ค๊ณ ํ๋ค.
๋ฐ๋ผ์ ๋ ๋๋ง ์์ง์ ๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌ๋์ง ์๋๋ค.
HTML ์ ํ์ฑํ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์ด ์๋๋ผ ๋ ๋ํธ๋ฆฌ ๋ฐฐ์น ๋ฐ ๊ทธ๋ฆฌ๊ธฐ ๊ณผ์ ์ ์์ํ๋ค๋ ๋ป์ด๋ค.
๋ ๋๋ง ์์ง ๋์ ๊ณผ์
๋ ๋๋ง ์์ง ๋์์ "์์"์ ์๋ฒ๋ก๋ถํฐ ์๋ต๋ฐ์ HTML ๋ฌธ์๋ฅผ "์ป๋๊ฒ"์ผ๋ก ๋ถํฐ ์์ํฉ๋๋ค.
(๋ฌธ์์ ๋ด์ฉ์ ๋ณดํต 8KB ๋จ์๋ก ์ ์ก๋๋ค๊ณ ํฉ๋๋ค.)
๋ ๋๋ง ์์ง์ ๋์๊ณผ์ ์ ์๋ก ๋ํ๋ธ ์ฌ์ง์ ๋๋ค.
1. HTML ๋ฌธ์ ํ์ฑํด์ DOM ํธ๋ฆฌ ์์ฑ
2. ์ธ๋ถ CSS ํ์ผ๊ณผ ํจ๊ป ํฌํจ๋ ์คํ์ผ ์์ ํ์ฑํด์ CSSOM ํธ๋ฆฌ ์์ฑ
3. ๋ ๊ฒฐ๊ณผ๋ฌผ์ ํฉ์ณ์ Render ํธ๋ฆฌ ์์ฑ
4. ๋ ๋ํธ๋ฆฌ ์์ ๊ฐ๊ฐ์ ๋ ธ๋์ ๋ํด์ ํ๋ฉด์์ ์ด๋์ ๋ฐฐ์นํ ์ง ๊ฒฐ์
5. UI/๋ฐฑ์๋ ์์ ๊ฐ๊ฐ์ ๋ ธ๋๋ฅผ ๊ทธ๋ ค๋ธ๋ค.
HTML ๋ฌธ์ ํ์ฑ -> DOM ํธ๋ฆฌ ์์ฑ
DOM ์ ๊ฐ๊ฐ์ ๋งํฌ์ ๊ณผ 1 : 1 ๊ด๊ณ๋ฅผ ๊ฐ์ง๋๋ค.
<html>
<body>
<p>Hello World</p>
<div><img src="example.png" /></div>
</body>
</html>
์์ ์ฝ๋๋ ์๋์ ์ฌ์ง๊ณผ ๊ฐ์ด ๋ํ๋ผ ์ ์๋ค.
JS ์ ์ฒ๋ฆฌ
JS๋ ๋ ๋๋ง ์์ง์์ ์ฒ๋ฆฌ๊ฐ ์ด๋ฃจ์ด ์ง๋๋ ??
๋ต์ ๋์ด๋ค.
JS ๋ JS ์ ์์ง์ด ์ฒ๋ฆฌํ๋ค.
HTMLํ์๊ฐ ๋ฌธ์๋ฅผ ์ฒ๋ฆฌํ๋ ์ค๊ฐ์ <script> ํ๊ทธ๋ฅผ ๋ง๋๋ค๋ฉด DOM ์์ฑ๊ณผ์ ์ ์ค์งํ๊ณ JS ์์ง์ผ๋ก ๊ถํ์ ๋๊ธด๋ค.
JS ์์ง์ ๋ฐ์ HTML ํ์ผ์ js์ฝ๋ / src ์์ฑ์ ์ ์๋ JS ํ์ผ์ ๋ก๋ํ๊ณ ํ์ฑํด์ ์คํํ๋ค.
์ด๋ ๊ฒ JS์ ์ฒ๋ฆฌ๊ฐ ๋๋๋ฉด ์ ๋ฌ๋ฐ์ ๊ถํ์ ๋ค์ HTML ํ์๋ก ๋๊ธฐ๋ฉด์ DOM ํธ๋ฆฌ๋ฅผ ๋ค์ ๊ตฌ์ถํด ๋๊ฐ๋ค.
์ด๋ ๊ธฐ ๋๋ฌธ์ ๋ธ๋ผ์ฐ์ ์ ๋์์ "๋๊ธฐ์ "์ผ๋ก ์ด๋ฃจ์ด์ง๋ค๊ณ ๋งํ ์ ์๋ ๊ฒ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ์ถ๊ฐ์ ์ธ ๋ถ๋ถ์ผ๋ก ์ด ๋ถ๋ถ์ด ์๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์ ์ด ๊ถํ์ด ์์ ๋ Javascript ์ฝ๋๊ฐ ์์ฑ๋์ง ์์ DOM์ ์กฐ์ํ๊ฒ ๋๋ค๋ฉด ??
๋น์ฐํ๊ฒ๋ ์๋ฌ๊ฐ ๋ฐ์ํ๊ณ
์ฐ๋ฆฌ๋ ์ด๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด์ ์ฌํ "defer"๋ฅผ ๋ฌ์์ ์ฌ์ฉ์ ํ๋์ง ๋๋,
HTML ํ์ผ์์ Javascript ์ฝ๋๋ฅผ <body>ํ๊ทธ ํ๋จ์ ์์น์์ผ์ ์ฌ์ฉํ๋ ๊ทผ๋ณธ์ ์ธ ์ด์ ์ด๋ค.
'CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CS] : ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ (0) | 2023.08.30 |
---|---|
[CS] : DI ์ IoC (0) | 2023.08.29 |
[CS] : ๊ฐ์ฅ ์ผ๋ฐ์ ์ผ๋ก ์ฐ์ด๋ ๋ฐ์ดํฐ ๋จ์ (0) | 2023.08.28 |
[CS] : TCP / UDP (0) | 2023.08.28 |