Jieunny์ ๋ธ๋ก๊ทธ
S4) Unit 2. [HTML/CSS] ๋ธ๋ผ์ฐ์ &๋ ๋๋ง ๋ณธ๋ฌธ
S4) Unit 2. [HTML/CSS] ๋ธ๋ผ์ฐ์ &๋ ๋๋ง
Jieunny 2023. 3. 16. 12:00๐ฃ ๋ธ๋ผ์ฐ์ ๋?
๐ญ. ๋ธ๋ผ์ฐ์ ์ ์ ์
โ๏ธ ์น ์๋ฒ์์ ์๋ฐฉํฅ์ผ๋ก ํต์ ํ๋ฉฐ HTML ๋ฌธ์ ๋ฐ ๊ทธ๋ฆผ, ๋ฉํฐ๋ฏธ๋์ด ๋ฑ์ ์ปจํ ์ธ ๋ฅผ ์ด๋ํ ์ ์๊ฒ ํด์ฃผ๋ GUI ๊ธฐ๋ฐ์ ์ํํธ์จ์ด ํ๋ก๊ทธ๋จ
โฐ ํ์ด์ง๋ฅผ ๋ค์ด๋ก๋ ํ๊ธฐ ์ํด ์์ฉ ๊ณ์ธต์ ๋ํ์ ์ธ ํ๋กํ ์ฝ์ธ HTTP๋ฅผ ํตํด ์ก์์ ํ๋ค.
โฐ ์น ๋ธ๋ผ์ฐ์ ๋๋ ์น ํ์๊ธฐ๋ผ๊ณ ๋ ํ๋ค.
๐ฎ. ์น(Web)
โ๏ธ ์๋ ์์ด๋ ์น : ์ธํฐ๋ท ์์์ ํ ์คํธ๋ ๊ทธ๋ฆผ, ์๋ฆฌ, ์์ ๋ฑ๊ณผ ๊ฐ์ ๋ฉํฐ๋ฏธ๋์ด ์ ๋ณด๋ฅผ ํ์ดํผํ ์คํธ ๋ฐฉ์์ผ๋ก ์ฐ๊ฒฐํด ์ ๊ณตํ๋ค.
โฐ ์น ํ์ด์ง : HTML ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ๋ ๋ฌธ์ ํํ
โฐ ์น ์ฌ์ดํธ : ์น ํ์ด์ง ์ค ์๋ก ๊ด๋ จ๋ ๋ด์ฉ์ผ๋ก ์์ฑ๋ ์น ํ์ด์ง๋ค์ ์งํฉ
๐ฏ. ๋ธ๋ผ์ฐ์ ์ ํน์ง
โ๏ธ ํ์กดํ๋ ๋ธ๋ผ์ฐ์ ๋ผ๋ฆฌ๋ ๋์ ๋ฐฉ์์ด ๊ฐ๋ค.
โฐ ์ฌ์ฉ์๊ฐ ์ ํํ ์์์ ์๋ฒ์ ์์ฒญํ๊ณ , ์๋ฒ์ ์๋ต์ ๋ธ๋ผ์ฐ์ ์ ๋์ฐ๋ ๋ฐฉ์์ผ๋ก ๋์ํ๋ค.
โฐ ์ฌ๊ธฐ์ ์์์ ๋๊ฐ HTML ๋ฌธ์์ด์ง๋ง PDF, ๋ฉํฐ๋ฏธ๋์ด ๋ฑ์ ํํ์ผ ์ ์์ผ๋ฉฐ ์์์ ์ฃผ์๋ URI๋ก ๋์ด ์๋ค.
๐ฐ. ์น์ ๋์ ์๋ฆฌ
1. ์ฌ์ฉ์๊ฐ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์ฐพ๊ณ ์ถ์ ์น ํ์ด์ง์ URL ์ฃผ์๋ฅผ ์ ๋ ฅํ๋ค.
2. DNS ์๋ฒ์์ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ URL ์ฃผ์ ์ค ๋๋ฉ์ธ ๋ค์์ ๊ฒ์ํ๋ค.
3. ํด๋น ๋๋ฉ์ธ ๋ค์์ ํด๋นํ๋ IP ์ฃผ์๋ฅผ ์ฐพ์ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ URL ์ ๋ณด์ ํจ๊ป ์ ๋ฌํ๋ค.
4. ์ ๋ฌ๋ ์ ๋ณด๋ HTTP ํ๋กํ ์ฝ์ ์ฌ์ฉํด์ HTTP ์์ฒญ ๋ฉ์์ง๋ฅผ ์์ฑํ๊ณ , TCP ํ๋กํ ์ฝ์ ์ฌ์ฉํด ์ธํฐ๋ท์ ๊ฑฐ์ณ ํด๋น IP ์ปดํจํฐ๋ก ์ ์ก๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ์์ฒญ ๋ฉ์ธ์ง๋ ๋ค์ HTTP ํ๋กํ ์ฝ์ ํตํด ์นํ์ด์ง URL ์ ๋ณด๋ก ๋ณํ ๋๋ค.
5. ์น ์๋ฒ๋ ์ด ๋ณํ๋ ์ ๋ณด์ ํด๋นํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์์ ํตํด ์ฐพ์๋ธ ๋ค HTTP ํ๋กํ ์ฝ์ ํตํด HTTP ์๋ต ๋ฉ์์ง๋ฅผ ์์ฑํ๊ณ , ์ด ๋ฉ์์ง๋ ๋ค์ TCP ํ๋กํ ์ฝ์ ์ด์ฉํด ์ธํฐ๋ท์ ๊ฑฐ์ณ ์ฌ์ฉ์์ ์ปดํจํฐ๋ก ์ ์ก๋๋ค.
6. ์ฌ์ฉ์์ ์ปดํจํฐ์ ๋์ฐฉํ HTTP ์๋ต ๋ฉ์์ง๋ HTTP ํ๋กํ ์ฝ์ ์ฌ์ฉํด ์น ํ์ด์ง ๋ฐ์ดํฐ๋ก ๋ณํ๋๊ณ , ๋ณํ๋ ๋ฐ์ดํฐ๋ ์น ๋ธ๋ผ์ฐ์ ์์ ์ถ๋ ฅ๋์ด ์ฌ์ฉ์๊ฐ ๋ณผ ์ ์๊ฒ ๋๋ค.
๐ฐ. ๋ธ๋ผ์ฐ์ ์ ๊ตฌ์กฐ
1๏ธโฃ ์ฌ์ฉ์ ์ธํฐํ์ด์ค(User Interface)
โ๏ธ UI : ์ ์ ์ ๊ฐ์ฅ ๋ฐ์ ํ๊ฒ ๋ง๋ฟ์์๋ ๋ถ๋ถ
โฐ ์ฃผ์ ํ์์ค, ์ด์ /๋ค์ ๋ฒํผ, ๋ถ๋งํฌ ๋ฉ๋ด ๋ฑ์ ๊ด๋ จ๋ GUI ๋ถ๋ถ์ ํต์นญํ๋ค.
2๏ธโฃ ๋ธ๋ผ์ฐ์ ์์ง(Browser Engine)
โ๏ธ UI์ ๋ ๋๋ง ์์ง ์ฌ์ด์ ๋์์ ์ ์ดํ๋ค.
โฐ ๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ(DOM) ์๋ฃ ๊ตฌ์กฐ๋ฅผ ๊ตฌํํ๋ค.
โฐ ๋ ์ด์์ ์์ง์ด๋ผ๊ณ ๋ ๋ถ๋ฅด๋ฉฐ, ๋ ๋๋ง ์์ง๊ณผ ๋ฌถ์ด ๋ณดํต ๋ธ๋ผ์ฐ์ ์์ง์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
โฐ ๋ธ๋ผ์ฐ์ ์์ง์ ์น ๋ธ๋ผ์ฐ์ ๋ง๋ค ์ ์ฉ ์์ง์ ์ฌ์ฉํ๋ค.
ใด ํฌ๋กฌ์ ๋ธ๋งํฌ(Blink)
3๏ธโฃ ๋ ๋๋ง ์์ง(Rendering Engine)
โ๏ธ ์์ฒญํ ์ฝํ ์ธ ๋ฅผ ํ๋ฉด์ ์ถ๋ ฅํ๋ ์ญํ ์ ํ๋ค.
โฐ HTML, CSS๋ฅผ ์ต์ข ์ ์ผ๋ก ํ์ฑํด์ ํ๋ฉด์ ๊ทธ๋ ค์ค๋ค.
โฐ ๋ณดํต ๋ธ๋ผ์ฐ์ ์์ง๊ณผ ๋ฌถ์ด ํ๋๋ก ๋ณด๋ ์๊ฐ์ด ๋ง๋ค.
โฐ ์น ๋ธ๋ผ์ฐ์ ๋ง๋ค ์ ์ฉ ์์ง์ ์ฌ์ฉํ๋ค.
4๏ธโฃ ํต์ (Networking)
โ๏ธ HTTP ์์ฒญ๊ณผ ๊ฐ์ ๋คํธ์ํฌ ํธ์ถ์ ์ฌ์ฉ๋๋ค.
โฐ ํ๋ซํผ์ ๋ ๋ฆฝ์ ์ธ ์ธํฐํ์ด์ค์ด๊ณ , ํ๋ซํผ์ ํ๋ถ์์ ์คํ๋๋ค.
5๏ธโฃ ์๋ฐ์คํฌ๋ฆฝํธ ํด์๊ธฐ(JavaScript Interpreter)
โ๏ธ JS์ฝ๋๋ฅผ ์์์ ์๋๋ก ํ ์ค์ฉ ์ฝ์ด ๋ด๋ ค๊ฐ๋ ๋ฐฉ์์ผ๋ก ํ์ฑํ๋ ์ธ์ด
โฐ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด๋ผ๊ณ ๋ ๋ถ๋ฅด๋ฉฐ, ๋ธ๋ผ์ฐ์ ๋ง๋ค ์ ์ฉ ์์ง์ด ํ์ฌ๋์ด ์๋ค.
ใด V8(๊ตฌ๊ธ์ด ๊ฐ๋ฐํ ํฌ๋กฌ์ ์คํ์์ค JS ์์ง)
ใด V8 ์์ง์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ๋ ํฌ๊ฒ Heap Memory์ Call Stack์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
โ๏ธ ํ ๋ฉ๋ชจ๋ฆฌ(Heap Memory)
โฐ ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ฌ์ฉ๋๋ ์๋ฃ๊ตฌ์กฐ
โฐ ๊ฐ์ฒด ๋๋ ๋์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ฉฐ, ์ด๊ณณ์ ์ ์ฅ๋๋ ๋ฉ๋ชจ๋ฆฌ๋ V8 ์์ง ๋ด๋ถ์์ ๊ฐ์ฅ ํฐ ๊ณต๊ฐ์ ์ฐจ์งํ๊ณ ๊ฐ๋น์ง ์ปฌ๋ ์ ๋ ๋ฐ์ํ๋ค.
โ๏ธ ์ฝ ์คํ(Call Stack)
โฐ ํ๋ก๊ทธ๋จ์์์ ์ฐ๋ฆฌ๊ฐ ์ด๋์ ์๋์ง ๊ธฐ๋กํ๋ ์๋ฃ๊ตฌ์กฐ
โฐ ํ๋๋ง ์กด์ฌํ๋ฉฐ, ํ ๋ฒ์ ํ ์์ ๋ง ์ฌ์ฉํ ์ ์๋ค.
โฐ ํฌ๊ธฐ์ ์ ํ์ด ์๋ค.
function multiplyz(a, b) { | |
return a * b; | |
| multiply(n,n) |
} | square(n) |
| printSquare(4) |
function square(n) {
return multiply(n, n);
}
function printSquare(n) {
let squared = square(n);
console.log(squared);
}
printSquare(4);
โฐ return ๋๋ ์์๋๋ก stack์์ ์ ๊ฑฐํ๋ค.
โฐ square(n) ํจ์๊น์ง ๋ฆฌํด๋๋ฉด, console.log ๊ฐ ์คํ๋์ผ ํ๊ธฐ ๋๋ฌธ์ console.log(sqaured)๊ฐ ์ฝ ์คํ์ผ๋ก push๋๊ณ , ์คํ๋๊ณ ๋๋ฉด printSquare ํจ์ ๋ํ ์คํ๋์์ผ๋ฏ๋ก, ์คํ์์ ์ ๊ฑฐ๋๋ค.
โฐ ์คํ ํ๋ ์ : ์ฝ ์คํ์ ์์ด๋ ๋ฐ์ดํฐ ํ๋ํ๋
โฐ ์คํ ์ค๋ฒํ๋ก : ์คํ์ ํ์ ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋์ด๋ฒ๋ฆฌ๊ฒ ๋๋ฉด ๋ฐ์์ํค๋ ์๋ฌ
-> ์น ๋ธ๋ผ์ฐ์ ๊ฐ ๋ฉ์ถ๊ณ , UX์๋ ์ข์ง ๋ชปํ๋ค!
โฐ ์คํ ์ถ์ : ๋ธ๋ผ์ฐ์ ์ ์ฝ์ ๋ก๊ทธ๋ฅผ ์ดํด๋ณด๋ฉด ์๋ฌ ๋ฐ์ ์์ธ์ ์์๋ผ ์ ์๋ค.
6๏ธโฃ UI ๋ฐฑ์๋
โ๏ธ ๋ ๋๋ง ์์ง์ด ๋ถ์ํ Render Tree๋ฅผ ๋ธ๋ผ์ฐ์ ์ ๊ทธ๋ฆฌ๋ ์ญํ ์ ํ๋ค.
โฐ OS ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ฉฐ, ์ด ์ธํฐํ์ด์ค๋ ์ฌ๋ฌ ํํ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
โฐ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํด์๋ ๋ช ๋ น์ด ๋ผ์ธ ์ธํฐํ์ด์ค(Command Line Interface - ํฐ๋ฏธ๋ or ๋ช ๋ น ํ๋กฌํํธ), ์ผ๊ด ์ฒ๋ฆฌ ์ธํฐํ์ด์ค(Batch interface), ๊ทธ๋ํฝ ์ฌ์ฉ์ ์ธํฐํ์ด์ค(GUI) ์ค ํ๋๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
โฐ ๋ณดํต์ ๊ทธ๋ํฝ ์ฌ์ฉ์ ์ธํฐํ์ด์ค(GUI)๋ฅผ ์ฌ์ฉํ๋ค.
7๏ธโฃ ์๋ฃ ์ ์ฅ์(Web Storage)
โ๏ธ ์๋ฃ๋ฅผ ์ ์ฅํ๋ ๊ณ์ธต - ์น ์ ์ฅ์(Web Storage)
โฐ ์๊ตฌ์ ์ธ ์ ์ฅ์์ธ Local Storage, ์์์ ์ด ์ ์ฅ์์ธ Session Storage ๊ฐ ์๋ค.
โ๏ธ ์น ์คํ ๋ฆฌ์ง ํน์ง
โฐ ์ฟ ํค ์์ฒด์ ๋ณด์ ์ทจ์ฝ์ฑ๊ณผ ์ฉ๋ ์ ํ์ ๋ณด์ํ๊ธฐ ์ํด ๋ฑ์ฅํ๋ค.
โฐ ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์ง์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๊ฒ ํด์ฃผ๋ฉฐ, ์๋ฒ์๋ ์ ์ฅํ ์ ๋ณด๊ฐ ์ ์ก๋์ง ์๊ธฐ ๋๋ฌธ์ ๋คํธ์ํฌ ํธ๋ํฝ ๋น์ฉ์ ์ค์ฌ์ค๋ค.
โฐ ์ค๋ฆฌ์ง(๋๋ฉ์ธ + ํ๋กํ ์ฝ)๋ง๋ค ๋จ ํ๋์ฉ ์กด์ฌํ๋ค.
โ๏ธ ์น ์คํ ๋ฆฌ์ง ์ข ๋ฅ
โฐ ๋ก์ปฌ ์คํ ๋ฆฌ์ง
ใด ๋ณด๊ด ๊ธฐํ์ด ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค.
ใด ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ซ๊ฑฐ๋, ์ปดํจํฐ๋ฅผ ์ฌ๋ถํ ํด๋ ๋ฐ์ดํฐ๊ฐ ์ฌ๋ผ์ง์ง ์๋๋ค.
ใด ๋๋ฉ์ธ๋ง๋ค ๋ณ๋์ ๋ก์ปฌ ์คํ ๋ฆฌ์ง๊ฐ ์์ฑ๋๊ธฐ ๋๋ฌธ์ ๋๋ฉ์ธ๋ง ๊ฐ์ผ๋ฉด ์ ์ญ์ผ๋ก ๋ฐ์ดํฐ ๊ณต์ ๊ฐ ๊ฐ๋ฅํด์ง๋ค.
โฐ ์ธ์ ์คํ ๋ฆฌ์ง
ใด ํ๋์ ์ธ์ ๋ง์ ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค.
ใด ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ซ์ผ๋ฉด ์ด ๊ฐ์ฒด์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ ์ฌ๋ผ์ง๋ค.
ใด ๋๋ฉ์ธ๋ณ๋ก ์์ฑ๋๋ฉฐ, ๋ธ๋ผ์ฐ์ ์ปจํ ์คํธ๊ฐ ๋ค๋ฅด๋ฉด ์๋ก ๋ค๋ฅธ ์์ญ์ด ๋๋ค(๋ธ๋ผ์ฐ์ ๋ ๊ฐ๋ฅผ ์คํํด ๊ฐ์ ํ์ด์ง๋ฅผ ์ด์์ ๋, ๋ธ๋ผ์ฐ์ ์ ์ปจํ ์คํธ๊ฐ ์๋ก ๋ค๋ฅด๋ฉด ์๋ก ๋ฐ์ดํฐ ๊ณต์ ๊ฐ ๋ถ๊ฐ๋ฅํ๋ค)
ใด ๋ธ๋ผ์ฐ์ ์ปจํ ์คํธ : ๋ธ๋ผ์ฐ์ ๊ฐ ๋ฌธ์๋ฅผ ํ์ํ๋ ํ๊ฒฝ
โ๏ธ ์น ์คํ ๋ฆฌ์ง ๋ฌธ๋ฒ
โฐ window.localStroage : ๋ง๋ฃ ๋ ์ง๊ฐ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋ ์ฌ์ฉ
โฐ window.sessionStorage : ์ธ์ ์ด ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋ ์ฌ์ฉ
//window ๊ฐ์ฒด์ ์๋ Storage ๊ฐ์ฒด๋ฅผ ํตํด ํ์ธํ ์ ์์ต๋๋ค.
//ํด๋น ๊ฐ์ฒด๊ฐ ์กด์ฌํ์ง ์๋ ๋ธ๋ผ์ฐ์ ๋ผ๋ฉด `undefined`๋ฅผ ๋ฐํํ๊ณ , ์กด์ฌํ๋ค๋ฉด ๊ฐ์ฒด๋ฅผ ๋ฐํํฉ๋๋ค.
if (typeof(Storage) !== "undefined") {
// web storage๋ฅผ ์ํ ์ฝ๋ ๋ถ๋ถ
} else {
// web storage๋ฅผ ์ง์ํ์ง ์๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ํ ์๋ด ๋ถ๋ถ
}
โ๏ธ ์น ์คํ ๋ฆฌ์ง๋ฅผ ํ์ฉํ ๊ธฐ๋ฅ
โฐ ๋ณต๊ตฌ ๋ฐ ๋ฐฑ์ ๊ด๋ จ ๊ธฐ๋ฅ
ใด ๋ธ๋ก๊ทธ ๊ธ ๋ณต๊ตฌ ๋ฐ ๋ฐฑ์
ใด form ์ ๋ ฅ ์ค ๋ฒ์ด๋ฌ์ ๋ ๋ณต๊ตฌ ๋ฐ ๋ฐฑ์
๐ฃ ๋ธ๋ผ์ฐ์ ๋ ๋๋ง
๐ญ. ๋ธ๋ผ์ฐ์ ๋ ๋๋ง์ด๋?
โ๏ธ HTML, CSS, JavaScript ๋ฑ ๊ฐ๋ฐ์๊ฐ ์์ฑํ ๋ฌธ์๊ฐ ๋ธ๋ผ์ฐ์ ์์ ์ถ๋ ฅ๋๋ ๊ณผ์
โฐ ๋ธ๋ผ์ฐ์ ๋ ๋ ๋๋ง์ ์ํํ๋ ๋ ๋๋ง ์์ง์ ๊ฐ์ง๊ณ ์๋ค.
๐ฎ. ๋ธ๋ผ์ฐ์ ๋ ๋๋ง ๊ณผ์
1. ์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์น ์ฌ์ดํธ์ ์ ์ํ๋ค.
2. ์๋ฒ๋ก๋ถํฐ HTML, CSS ๋ฑ ํ์ํ ๋ฆฌ์์ค๋ฅผ ๋ค์ด๋ฐ๋๋ค.
3. ๋ ๋๋ง ์์ง์ ์ ๋ฌ๋ง์ HTML ๋ฌธ์๋ฅผ ํ์ฑํด์ DOM Tree๋ฅผ ๋ง๋ ๋ค.
4. ๋ค์ด๋ฐ์ ์ธ๋ถ CSS ํ์ผ๊ณผ ํจ๊ป ํฌํจ๋ ์คํ์ผ ์์๋ฅผ ํ์ฑํด CSSOM Tree๋ฅผ ๋ง๋ ๋ค.
5. ๋ง๋ DOM ํธ๋ฆฌ์ CSSOM ํธ๋ฆฌ๋ฅผ ๊ฒฐํฉํด Render ํธ๋ฆฌ๋ฅผ ๊ตฌ์ถํ๋ค.
6. ๋ ์ด์์ ๊ณผ์ ์ ํตํด ์์์ ๋ฐฐ์น ์์น๋ฅผ ์ ํ๋ค.
7. ๋ ์ด์์ ๊ณผ์ ์ด ๋๋๋ฉด UI ๋ฐฑ์๋์์ Render ํธ๋ฆฌ๋ฅผ ํ๋ฉด์ ๊ทธ๋ฆฌ๊ธฐ ์์ํ๋ค -> Paint
1๏ธโฃ ํ์ฑ(Parsing)
โ๏ธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์์ฑ๋ ํ์ผ์ ์คํ์ํค๊ธฐ ์ํด ๊ตฌ๋ฌธ ๋ถ์์ ํ๋ ๋จ๊ณ
โฐ ํ์๊ฐ ์งํํ๋ฉฐ, ํ์๋ HTML ํ์ผ์ ์ฝ๋๋ฅผ ๋ฌธ๋ฒ์ ์๋ฏธ๋ฅผ ๊ฐ๋ ์ต์ ๋จ์์ธ 'ํ ํฐ'์ผ๋ก ํ ๋ฒ ๋ถํดํ๊ณ , ์ด ํ ํฐ๋ค์ '๋ ธ๋'๋ผ๋ ์์๋ก ๋ฐ๊พผ๋ค.
โฐ ๋ ธ๋๋ค์ ์ํ ๊ด๊ณ์ ๋ฐ๋ผ ํ๋์ ํธ๋ฆฌ(ํ์ค ํธ๋ฆฌ or ๋ฌธ๋ฒํธ๋ฆฌ) ๋ฅผ ํ์ฑํ๋ค.
โ๏ธ ๋ฌธ์ ํ์ฑ : ๋ธ๋ผ์ฐ์ ๊ฐ ์ฝ๋๋ฅผ ์ดํดํ๊ณ ์ฌ์ฉํ ์ ์๋ ๊ตฌ์กฐ๋ก ๋ณํํ๋ ๊ฒ
โฐ DOM Tree, CCSSOM Trss๋ฅผ ๋ง๋๋ ๊ณผ์
โฐ DOM ํธ๋ฆฌ๋ก ํ์ฑํ๋ ๊ณผ์ ์์ HTML ํ ํฐ์ด ๋ง๋ค์ด์ง๋๋ฐ, ์ด ํ ํฐ์๋ ์์ ํ๊ทธ์ ๋ง์นจ ํ๊ทธ, ์์ฑ ์ด๋ฆ๊ณผ ๊ฐ๋ ํฌํจ์ด ๋๋ค.
โฐ ํ ํฐ์ผ๋ก ๋ณํ ์ ๋ ฅ๊ฐ์ ํ์์ ์ํด ๋ ธ๋๊ฐ ๋๊ณ , ์ต์ข ์ ์ผ๋ก DOM์ผ๋ก ๊ตฌ์ฑ์ด ๋๋ค.
โฐ ์ด ๊ณผ์ ์์ ๋ธ๋ผ์ฐ์ ๊ฐ CSS ์คํ์ผ์ ๋ง๋ ๊ฒฝ์ฐ CSSOM ํธ๋ฆฌ๋ก ํ์ฑํ๊ณ , <script> ํ๊ทธ๋ฅผ ๋ง๋ ๊ฒฝ์ฐ ๋ ๋๋ง์ ์ฐจ๋จํ๋ฉด์ HTML ํ์ฑ ๋ํ ์ค๋จํ๋ค.
โฐ ์ค๋จ ํ, <script> ํ๊ทธ ๋ด src ์์ฑ์ผ๋ก ์ฐ๊ฒฐ๋ ํ์ผ์ ๋ค์ด๋ฐ์ ํ์ฑํ๊ณ ์คํ์ํจ ๋ค ๋ค์ HTML ํ์ผ์ ํ์ฑํ๊ธฐ ์์ํ๋ค.
โ๏ธ DOM Tree : HTML ๋ฌธ์์ ์์๋ค์ ์ค์ฒฉ ๊ด๊ณ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ ธ๋๋ค์ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ๊ตฌ์ฑํ ๊ฒ
โฐ Document Object Model
โฐ HTML ํ๊ทธ๋ ์์ฑ์ ๋ธ๋ผ์ฐ์ ๊ฐ ์ดํดํ ์ ์๋ ํํ์ธ ๊ฐ์ฒด๋ก ๋ฐ๊ฟ์ค ๊ฒ
โ๏ธ CSSOM Tree : CSS ๊ด๋ จ ํ์ผ์ ํ์ฑํด ๋ง๋ ํธ๋ฆฌ
โฐ CSS Object Model
โฐ CSS๋ ๋ถ๋ชจ์ ์์ฑ์ ์์์ด ์์๋ฐ๊ธฐ ๋๋ฌธ์ p๋ ๋ถ๋ชจ์ ์์ฑ์ธ font-size, ์์ ์ ์์ฑ์ธ font-weight ๋๊ฐ์ ์์ฑ์ ๊ฐ๊ฒ ๋๋ค.
โ๏ธ ๋ ๋ ํธ๋ฆฌ(Render Tree) : DOM ํธ๋ฆฌ์ CSSOM ํธ๋ฆฌ๋ฅผ ํฉ์น ํธ๋ฆฌ
โฐ ๋ ๋๋ง์ ๋ชฉ์ ์ผ๋ก ๋ง๋ค์ด์ง๋ ํธ๋ฆฌ
โฐ ๋ณด์ด์ง ์์ ์์๋ค์ ์ด ํธ๋ฆฌ์ ํฌํจ์ํค์ง ์๋๋ค(<meta>๋ display:none ์ด ์ ์ฉ๋ ์์๋ ์ ์ธ๋๋ค)
โ๏ธ ๋ ์ด์์ : ๋ ๋ํธ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก HTML ์์์ ๋ ์ด์์(์์น, ํฌ๊ธฐ ๋ฑ)์ ๊ณ์ฐํ์ฌ ๋ธ๋ผ์ฐ์ ํ๋ฉด ์ด๋์ ๋ฐฐ์นํ ์ง ๊ฒฐ์ ํ๋ ๊ณผ์
โฐ ๋ ๋ ํธ๋ฆฌ๋ ํ์ธํ ๊ณผ์ ์ ๊ฑฐ์ณ์ผ ๋ธ๋ผ์ฐ์ ์์ ํ๋ฉด์ผ๋ก ๊ทธ๋ ค์ง๋ค.
โฐ ๋ธ๋ผ์ฐ์ ๋ ๋ ๋ํธ๋ฆฌ๋ฅผ ์์์ ์๋๋ก ์ฝ์ด ๋ด๋ ค๊ฐ๋ฉฐ px ๋จ์๋ก ๊ฐ ์์๊ฐ ์ ์ฒด ํ๋ฉด์์ ์ด๋์, ์ด๋ค ํฌ๊ธฐ๋ก, ์ด๋ป๊ฒ ๋ฐฐ์น๋์ด์ผ ํ๋์ง ํ์ ํ๋ค.
โ๏ธ ํ์ธํ : ๋ ์ด์์์์ ๊ฒฐ์ ๋ ๋๋ก ๊ทธ๋ฆผ์ ๊ทธ๋ฆฌ๊ธฐ ์์
โฐ ๊ฐ ์ ๋ณด๋ฅผ ๊ฐ์ง ํฝ์ ๋ค์ด ๋ชจ์ฌ ํ๋์ ํ๋ฉด์ ๊ตฌ์ฑํ๋ ๊ฒ
๐ฃ ๋ฆฌํ๋ก์ฐ์ ๋ฆฌํ์ธํธ
๐ญ. ๋ฆฌํ๋ก์ฐ(Reflow)์ ๋ฆฌํ์ธํธ(Repaint)
โ๏ธ ๋ฆฌํ๋ก์ฐ : ์น ์ธํฐ๋ ์ ์ผ๋ก ์ธํด ๋ ๋๋ง ๊ณผ์ ์ ๋ ์ด์์์ ๋ฐ๋ณตํด ์ํํ๋ ๊ฒ
โฐ ์น ์ธํฐ๋ ์ : ํฌ๊ธฐ ์กฐ์ , ์์ ์ญ์ ๋๋ ์ถ๊ฐ ๋ฑ
โ๏ธ ๋ฆฌํ์ธํธ : ํ์ธํธ ๊ณผ์ ์ ๋ฐ๋ณตํด ์ํํ๋ ๊ฒ
๐ฎ. ๋ฆฌํ๋ก์ฐ์ ๋ฆฌํ์ธํธ์ ์ต์ ํ
โ๏ธ ๋ฆฌํ๋ก์ฐ๋ ๋ ๋๋ง์ ๋ค์ ํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ฐฐ์น๋ฅผ ์ํ ์ฐ์ฐ์ ํด์ผ ํด์ ์ค์ ๋ก CPU๋ฅผ ๋ง์ด ์ฐจ์งํ๋ค.
โ๏ธ ๋ฆฌํ์ธํธ๋ ํ์ธํธ๋ฅผ ๋ค์ ํ๋ ๊ฒ์ด๋ผ ํฝ์ ์ ๋ค์ ํ๋ฉด์ ์ฐ์ด ๊ทธ๋ ค์ผ ํ๋ฏ๋ก CPU๋ฅผ ๋ง์ด ์ฐจ์งํ๋ค.
โฐ ํ๋ ์ ๋๋ ํ์๊ณผ ์ง์ ์ ์ธ ์ฐ๊ด์ด ์๋ค.
ใด ํ๋ ์ ๋๋ : ์ด๋น 60ํ๋ ์์ผ๋ก ์ ์ง์ํค๋ ํ๋ ์์ ์๊ฐ ๋ธ๋ผ์ฐ์ ์ ๊ณผ๋ถํ๋ก ์ธํด ์ค์ด๋๋ ํ์
ใด ๋ธ๋ผ์ฐ์ ๋ ๋๋๋ ํ๋ ์์ ํ๋ฉด์ ๊ทธ๋ฆฌ์ง ๋ชปํ๊ณ , ์ ์ ๋ ํ๋ฉด์ด ๋ฉ์ถ๊ฑฐ๋ ๋ฒ๋ฒ ์ธ๋ค๊ณ ๋๋ผ๊ฒ ๋๋ค.
ใด ์ด๋ UX์ ์ข์ง ์๊ธฐ ๋๋ฌธ์ '์ต์ ํ'๋ฅผ ๊ณ ๋ คํด์ผ ํ๋ค.
1๏ธโฃ ๋ถํ์ํ ๋ ์ด์์์ ์ค์ธ๋ค.
โ๏ธ CSSOM ํธ๋ฆฌ์ CSS ์์ฑ ์ค์ ๋ ์ด์์์ ๋ฐ์์ํค๋ ์์ฑ๋ค์ด ์กด์ฌํ๋ค.
โฐ position, width, height, left, border, display ๋ฑ..
โฐ ๋๊ฒ ์์น, ํน์ ๋๋น์ ๊ด๋ จ๋ ์์ฑ์ด ๋ง๋ค.
โฐ ๋๋ฌธ์ ์ด๋ฐ ์์ฑ์ ์ด์ฉํ ์ ๋๋ฉ์ด์ ๋ณด๋ค๋ transform ์์ฑ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค -> ๋ ์ด์์์ ๋ฐ์์ํค์ง ์๊ณ ํ์ธํธ๋ง ๋ค์ ๋ฐ์์ํค๋ ์ชฝ์ผ๋ก ๋ ๋๋ง ๊ณผ์ ์ด ์ผ์ด๋๊ธฐ ๋๋ฌธ์ ์ ์งํ๊ณ ์ ํ๋ ํ๋ ์ ์๋ฅผ ๊ธฐ๋ํ ์ ์๋ค.
2๏ธโฃ ์ํฅ์ ์ฃผ๋ ๋ ธ๋๋ฅผ ์ค์ธ๋ค.
โ๏ธ position์ absolute ๋๋ fixed๋ฅผ ์ฌ์ฉํด์ฃผ๋ฉด ์ํฅ์ ๋ฐ๋ ๋ ธ๋๋ค์ ์ค์ฌ์ค ์ ์๋ค.
โฐ fixed์ ๊ฐ์ด ์ํฅ์ ๋ฐ๋ ๋ ธ๋๊ฐ ์ ํ ์๋ ๊ฒฝ์ฐ ๋ฆฌํ๋ก์ฐ ๊ณผ์ ์ด ํ์์๊ธฐ ๋๋ฌธ์ ๋ฆฌํ์ธํธ ์ฐ์ฐ ๋น์ฉ๋ง ๋ค์ผ ์ ์๋ค.
'CodeStates > learning contents' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
S4) Unit 2. [HTML/CSS] CSS ์ ๋๋ฉ์ด์ & Canvas (0) | 2023.03.17 |
---|---|
S4) Unit 2. [HTML/CSS] ๋ฐ์ํ ์น (0) | 2023.03.16 |
S4) Unit 1. [์๋ฃ๊ตฌ์กฐ/ ์๊ณ ๋ฆฌ์ฆ] Tree & Graph (0) | 2023.03.15 |
S4) Unit 1. [์๋ฃ๊ตฌ์กฐ/ ์๊ณ ๋ฆฌ์ฆ] ์๋ฃ๊ตฌ์กฐ & Stack & Queue (2) | 2023.03.14 |
Section 3. [๊ธฐ์ ๋ฉด์ ] (0) | 2023.03.13 |