# [[Reflowแ„‹แ…ช Repaint|Reflow์™€ Repaint]] ## ๐Ÿ“Œ Brief Summary Reflow(๋ฆฌํ”Œ๋กœ์šฐ)๋Š” ์š”์†Œ์˜ ํฌ๊ธฐ๋‚˜ ์œ„์น˜ ๋“ฑ ๋ ˆ์ด์•„์›ƒ ๊ตฌ์กฐ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ฌธ์„œ์˜ ๊ตฌ์กฐ๋ฅผ ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜๋Š” ๊ณผ์ •์ด๋ฉฐ, Repaint(๋ฆฌํŽ˜์ธํŠธ)๋Š” ๋ ˆ์ด์•„์›ƒ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š” ์‹œ๊ฐ์  ์†์„ฑ(์ƒ‰์ƒ ๋“ฑ)์ด ๋ณ€๊ฒฝ๋  ๋•Œ ํ™”๋ฉด์„ ๋‹ค์‹œ ๊ทธ๋ฆฌ๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค [1, 2]. ๋‘ ๊ณผ์ • ๋ชจ๋‘ ๋ธŒ๋ผ์šฐ์ €์˜ ์—ฐ์‚ฐ ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŽ์ด ์†Œ๋ชจํ•˜๋ฏ€๋กœ, ์พŒ์ ํ•œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜๊ณผ ์›น ์„ฑ๋Šฅ์„ ์œ ์ง€ํ•˜๋ ค๋ฉด ์ด๋ฅผ ์ตœ์†Œํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [1, 3, 4]. ์œ ์ง€๋ณด์ˆ˜์™€ ์„ฑ๋Šฅ์„ ๋ชจ๋‘ ๊ณ ๋ คํ•œ CSS ์‹ค์ „ ์„ค๊ณ„์—์„œ๋Š” ์ด๋Ÿฌํ•œ ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ํŒŒ์ดํ”„๋ผ์ธ์˜ ํŠน์„ฑ์„ ์ดํ•ดํ•˜๊ณ  ํšจ์œจ์ ์ธ ์Šคํƒ€์ผ๋ง๊ณผ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ „๋žต์„ ์ฑ„ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [3, 5]. ## ๐Ÿ“– Core Content * **๊ฐœ๋…๊ณผ ์ฐจ์ด์  ๋ฐ ๋ฐœ์ƒ ์›์ธ** * **Reflow (Layout)**: ๋ธŒ๋ผ์šฐ์ € ์ฐฝ ํฌ๊ธฐ ์กฐ์ ˆ, ํฐํŠธ ๋ณ€๊ฒฝ, ์ƒˆ๋กœ์šด DOM ์š”์†Œ ์ถ”๊ฐ€/์ œ๊ฑฐ, `width`, `height`, `margin`, `padding`, `top` ๋“ฑ ๊ธฐํ•˜ํ•™์  ํ˜•ํƒœ๋‚˜ ๋ ˆ์ด์•„์›ƒ์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ์†์„ฑ์ด ๋ณ€๊ฒฝ๋  ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค [3, 6, 7]. ํ•œ ์š”์†Œ์˜ Reflow๋Š” ์ž์‹ ๋ฐ ์กฐ์ƒ ์š”์†Œ, ๊ทธ๋ฆฌ๊ณ  DOM์—์„œ ๊ทธ ๋’ค์— ๋‚˜ํƒ€๋‚˜๋Š” ๋ชจ๋“  ์š”์†Œ์˜ ์—ฐ์‡„์ ์ธ Reflow๋ฅผ ์œ ๋ฐœํ•˜๋ฏ€๋กœ ๋งค์šฐ ํฐ ๋น„์šฉ์ด ๋“ญ๋‹ˆ๋‹ค [2, 4]. * **Repaint**: `color`, `background-color`, `outline`, `visibility` ๋“ฑ ์š”์†Œ์˜ ๋ ˆ์ด์•„์›ƒ์—๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์œผ๋ฉด์„œ ๊ฒ‰๋ชจ์Šต๋งŒ ๋ณ€๊ฒฝ๋  ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค [2, 3, 6]. * **์„ฑ๋Šฅ ์ตœ์ ํ™” ๋ฐ ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์œ„ํ•œ CSS ์„ค๊ณ„ ๊ธฐ๋ฒ•** * **๋ ˆ์ด์•„์›ƒ ์Šค๋ž˜์‹ฑ([[Layout Thrashing|Layout Thrashing]]) ๋ฐฉ์ง€ ๋ฐ DOM ์กฐ์ž‘ ์ตœ์†Œํ™”**: [[JavaScript|JavaScript]]๋ฅผ ํ†ตํ•ด ๋‹ค์ˆ˜์˜ ์ธ๋ผ์ธ ์Šคํƒ€์ผ์„ ์„ค์ •ํ•˜๋ฉด ๊ฐœ๋ณ„์ ์œผ๋กœ Reflow๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค [5, 8]. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์™ธ๋ถ€ CSS ํด๋ž˜์Šค์— ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ํ•œ ๋ฒˆ์˜ ์กฐ์ž‘์œผ๋กœ DOM ํŠธ๋ฆฌ์˜ ํด๋ž˜์Šค ์†์„ฑ์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ์‹์ด ์„ฑ๋Šฅ๊ณผ ์œ ์ง€๋ณด์ˆ˜์— ํ›จ์”ฌ ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค [8, 9]. DOM์„ ์ฝ๊ณ  ์“ฐ๋Š” ๊ณผ์ •์„ ์ฒ ์ €ํžˆ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ ˆ์ด์•„์›ƒ ์Šค๋ž˜์‹ฑ์„ ๋ฐฉ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [10]. * **ํด๋ž˜์Šค ๋ณ€๊ฒฝ์˜ ๋ฒ”์œ„ ์ œํ•œ**: Reflow์˜ ํŒŒ๊ธ‰ ๋ฒ”์œ„๋ฅผ ์ค„์ด๋ ค๋ฉด DOM ํŠธ๋ฆฌ์—์„œ ๊ฐ€๋Šฅํ•œ ๊ฐ€์žฅ ๋‚ฎ์€ ์œ„์น˜(ํ•˜์œ„ ๋…ธ๋“œ)์— ์žˆ๋Š” ์š”์†Œ์˜ ํด๋ž˜์Šค๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [5, 11]. * **์˜ฌ๋ฐ”๋ฅธ ์• ๋‹ˆ๋ฉ”์ด์…˜(transition/keyframes) ์ „๋žต**: `width`, `height`, `box-shadow` ๋“ฑ์˜ ์†์„ฑ์„ ์• ๋‹ˆ๋ฉ”์ด์…˜์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉด ์ง€์†์ ์œผ๋กœ Reflow์™€ Repaint๋ฅผ ์œ ๋ฐœํ•ด ํ™”๋ฉด์ด ๋Š๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [6, 12, 13]. ๋Œ€์‹  ๋ ˆ์ด์•„์›ƒ์„ ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜์ง€ ์•Š๋Š” `transform`๊ณผ `opacity`, `filter` ์†์„ฑ๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์ž‘์„ฑํ•ด์•ผ GPU ๊ฐ€์†(Compositing)์„ ํ†ตํ•œ ๋ถ€๋“œ๋Ÿฌ์šด ๋ Œ๋”๋ง์ด ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค [3, 13, 14]. * **์š”์†Œ์˜ ์œ„์น˜ ๋ฐ ์†์„ฑ ๋ถ„๋ฆฌ**: ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ๋“ค์–ด๊ฐ„ ์š”์†Œ์— `position: fixed` ๋˜๋Š” `absolute`๋ฅผ ์ ์šฉํ•˜๋ฉด ํ•ด๋‹น ์š”์†Œ๊ฐ€ ๋ฌธ์„œ์˜ ํ๋ฆ„์—์„œ ๋ถ„๋ฆฌ๋˜์–ด ์ฃผ๋ณ€ ์š”์†Œ์˜ ๋ ˆ์ด์•„์›ƒ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์œผ๋ฏ€๋กœ, ๋น„์šฉ์ด ํฐ ์ „์ฒด Reflow ๋Œ€์‹  Repaint๋งŒ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [5, 8, 15]. * **์„ ํƒ์ž ๋ฐ ๋ ˆ์ด์•„์›ƒ ๊ตฌ์กฐ ๋‹จ์ˆœํ™”**: ๋‹ค์ค‘ ๊ฒฝ๋กœ๋ฅผ ์š”๊ตฌํ•˜๋Š” ๋ณต์žกํ•œ CSS ์„ ํƒ์ž๋ฅผ ํ”ผํ•˜๊ณ  [9], ์ „์ฒด ๋…ธ๋“œ์˜ Reflow๋ฅผ ์ž์ฃผ ์œ ๋ฐœํ•˜๋Š” ํ…Œ์ด๋ธ”(`table`) ๊ธฐ๋ฐ˜์˜ ๋ ˆ์ด์•„์›ƒ์„ ํ”ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [5, 16]. ## ๐Ÿ”— Knowledge Connections - **Related Topics:** CSS ์• ๋‹ˆ๋ฉ”์ด์…˜ ์„ฑ๋Šฅ ์ตœ์ ํ™” (transition / keyframes), [[CSS แ„€แ…ฎแ„Œแ…ฉ แ„‰แ…ฅแ†ฏแ„€แ…จ แ„‡แ…กแ†ผแ„‰แ…ตแ†จ|CSS ๊ตฌ์กฐ ์„ค๊ณ„ ๋ฐฉ์‹]], DOM ๋ Œ๋”๋ง ํŒŒ์ดํ”„๋ผ์ธ - **Projects/Contexts:** [[แ„‰แ…ตแ†ฏแ„†แ…ฎแ„‹แ…ฆแ„‰แ…ฅ CSS แ„€แ…ชแ†ซแ„…แ…ตแ„’แ…กแ„‚แ…ณแ†ซ แ„‡แ…กแ†ผแ„‡แ…ฅแ†ธ|์‹ค๋ฌด์—์„œ CSS ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•]], ์œ ์ง€๋ณด์ˆ˜ ๊ฐ€๋Šฅํ•˜๊ฒŒ CSS ์•„ํ‚คํ…์ฒ˜ ๊ตฌ์ถ• - **Contradictions/Notes:** ๋นˆ๋ฒˆํ•˜๊ฒŒ ๋ณ€๊ฒฝ๋˜๋Š” ์š”์†Œ์— ๋Œ€ํ•ด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ฏธ๋ฆฌ ์ตœ์ ํ™”๋ฅผ ์ค€๋น„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” `will-change` ์†์„ฑ์€ ์„ฑ๋Šฅ ํ–ฅ์ƒ์— ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค [10, 17, 18]. ํ•˜์ง€๋งŒ ์ด ์†์„ฑ์„ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋„ˆ๋ฌด ๋งŽ์€ ์š”์†Œ์— ๋‚จ์šฉํ•  ๊ฒฝ์šฐ ๋„๋ฆฌ์–ด ๋ธŒ๋ผ์šฐ์ €์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ณผ๋„ํ•˜๊ฒŒ ์†Œ๋ชจ์‹œ์ผœ ์„ฑ๋Šฅ ์ €ํ•˜(Performance issues)๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ตœํ›„์˜ ์ˆ˜๋‹จ์œผ๋กœ๋งŒ ์‹ ์ค‘ํžˆ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [17, 18]. --- *Last updated: 2026-04-26*