๐โ๏ธ๋ชฉ์ฐจ
- ๋ธ๋ผ์ฐ์ ๋ง๋ค ๋ค๋ฅธ ๋ ๋๋ง ์์ง์ ์ฌ์ฉ
- ๋ ๋๋ง ์์ง์ ๋ชฉํ
- ๋ ๋๋ง ์์ง์ ๋์ ๊ณผ์
UI๊ฐ ์ ๋ฐ์ดํธ ๋๋ ์ํฉ
๐ป๋ธ๋ผ์ฐ์ ์ ๊ดํ์ฌ
โ ๋ธ๋ผ์ฐ์
- ์น ์๋ฒ์์ ์๋ฐฉํฅ ํต์ ํ๋ HTML๋ฌธ์๋ ํ์ผ๊ณผ ์ฐ๋ํ๊ณ ์ถ๋ ฅํ๋ ๊ทธ๋ํฝ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ๊ธฐ๋ฐ์ ์์ฉ ์ํํธ์จ์ด
- ์น์๋ฒ์ ์นํ์ด์ง ์์ฒญ → ์น ์๋ฒ๋ก๋ถํฐ ์๋ต์ ๋ฐ์ → ์๋ต(HTML๋ฌธ์ ๋ฑ)์ ์ฝ์ด์ ํด์ → ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ค
- ๊ตฌ๊ธ ํฌ๋กฌ, ์ธํฐ๋ท ์ต์คํ๋ก๋ฌ, ๋ชจ์ง๋ผ ํ์ด์ดํญ์ค ๋ฑ์ด ๋ํ์ ์ธ ์
โ ๋ธ๋ผ์ฐ์ ์ ๊ตฌ์ฑ
- ์ฌ์ฉ์ ์ธํฐํ์ด์ค : ์ฃผ์ ํ์์ค, ์ด์ /๋ค์ ๋ฒํผ, ๋ถ๋งํฌ ๋ฉ๋ด ๋ฑ (์์ฒญํ ํ์ด์ง๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ฐฝ์ ์ ์ธํ ๋๋จธ์ง ๋ชจ๋ ๋ถ๋ถ)
- ๋ธ๋ผ์ฐ์ ์์ง : ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ๋ ๋๋ง ์์ง ์ฌ์ด์ ๋์์ ์ ์ด
- ๋ ๋๋ง ์์ง : ์์ฒญํ ์ฝํ ์ธ ๋ฅผ ํ์ (ex: HTML์ ์์ฒญํ๋ฉด HTML๊ณผ CSS๋ฅผ ํ์ฑํ์ฌ ํ๋ฉด์ ํ์)
- ํต์ : HTTP ์์ฒญ๊ณผ ๊ฐ์ ๋คํธ์ํฌ ํธ์ถ์ ์ฌ์ฉ๋จ. ์น ์๋ฒ์ ํต์ ์ด ๊ฐ๋ฅํ๊ฒ ํจ
- ์๋ฐ์คํฌ๋ฆฝํธ ํด์๊ธฐ : ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ํด์ํ๊ณ ์คํํจ
- UI ๋ฐฑ์๋ : ์ฝค๋ณด๋ฐ์ค์ ์ฐฝ ๊ฐ์ ๊ธฐ๋ณธ์ ์ธ ์ฅ์น๋ฅผ ๊ทธ๋ฆผ. ํ๋ซํผ์์ ๋ช ์ํ์ง ์์ ์ผ๋ฐ์ ์ธ ์ธํฐํ์ด์ค๋ก์ OS ์ฌ์ฉ์ ์ธํฐํ์ด์ค ์ฒด๊ณ ์ฌ์ฉ
- ์๋ฃ ์ ์ฅ์ : ๋ก์ปฌ์คํ ๋ฆฌ์ง๋ ์ฟ ํค์ ๊ฐ์ ๋ก์ปฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํจ
๐ป๋ ๋๋ง ์์ง
โ ๋ธ๋ผ์ฐ์ ๋ง๋ค ๋ค๋ฅธ ๋ ๋๋ง ์์ง์ ์ฌ์ฉ
- ์ฌํ๋ฆฌ → Webkit
- ํ์ด์ดํญ์ค → Gecko
- ํฌ๋กฌ → Blink (Webkit์ ์ฌ์ฉํ๋ค๊ฐ 2014๋ ์ ๋ณ๊ฒฝ)
โ ๋ ๋๋ง ์์ง์ ๋ชฉํ
- HTML, CSS, JS, ์ด๋ฏธ์ง ๋ฑ ์น ํ์ด์ง์ ํฌํจ๋ ๋ชจ๋ ์์๋ค์ ํ๋ฉด์ ๋ณด์ฌ์ฃผ๊ธฐ
- ์ ๋ฐ์ดํธ๊ฐ ํ์ํ ๋, ํจ์จ์ ์ผ๋ก ๋ ๋๋ง์ ํ ์ ์๋๋ก ์๋ฃ๊ตฌ์กฐ๋ฅผ ์์ฑํ๊ธฐ
โ ๋ ๋๋ง ์์ง์ ๋์ ๊ณผ์
1. DOM ํธ๋ฆฌ ์์ฑ, CSSOM ํธ๋ฆฌ ์์ฑ
2. ๋ ๋ ํธ๋ฆฌ ๊ตฌ์ถ
- ๋ ๋ ํธ๋ฆฌ : ํ๋ฉด์ ํ์๋์ด์ผ ํ ๋ชจ๋ ๋ ธ๋์ ์ปจํ ์ธ , ์คํ์ผ ์ ๋ณด๋ฅผ ํฌํจํ๋ ํธ๋ฆฌ(DOMํธ๋ฆฌ + CSSOMํธ๋ฆฌ)
metaํ๊ทธ
,display: none;
๋ฑ ๋ ๋์ ๊ด๊ณ ์๋ ์ ๋ณด๋ ์ ์ธํจ
3. ๋ ๋ ํธ๋ฆฌ ๋ฐฐ์น (Layout, Reflow)
- ๋ทฐํฌํธ ๋ด์์ ์์๋ค์ ์ ํํ ์์น, ํฌ๊ธฐ๋ฅผ ๊ณ์ฐํ๋ ๋จ๊ณ
- CSS์์
%
๋em
๋ฑ ์๋์ ์ธ ๋จ์๋ฅผ ์ฌ์ฉํ์ ๊ฒฝ์ฐ ๋ทฐํฌํธ์ ๋ง์ถฐpx
๋ก ๋ณํ
4. ๋ ๋ ํธ๋ฆฌ ๊ทธ๋ฆฌ๊ธฐ (Paint, Repaint)
๐ปUI๊ฐ ์ ๋ฐ์ดํธ ๋๋ ์ํฉ
โ UI ์ ๋ฐ์ดํธ ํ๋ก์ธ์ค
์ฌ์ฉ์๋์ ๋ฑ์ผ๋ก JS๊ฐ ์คํ๋์ด CSS๊ฐ ๋ณ๊ฒฝ๋๊ฑฐ๋ ์ ๋๋ฉ์ด์ ์ด ์คํ ๋ ๊ฒฝ์ฐ ์๋์ ํ๋ก์ธ์ค๋ฅผ ๊ฑฐ์ณ ํ๋ฉด์ด ์ ๋ฐ์ดํธ ๋๋ค.
- JavaScript
- JQuery์ animateํจ์, ๋ฐ์ดํฐ ์งํฉ ์ ๋ ฌ, ํ์ด์ง์ DOM ์์ ์ถ๊ฐ ๋ฑ ์๊ฐ์ ๋ณํ๋ฅผ ์ผ์ผํค๋ ์์ ์ ์ฒ๋ฆฌํ๋๋ฐ ์ฌ์ฉ๋จ
- CSS Animations, Transitions ๋ฐ Web Animations API๋ ์ฌ์ฉ ๋จ
- Style
- ๋งค์นญ ์ ํ๊ธฐ์ ๋ฐ๋ผ ์ด๋ค CSS ๊ท์น์ ์ด๋ค ์์์ ์ ์ฉํ ์ง ๊ณ์ฐํ๋ ํ๋ก์ธ์ค
- Layout
- ์์๊ฐ ํ๋ฉด์์ ์ฐจ์งํ๋ ๊ณต๊ฐ ๋ฐ ๋ฐฐ์น ๋๋ ์์น๋ฅผ ๊ณ์ฐ
- ๋ค๋ฅธ ์์์ ์ํฅ์ ํฌ๊ฒ ์ฃผ๊ธฐ ๋๋ฌธ์, ๋ธ๋ผ์ฐ์ ์ ์๋นํ ์ํฅ์ ์ค ์ ์๋ ๋จ๊ณ
- Paint
- ํฝ์ ์ ์ฑ์ฐ๋ ํ๋ก์ธ์ค
- ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง, ํ ์คํธ, ์์, ๊ทธ๋ฆผ์ ๋ฑ์ ๊ทธ๋ฆฌ๋ ์์
- Composite
- paint ํ ์์ญ์ layer๋ก ๋๋๋๋ฐ, ์ด๋ฅผ ํ๋์ ๋นํธ๋งต์ผ๋ก ํฉ์ฑํ์ฌ ํ์ด์ง๋ฅผ ์์ฑํจ
โ UI ์ ๋ฐ์ดํธ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ ๋ฐ๋ฅธ ๋ถ๋ฅ
1. Layout๋ถํฐ ์ฌ์คํ
์๋ฅผ๋ค์ด CSS์ left ์์ฑ์ ๋ณ๊ฒฝํ๋ ์ ๋๋ฉ์ด์ ์ด ์์ผ๋ฉด, ์ด๋ ์ ๋๋ฉ์ด์ ํ ํ๋ ์ ๋ง๋ค
์์น๋ ํฌ๊ธฐ๋ฅผ ๊ณ์ฐ(Layout) → ์๋ก ํ๋ฉด์ ๊ทธ๋ฆผ(Paint) → ๋ค์ ํฉ์ฑ(Composite)ํ๋ ๋ณต์กํ ์ฐ์ฐ์ ํด์ผ ํ๋ค
2. Paint๋ถํฐ ์ฌ์คํ
ํ์ด์ง์ ๋ ์ด์์์ ์ํฅ์ ์ฃผ์ง ์๋ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง(ํน์ ์์), ํ ์คํธ์ ์์, ๊ทธ๋ฆผ์ ๋ฑ์ ๋ณ๊ฒฝํ๋ฉด
Paint๋ฅผ ์คํ ํ Composite๋ฅผ ์คํํ๊ฒ ๋๋ค.
3. Composite๋ง ์ฌ์คํ
์ด๋ ๊ฒ์ผ๋ก ๋ณด๊ธฐ์๋ 1๋ฒ์ left์ ๊ฐ์ ๋์์ ํ๊ธฐ ๋๋ฌธ์ ๋น๊ตํด์ ๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค!
transform์ Composite ๋จ๊ณ๋ง ๊ฑฐ์น๋ฉด ๋๊ธฐ ๋๋ฌธ์ ๋น์ฉ์ด ์ ๊ฒ ๋ค์ด ์ฑ๋ฅ ์ต์ ํ์ ์ ๋ฆฌํ๋ค.
๐๊ฒฐ๋ก : ๊ฐ์ ๋์์ ํ๋ ์ ๋๋ฉ์ด์ ์ด๋ผ๋ฉด ๋จ๊ณ๋ฅผ ๋ ๊ฑฐ์น๋ ์์ฑ์ ์ ํํ๋๋ก ํ์!
์ฌ๊ธฐ์์ ํ์ธ ๊ฐ๋ฅ! → https://csstriggers.com/
๐์ฐธ๊ณ (๊ฐ์ฌํฉ๋๋ค)
https://d2.naver.com/helloworld/59361
https://poiemaweb.com/js-browser
Javascript Environment | PoiemaWeb
๋๋ถ๋ถ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ์ด์์ฒด์ (Operating System, OS) ์์์ ์คํ๋์ง๋ง ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ธ๋ผ์ฐ์ ์์ HTML, CSS์ ํจ๊ป ์คํ๋๋ค. ๋ฐ๋ผ์ ๋ธ๋ผ์ฐ์ ํ๊ฒฝ์ ๊ณ ๋ คํ ๋ ๋ณด๋ค
poiemaweb.com
https://cresumerjang.github.io/2019/06/24/critical-rendering-path/
์น ๋ธ๋ผ์ฐ์ ๋ ๋ ๋๋ง ํ๋ก์ธ์ค
์น ๊ฐ๋ฐ์ด ์ฆ๊ฑฐ์ด ๊ฐ๋ฐ์์ ๊ฐ๋ฐ ์ด์ผ๊ธฐ
cresumerjang.github.io
์น ๋ธ๋ผ์ฐ์ ์ ์๋ ๊ตฌ์กฐ
์ด๊ธ์์๋ ๋ธ๋ผ์ฐ์ ๋ ์ด๋ป๊ฒ ๋์ํ๋๊ฐ? ์ ์น์ฌ์ดํธ๋ ์ด๋ป๊ฒ ๋ณด์ฌ์ฃผ๊ฒ ๋ ๊น? ๊ธ์ ๋ด์ฉ์ ์ธ์ฉํ๊ณ ์์ต๋๋ค.๋ธ๋ผ์ฐ์ ๋ ์ฌ์ฉ์๊ฐ ์๋์์ด๋์น(www)๋ฅผ ์ฌ์ฉํ๋๋ฐ ์์ด ๊ฐ์ฅ ํ์์ ์ธ
velog.io
'๐๊ณต๋ถ > ํฐ ๋ฐ๊ฒฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ถํ ํ ์คํธ, ์คํธ๋ ์ค ํ ์คํธ (0) | 2021.10.05 |
---|---|
quick sort (+ til์ ๋ํ ์ฃผ์ ๋ฆฌ...) (0) | 2021.09.14 |
0์ ํฉํ ๋ฆฌ์ผ (0) | 2020.12.09 |
์ค๋ ๊ณ์ฐํ๊ธฐ (0) | 2020.12.05 |
๊ฐ์ด ๋ฐ๋ณต๋ ๋์ ์ฐ์ฐ (0) | 2020.11.11 |
๋๊ธ