๋ณธ๋ฌธ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

201109

ยท ์•ฝ 11๋ถ„

์„ฑ๋Šฅ ์ธก์ •#

๋ธŒ๋ผ์šฐ์ € ๊ธฐ์ค€#

DOMContentLoadedย ์ด๋ฒคํŠธ#

  • HTML๊ณผ CSS ํŒŒ์‹ฑ์ด ๋๋‚˜๋Š” ์‹œ์ 

  • ๋ Œ๋” ํŠธ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•  ์ค€๋น„๊ฐ€ ๋œ(DOM ๋ฐ CSSOM ๊ตฌ์„ฑ์ด ๋๋‚œ) ์ƒํ™ฉ

loadย ์ด๋ฒคํŠธ#

  • HTML ์ƒ์— ํ•„์š”ํ•œ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๊ฐ€ ๋กœ๋“œ๋œ ์‹œ์ 

๊ทธ๋ฆฌ๊ณ  ์ด ๋‘ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์‹œ์ ์€ ๋‚ด๋น„๊ฒŒ์ด์…˜ ํƒ€์ด๋ฐ API๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ํฌ๋กฌ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ํ†ตํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์‚ฌ์šฉ์ž ๊ธฐ์ค€#

2020-11-08-201109-image-0

FP(First Paint)#

  • ํฐ ํ™”๋ฉด์—์„œ ํ™”๋ฉด์— ๋ฌด์–ธ๊ฐ€๊ฐ€ ์ฒ˜์Œ์œผ๋กœ ๊ทธ๋ ค์ง€๊ธฐ ์‹œ์ž‘ํ•˜๋Š” ์ˆœ๊ฐ„์ด๋‹ค.

FCP(First Contentful Paint)#

  • ํ…์ŠคํŠธ๋‚˜ ์ด๋ฏธ์ง€๊ฐ€ ์ถœ๋ ฅ๋˜๊ธฐ ์‹œ์ž‘ํ•˜๋Š” ์ˆœ๊ฐ„์ด๋‹ค.

FMP(First Meaningful Paint)#

  • ์‚ฌ์šฉ์ž์—๊ฒŒ ์˜๋ฏธ ์žˆ๋Š” ์ฝ˜ํ…์ธ ๊ฐ€ ๊ทธ๋ ค์ง€๊ธฐ ์‹œ์ž‘ํ•˜๋Š” ์ฒซ ์ˆœ๊ฐ„์ด๋‹ค. ์ฝ˜ํ…์ธ ๋ฅผ ๋…ธ์ถœํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ CSS, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋กœ๋“œ๊ฐ€ ์‹œ์ž‘๋˜๊ณ  ์Šคํƒ€์ผ์ด ์ ์šฉ๋˜์–ด ์ฃผ์š” ์ฝ˜ํ…์ธ ๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค.

TTI(Time to Interactive)#

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ดˆ๊ธฐ ์‹คํ–‰์ด ์™„๋ฃŒ๋˜์–ด์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ํ–‰๋™์„ ์ทจํ•  ์ˆ˜ ์žˆ๋Š” ์ˆœ๊ฐ„์ด๋‹ค.

์„ฑ๋Šฅ ์ตœ์ ํ™”

๋กœ๋”ฉ ์ตœ์ ํ™”#

๋ธ”๋ก ๋ฆฌ์†Œ์Šค(๋˜๋Š” ๋ Œ๋”๋ง ์ฐจ๋‹จ ๋ฆฌ์†Œ์Šค) ์ตœ์ ํ™”#

๋ธŒ๋ผ์šฐ์ € ๋กœ๋”ฉ ๊ณผ์ •์—์„œ ํŒŒ์‹ฑ ์ค‘ ๋ธ”๋ก ๋ฆฌ์†Œ์Šค๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ธ”๋ก ๋ฆฌ์†Œ์Šค์—๋Š” CSS ์™€ JavaScript๊ฐ€ ํฌํ•จ๋œ๋‹ค.

CSS ์ตœ์ ํ™”#

  • DOM ํŠธ๋ฆฌ๋Š” ํŒŒ์‹ฑํ•˜๋ฉด์„œ ์ˆœ์ฐจ์ ์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

  • CSSOM ํŠธ๋ฆฌ๋Š” CSS๋ฅผ ๋ชจ๋‘ ํ•ด์„ํ•ด์•ผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์ฆ‰ CSSOM ํŠธ๋ฆฌ๊ฐ€ ๊ตฌ์„ฑ๋˜์ง€ ์•Š์œผ๋ฉด ๋ Œ๋” ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“ค์ง€ ๋ชปํ•˜๊ณ , ๋ Œ๋”๋ง์ด ์ฐจ๋‹จ๋˜์–ด์žˆ๋‹ค.

  • ๋”ฐ๋ผ์„œ CSS๋Š” ํ•ญ์ƒ HTML ๋ฌธ์„œ ์ตœ์ƒ๋‹จ์— ๋ฐฐ์น˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

  • ๋˜ํ•œ ํŠน์ • ์กฐ๊ฑด(์„ธ๋กœ ๋ชจ๋“œ, ์ธ์‡„ ๋ชจ๋“œ ๋“ฑ)์—์„œ๋งŒ ํ•„์š”ํ•œ CSS๋Š”, ํ•ด๋‹น ๊ฒฝ์šฐ์—๋งŒ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์ ํ™”ํ•œ๋‹ค.

    ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ (์ตœ์ ํ™” ์ „)

    <link href="style.css" rel="stylesheet" /><link href="print.css" rel="stylesheet" /><link href="portrait.css" rel="stylesheet" />

    ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ (์ตœ์ ํ™” ํ›„)

    <link href="style.css" rel="stylesheet" /><link href="print.css" rel="stylesheet" media="print" /><link href="portrait.css" rel="stylesheet" media="orientation:portrait" />
  • ์™ธ๋ถ€ ์Šคํƒ€์ผ์‹œํŠธ๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” @import ๋ฌธ์€ ์Šคํƒ€์ผ์‹œํŠธ๋ฅผ ๋ณ‘๋ ฌ๋กœ ๋‹ค์šด๋กœ๋“œ ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋กœ๋“œ ์‹œ๊ฐ„์ด ๋Š˜์–ด๋‚  ์ˆ˜ ์žˆ๋‹ค.

JavaScript ์ตœ์ ํ™”#

  • JavaScript๋Š” DOMํŠธ๋ฆฌ์™€ CSSOM ํŠธ๋ฆฌ๋ฅผ ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— HTML ํŒŒ์‹ฑ์„์ฐจ๋‹จํ•˜๋Š” ๋ธ”๋ก ๋ฆฌ์†Œ์Šค์ด๋‹ค.

  • <script> ํƒœ๊ทธ๋ฅผ ๋งŒ๋‚˜๋ฉด ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‹คํ–‰๋˜๋ฉฐ ๊ทธ ์ด์ „๊นŒ์ง€ ์ƒ์„ฑ๋œ DOM์—๋งŒ ์ ‘๊ทผํ• ์ˆ˜ ์žˆ๋‹ค.

  • ๊ทธ๋ฆฌ๊ณ  ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ DOM ํŠธ๋ฆฌ ์ƒ์„ฑ์ด ์ค‘๋‹จ๋œ๋‹ค.

  • ์ด๋Ÿฌํ•œ ์ด์œ ๋กœ JavaScript๋ฅผ ๋ Œ๋”๋ง ์ฐจ๋‹จ ๋ฆฌ์†Œ์Šค๋ผ๊ณ  ํ•œ๋‹ค.

๋ฆฌ์†Œ์Šค ์š”์ฒญ ์ˆ˜ ์ค„์ด๊ธฐ#

์ด๋ฏธ์ง€ ์Šคํ”„๋ผ์ดํŠธ#

2020-11-08-201109-image-1

  • ์›น ํŽ˜์ด์ง€์—์„œ ์•„์ด์ฝ˜ ๋งˆ๋‹ค ๋‹ค๋ฅธ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ๋ฆฌ์†Œ์Šค ์š”์ฒญ์ด ์•„์ด์ฝ˜ ๋งˆ๋‹ค๋ฐœ์ƒ

  • ์—ฌ๋Ÿฌ ์•„์ด์ฝ˜์„ ๋ฌถ์–ด ํ•˜๋‚˜์˜ ์ด๋ฏธ์ง€๋กœ ๋งŒ๋“ค๊ณ , CSS์˜ background-position ์†์„ฑ์„์‚ฌ์šฉํ•ด ๋ถ€๋ถ„ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฆฌ์†Œ์Šค ์š”์ฒญ ์ˆ˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

CSS, JavaScript ๋ฒˆ๋“ค๋ง#

  • ๋ชจ๋“ˆ ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœ ์ด์ „์—๋Š” ์—ฌ๋Ÿฌ ๋ฆฌ์†Œ์Šค ํŒŒ์ผ์„ ๋ถ„๋ฆฌํ•ด์„œ ๊ฐ€์ ธ์™”์—ˆ๋‹ค.

  • Webpack, Rollup ๋“ฑ์˜ ๋ฒˆ๋“ค๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ชจ๋“ˆ ํŒŒ์ผ์„ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด์„œ 1๊ฐœํŒŒ์ผ๋กœ ๋งŒ๋“ค์–ด ๋ฆฌ์†Œ์Šค ์š”์ฒญ ์ˆ˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

๋‚ด๋ถ€ ์Šคํƒ€์ผ ์‹œํŠธ ?#

โ˜ ๋‚ด๋ถ€ ์Šคํƒ€์ผ ์‹œํŠธ๋Š” ๋ฆฌ์†Œ์Šค ์š”์ฒญ ํšŸ์ˆ˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด์ง€๋งŒ, ๋ฆฌ์†Œ์Šค ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์–ด์„œ HTML์— CSS๊ฐ€ ๋งค๋ฒˆ ํฌํ•จ๋œ๋‹ค.

์ž‘์€ ์ด๋ฏธ์ง€๋ฅผ HTML, CSS๋กœ ๋Œ€์ฒด#

  • ์•„์ด์ฝ˜ ์ด๋ฏธ์ง€ ๊ฐœ์ˆ˜๊ฐ€ ์ ์€ ๊ฒฝ์šฐ, ์ด๋ฏธ์ง€๋ฅผ Base64๋กœ ๋ณ€ํ™˜ํ•œ URI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ HTML, CSS์— ํฌํ•จํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

    <img    src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAOCAYAAAAbvf3sAAAAAXNSR0IArs4c6QAAAHBJREFUKBVjYBimICwsLAaEsXmPGV0QqnAeUNxfW1v7/tWrVy8hq0HRgKQ4CahoIxDPQ9cE14CseNWqVUtAJoMUo2tiBFkXGRmp9/fv3zNAZhJIMUgMBmAGMTMzmyxfvhzhPJAmmCJ0Gp8cutqhwAcASWgwk+79LiQAAAAASUVORK5CYII="/>

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํ•„์š”ํ•œ ํ•จ์ˆ˜๋งŒ ๊ฐ€์ ธ์˜ค๊ธฐ#

import _ from 'lodash';
_.array(...);_.object(...);

โ‡’

import array from 'lodash/array';import object from 'lodash/fp/object';
array(...);object(...);

HTML ๋งˆํฌ์—… ์ตœ์ ํ™”#

  • ์ค‘์ฒฉ์„ ๋‹จ์ˆœํ•˜๊ฒŒ ๊ตฌ์„ฑํ•œ๋‹ค.

Avoid an excessive DOM size

์••์ถ•(Minify)ํ•˜์—ฌ ์‚ฌ์šฉ#

  • ์›นํŒฉ ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ๊ฐ™์€ ๋„๊ตฌ์˜ ๋„์›€์œผ๋กœ ๋ถˆํ•„์š”ํ•œ ์ฃผ์„์ด๋‚˜ ๊ณต๋ฐฑ์„ ๋ชจ๋‘ ์‚ญ์ œํ•˜๊ณ , ๋‚œ๋…ํ™” ํ•˜๋Š” ๋“ฑ ์ฝ”๋“œ์˜ ์šฉ๋Ÿ‰์„ ์••์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ Œ๋”๋ง ์ตœ์ ํ™”#

requestAnimationFrame#

  • ์‹œ๊ฐ์  ๋ณ€ํ™”๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ •ํ™•ํ•œ ์‹œ๊ฐ„(ํ”„๋ ˆ์ž„ ์‹œ์ž‘ ์‹œ)์— ์ˆ˜ํ–‰๋˜๊ธธ ์›ํ•œ๋‹ค.

  • ์ด๋ฅผ ๋ณด์žฅํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ requestAnimationFrame ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

  • setTimeout ๋˜๋Š” setInterval ์€ ์ฝœ๋ฐฑ์ด ์ •ํ™•ํ•œ ์‹œ๊ฐ„์— ์ˆ˜ํ–‰๋˜๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•˜์ง€์•Š๋Š”๋‹ค.

2020-11-08-201109-image-2

โ˜ setTimeout ๊ณผ setInterval ์˜ ์ฝœ๋ฐฑ์€ (macro)Task queue ๋ฅผ ์‚ฌ์šฉ. requestAnimationFrame ์€ AnimationFrame ์‚ฌ์šฉ.

์Šคํƒ€์ผ ๊ณ„์‚ฐ์˜ ๋ฒ”์œ„์™€ ๋ณต์žก์„ฑ ์ค„์ด๊ธฐ#

2020-11-08-201109-image-3

  • DOM ๋ณ€๊ฒฝ, ์š”์†Œ ์ถ”๊ฐ€ ๋ฐ ์ œ๊ฑฐ, ์†์„ฑ ๋ณ€๊ฒฝ, ํด๋ž˜์Šค ๋˜๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜์€ ๋ชจ๋‘ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์š”์†Œ ์Šคํƒ€์ผ์„ ์žฌ๊ณ„์‚ฐํ•˜๊ณ  ๋งŽ์€ ๊ฒฝ์šฐ์— ๋ ˆ์ด์•„์›ƒ ๋‹จ๊ณ„(๋ฆฌํ”Œ๋กœ์šฐ)๋ฅผ ๊ฑฐ์น˜๊ฒŒ ๋งŒ๋“ ๋‹ค.

  • ์Šคํƒ€์ผ ๊ณ„์‚ฐ ๋‹จ๊ณ„์˜ ์ฒซ ๋ถ€๋ถ„์€ ๋งค์นญ ์„ ํƒ๊ธฐ ์ง‘ํ•ฉ์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด๋‹ค. (์š”์†Œ, ํด๋ž˜์Šค , ID, pseudo ์„ ํƒ์ž ๋“ฑ๋“ฑ)

  • ์Šคํƒ€์ผ ๊ณ„์‚ฐ์˜ ๋‘ ๋ฒˆ์งธ ๋‹จ๊ณ„๋Š” ๋งค์นญ๋œ ์„ ํƒ๊ธฐ์—์„œ ์Šคํƒ€์ผ ๊ทœ์น™์„ ๊ฐ€์ ธ์™€์„œ ์š”์†Œ์˜๋งˆ์ง€๋ง‰ ์Šคํƒ€์ผ์„ ๊ณ„์‚ฐํ•˜๋Š” ๊ณผ์ •์ด ํฌํ•จ๋œ๋‹ค.

  • ๋”ฐ๋ผ์„œ ์„ ํƒ๊ธฐ์˜ ๋ณต์žก์„ฑ์„ ์ค„์ด๊ณ  (BEM ๋“ฑ์˜ ๋ฐฉ๋ฒ•๋ก  ์ ์šฉ) ์Šคํƒ€์ผ์„ ๊ณ„์‚ฐํ•ด์•ผ ํ•˜๋Š”์š”์†Œ์˜ ์ˆ˜๋ฅผ ์ค„์—ฌ์•ผ ํ•œ๋‹ค.

ํฌ๊ณ  ๋ณต์žกํ•œ ๋ ˆ์ด์•„์›ƒ ๋ฐ ์Šค๋ž˜์‹ฑ ํ”ผํ•˜๊ธฐ#

  • ๋ ˆ์ด์•„์›ƒ์˜ ๋ฒ”์œ„๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ „์ฒด ๋ฌธ์„œ๋กœ ์ง€์ •๋œ๋‹ค.

    • ๋„ˆ๋น„, ๋†’์ด, ์™ผ์ชฝ ๋˜๋Š” ์ƒ๋‹จ ๋“ฑ "๊ธฐํ•˜ํ•™์  ์†์„ฑ"์˜ ๋ณ€๊ฒฝ์€ ๋ชจ๋‘ ๋ ˆ์ด์•„์›ƒ์ดํ•„์š”ํ•˜๋‹ค.

    • flexbox ๋ฅผ ์‚ฌ์šฉํ•œ ๋ ˆ์ด์•„์›ƒ์ด float ๋ฅผ ์‚ฌ์šฉํ•œ ๋ ˆ์ด์•„์›ƒ ๋ณด๋‹ค ๋น„์šฉ์ด ์ ๋‹ค.

  • DOM ์š”์†Œ์˜ ์ˆ˜๋Š” ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ์ฃผ๋ฏ€๋กœ ๊ฐ€๊ธ‰์  ๋ ˆ์ด์•„์›ƒ ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ํ”ผํ•ด์•ผ ํ•œ๋‹ค.

  • ๊ฐ•์ œ ๋™๊ธฐ์‹ ๋ ˆ์ด์•„์›ƒ ๋ฐ ๋ ˆ์ด์•„์›ƒ ์Šค๋ž˜์‹ฑ์„ ํ”ผํ•ด์•ผ ํ•œ๋‹ค.

    โ˜ ์›๋ž˜ ๋ ˆ์ด์•„์›ƒ์€ ๋น„๋™๊ธฐ์ด๋‚˜, ํŠน์ • ์ƒํ™ฉ์—์„œ ๋™๊ธฐ์ ์œผ๋กœ ๋ ˆ์ด์•„์›ƒ์ด ๋ฐœ์ƒํ•  ์ˆ˜์žˆ๋‹ค. ์ด๊ฒƒ์„ ๊ฐ•์ œ ๋™๊ธฐ์‹ ๋ ˆ์ด์•„์›ƒ ์ด๋ผ ํ•œ๋‹ค.

    function logBoxHeight() {    box.classList.add('super-big');
        // Gets the height of the box in pixels    // and logs it out.    console.log(box.offsetHeight);}
    • ์œ„์˜ ํ•จ์ˆ˜๋Š” ์Šคํƒ€์ผ์„ ๋ณ€๊ฒฝํ•œ ํ›„์—, ๋†’์ด๋ฅผ ์š”์ฒญํ•œ๋‹ค.

    • ๋†’์ด๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ ์—ญ์‹œ ๋ ˆ์ด์•„์›ƒ์„ ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

    • ์Šคํƒ€์ผ ๊ณ„์‚ฐ๊ณผ ๋ ˆ์ด์•„์›ƒ์„ ๋™์‹œ์— ์‹คํ–‰ํ•˜๋ฉด ์ž ์žฌ์  ๋ณ‘๋ชฉ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐ”๋žŒ์งํ•˜์ง€ ์•Š๋‹ค.

    function resizeAllParagraphsToMatchBlockWidth() {    // Puts the browser into a read-write-read-write cycle.    for (var i = 0; i < paragraphs.length; i++) {        paragraphs[i].style.width = box.offsetWidth + 'px';    }}
    • ์œ„์˜ ํ•จ์ˆ˜๋Š” ๊ฐ ๋ฃจํ”„์˜ ๋ฐ˜๋ณต์ด ์Šคํƒ€์ผ ๊ฐ’ box.offsetWidth ๋ฅผ ์ฝ์€ ๋‹ค์Œ, ์ฆ‰์‹œ paragraphs[i].style.width ๋ฅผ ์—…๋ฐ์ดํŠธ ํ•œ๋‹ค.

    • ์ด์ „ ๋ฐ˜๋ณต์—์„œ ๋ ˆ์ด์•„์›ƒ์ด ๋ณ€๊ฒฝ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— box.offsetWidth ์„ ์กฐํšŒํ•˜๋Š” ๊ฒƒ์—ญ์‹œ ๊ฐ•์ œ ๋™๊ธฐ์‹ ๋ ˆ์ด์•„์›ƒ์„ ์œ ๋ฐœํ•œ๋‹ค. ์ด๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

    // Read.var width = box.offsetWidth;
    function resizeAllParagraphsToMatchBlockWidth() {    for (var i = 0; i < paragraphs.length; i++) {        // Now write.        paragraphs[i].style.width = width + 'px';    }}

ํŽ˜์ธํŠธ ๋ณต์žก์„ฑ ๋‹จ์ˆœํ™” ๋ฐ ํŽ˜์ธํŠธ ์˜์—ญ ์ค„์ด๊ธฐ#

  • transform ๋˜๋Š” opacity ๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ์†์„ฑ ๋ณ€๊ฒฝ์€ ํ•ญ์ƒ ํŽ˜์ธํŠธ๋ฅผ ํŠธ๋ฆฌ๊ฑฐ ํ•œ๋‹ค.

  • ๊ฐ€๋Šฅํ•œ ํ•˜์œ„ ๋…ธ๋“œ์˜ DOM์„ ์กฐ์ž‘ํ•˜๊ณ  ์Šคํƒ€์ผ์„ ๋ณ€๊ฒฝ

    • DOM์ด ์ž‘๊ณ  ๊นŠ์ด๊ฐ€ ์–•์„์ˆ˜๋ก ๊ณ„์‚ฐ์ด ๋น ๋ฅด๋‹ค.

    • ๋ถˆํ•„์š”ํ•œ ๋ž˜ํผ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.

  • ์˜ํ–ฅ ๋ฐ›๋Š” ์—˜๋ฆฌ๋จผํŠธ ์ œํ•œ