๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป ํ”„๋ก ํŠธ์—”๋“œ

CSS ์• ๋‹ˆ๋ฉ”์ด์…˜ ์„ฑ๋Šฅ ๊ฐœ์„ 

by megan07 2024. 1. 8.

โ—๏ธ๋ฌธ์ œ ์ƒํ™ฉ 

2๊ฐ€์ง€ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์• ๋‹ˆ๋ฉ”์ด์…˜ ํšจ๊ณผ๊ฐ€ ๋งค๋„๋Ÿฝ์ง€ ๋ชปํ•จ
1. ์Šคํฌ๋กค ์œ„์น˜๊ฐ€ ํŠน์ • ์„น์…˜์— ๋„๋‹ฌํ•˜๋ฉด ํ™”๋ฉด์„ ๊ณ ์ •์‹œํ‚ค๊ณ  ์นด๋“œ๋งŒ ๊ฐ€๋กœ๋กœ ์ด๋™ํ•ด์•ผ ํ•จ(left๋กœ ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ–ˆ์Œ)
2. ์นด๋“œ๊ฐ€ ์ด๋™ํ•˜๋ฉด ๋ฐฐ๊ฒฝ์˜ ์ด๋ฏธ์ง€๋Š” ๊ฐ€์šด๋ฐ ์œ„์น˜ํ•˜๋Š” ์นด๋“œ์˜ ์ด๋ฏธ์ง€๋กœ ๋ณ€๊ฒฝ๋˜์–ด์•ผ ํ•จ(background-image๋ฅผ ๋ณ€๊ฒฝํ–ˆ์Œ)

 

โœ… ํ•ด๊ฒฐ

๋ฏธ๋ฆฌ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€๋ฅผ ๋ Œ๋”๋ง ํ•ด๋†“์€ ์ƒํƒœ์—์„œ opacity๋งŒ transition์„ ์ฃผ๊ณ  ์นด๋“œ์˜ ์œ„์น˜๋Š” transform์˜ translateX์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ตœ์ ํ™”ํ•จ

 

 

์†์„ฑ์„ ๋ฐ”๊พธ๋Š” ๊ฒƒ๋งŒ์œผ๋กœ ์ตœ์ ํ™”๊ฐ€ ๊ฐ€๋Šฅํ–ˆ๋˜ ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ์š”?

์ด์œ ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์šฐ์„  ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๊ณผ์ •์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

 

๐Ÿ“Œ ๊ฐ„๋žตํ•œ ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๊ณผ์ •

1. HTML๊ณผ CSS ๋“ฑ ๋ฆฌ์†Œ์Šค๋ฅผ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์œผ๋ฉด, ๋ธŒ๋ผ์šฐ์ €์˜ ๋ Œ๋”๋ง ์—”์ง„์—์„œ ํŒŒ์‹ฑํ•œ๋‹ค.

2. HTML์„ ํŒŒ์‹ฑํ•˜๋ฉด์„œ DOMํŠธ๋ฆฌ์™€ CSSOMํŠธ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

3. DOMํŠธ๋ฆฌ์™€ CSSOMํŠธ๋ฆฌ๋ฅผ ๊ฒฐํ•ฉํ—ค์„œ Render ํŠธ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•œ ํ›„, ๋ ˆ์ด์•„์›ƒ ์ž‘์—…๊ณผ ํŽ˜์ธํŒ… ์ž‘์—…์„ ํ•œ๋‹ค.

 

์ด๋Ÿฌํ•œ ๊ณผ์ •์€ ๋…ธ๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜๊ฑฐ๋‚˜ ์ฐฝ์˜ ํฌ๊ธฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜ ์Šคํƒ€์ผ์ด ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ ๋ฐ˜๋ณตํ•ด์„œ ์ผ์–ด๋‚  ์ˆ˜ ์ž‡์Šต๋‹ˆ๋‹ค.

ํŠนํžˆ ๋ ˆ์ด์•„์›ƒ ๊ณ„์‚ฐ๊ณผ ํŽ˜์ธํŒ…์„ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ๋น„์šฉ์ด ๋งŽ์ด ๋“ค๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค

๋ฆฌํ”Œ๋กœ์šฐ: dom + ccsom ⇒ ๋ Œ๋”ํŠธ๋ฆฌ ⇒ ๋ ˆ์ด์•„์›ƒ ๋ฐฐ์น˜ ⇒ ํŽ˜์ธํŠธ ⇒ ์ปดํฌ์ง€์…˜
๋ ˆ์ด์•„์›ƒ์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ์†์„ฑ์ด ๋ณ€ํ™”ํ•˜๋ฉด ๋ฆฌํ”Œ๋กœ์šฐ๊ฐ€ ์ผ์–ด๋‚˜๊ฒŒ ๋จ
ex) position, display, top, bottom, margin, padding ๋“ฑ๋“ฑ

๋ฆฌํŽ˜์ธํŠธ: ํŽ˜์ธํŠธ ⇒ ์ปดํฌ์ง€์…˜(๋ฆฌํ”Œ๋กœ์šฐ์—์„œ ๋ ˆ์ด์•„์›ƒ ๋ฐฐ์น˜ ๊ณผ์ •์„ ์ œ์™ธํ•œ ๊ฒƒ)
๋ ˆ์ด์•„์›ƒ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์€ ์†์„ฑ์˜ ๊ฒฝ์šฐ๋Š” ๋ฆฌํŽ˜์ธํŠธ๊ฐ€ ์ผ์–ด๋‚จ
๋ฆฌํŽ˜์ธํŠธ๋Š” ๋ Œ๋” ํŠธ๋ฆฌ๋ฅผ ๋‹ค์‹œ ๋งŒ๋“ค์ง€ ์•Š๊ณ  ๋ Œ๋” ํŠธ๋ฆฌ์˜ ๋…ธ๋“œ ์ค‘์—์„œ ์Šคํƒ€์ผ ์†์„ฑ์ด ๋ณ€๊ฒฝ๋œ ์š”์†Œ๋“ค์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์ด๋ฃจ์–ด์ง„๋‹ค๊ณ  ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
ex) background-image, background-color, color

GPU ์œ„์ž„
opacity์™€ transform์™€ ๊ฐ™์€ ์†์„ฑ์€ ๋ ˆ์ด์–ด๋ฅผ ๋”ฐ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ž‘์—…์„ GPU์— ์œ„์ž„ํ•˜๊ธฐ ๋•Œ๋ฌธ์—
๋ฆฌํ”Œ๋กœ์šฐ๋‚˜ ๋ฆฌํŽ˜์ธํŠธ๊ฐ€ ์ผ์–ด๋‚˜์ง€ ์•Š์Œ

 

 

left, background-image๋ฅผ ๋ณ€๊ฒฝํ–ˆ์„ ๋•Œ๋Š” ๊ณ„์†ํ•ด์„œ ๋ฆฌํ”Œ๋กœ์šฐ์™€ ๋ฆฌํŽ˜์ธํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ Œ๋”๋ง์ด ๋งค๋„๋Ÿฝ์ง€ ๋ชปํ–ˆ๊ณ 

๋ณ€๊ฒฝ ํ›„์—๋Š” transform๊ณผ opacity๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ GPU์— ์ž‘์—…์„ ์œ„์ž„ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์• ๋‹ˆ๋ฉ”์ด์…˜ ์„ฑ๋Šฅ์ด ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค