feat: Wiki 지식 자산 업데이트 - UX Scenarios, Frontend, Game Design, Topics 추가 [2026-05-08]

This commit is contained in:
2026-05-08 19:52:07 +09:00
parent 9dd3d40662
commit 5ba5a55c78
3984 changed files with 334557 additions and 28839 deletions
+43 -7
View File
@@ -1,20 +1,30 @@
---
category: Unified
id: wiki-2026-0508-layout-thrashing
title: Layout Thrashing
category: 10_Wiki/Topics
status: needs_review
canonical_id: self
aliases: []
duplicate_of: none
source_trust_level: A
confidence_score: 0.92
tags: [auto-consolidated, technical-documentation]
title: [[Layout Thrashing|Layout Thrashing]]
last_updated: 2026-05-02
raw_sources: []
last_reinforced: 2026-05-08
github_commit: pending
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
---
# [[Layout Thrashing|Layout Thrashing]]
## 📌 Brief Summary
## 📌 한 줄 통찰 (The Karpathy Summary)
레이아웃 스래싱(Layout Thrashing)은 브라우저가 페이지의 구조를 다시 계산해야 하는 리플로우(Reflow)와 리페인트(Repaint)를 과도하게 반복할 때 발생하는 성능 병목 현상입니다 [1, 2]. 주로 자바스크립트가 DOM을 읽고 쓰는 작업을 좁은 루프 안에서 번갈아 수행하거나 레이아웃에 큰 영향을 미치는 CSS 속성을 애니메이션화할 때 유발됩니다 [1, 2]. 이 현상은 프레임 속도를 심각하게 저하시키고 애니메이션을 끊기게 만들어 전반적인 사용자 경험을 훼손합니다 [1, 2].
---
레이아웃 스래싱(Layout Thrashing)은 스크립트가 DOM을 읽고 쓰는 작업을 짧고 반복적인 루프 내에서 교대로 수행할 때 발생하는 심각한 성능 병목 현상입니다 [1]. 주로 `offsetWidth``offsetHeight` 같은 기하학적 속성을 읽을 때 브라우저가 정확한 크기를 제공하기 위해 내부 레이아웃 큐를 강제로 비우고 동기적 리플로우(Reflow)를 실행하면서 발생합니다 [1]. 이 현상은 브라우저의 렌더링 프레임 속도를 크게 저하시키며, 결과적으로 애니메이션이 끊기거나 웹페이지가 느리게 반응하도록 만듭니다 [1, 2].
## 📖 Core Content
## 📖 구조화된 지식 (Synthesized Content)
**발생 원인**
* **DOM 읽기/쓰기의 반복**: 자바스크립트 스크립트가 좁은 루프 내에서 DOM 속성에 대한 읽기와 쓰기를 번갈아 수행할 때 흔히 발생합니다 [2, 3]. 예를 들어 `offsetWidth``offsetHeight` 같은 크기 관련 속성을 읽을 때, 브라우저는 정확한 치수를 제공하기 위해 내부 레이아웃 큐(Queue)를 강제로 비우고 동기적 리플로우(Synchronous reflow)를 수행해야 하므로 프레임 속도에 악영향을 미칩니다 [2].
* **무거운 레이아웃 속성 변경**: `width`, `height`, `margin`, `padding`, `left/top/right/bottom`과 같이 기하학적 형태나 레이아웃에 직접적인 영향을 주는 속성을 애니메이션 처리하면 브라우저가 레이아웃을 지속적으로 재계산하게 되어 레이아웃 스래싱을 유발합니다 [1, 4, 5].
@@ -41,10 +51,10 @@ last_updated: 2026-05-02
* **requestAnimationFrame 활용**: [[JavaScript|JavaScript]]로 구동되는 애니메이션이나 DOM 업데이트를 브라우저의 기본 리페인트 주기와 동기화(`requestAnimationFrame` 사용)하여 프레임 드롭이나 스래싱을 방지해야 합니다 [1, 3].
* **애니메이션 속성 최적화**: 레이아웃을 변경하는 속성 대신, `transform`이나 `scale`, `opacity`와 같이 리플로우를 유발하지 않고 GPU 가속을 활용할 수 있는 합성(Composite) 단계의 속성만을 사용하여 렌더링 성능을 개선해야 합니다 [2, 5].
## Trade-offs & Caveats
## 모순 및 업데이트 (Contradictions & Updates)
No trade-offs available.
## 🔗 Knowledge Connections
## 🔗 지식 연결 (Graph)
- **Related Topics:** Reflow, Repaint, [[CSS Animations|CSS Animations]], [[Performance Optimization|Performance Optimization]]
- **Projects/Contexts:** [[Frontend|Frontend]] Architecture, [[실무에서 CSS 관리하는 방법|실무에서 CSS 관리하는 방법]]
- **Contradictions/Notes:** `will-change` 속성은 브라우저가 변경 사항에 미리 대비하게 해주어 성능을 향상할 수 있지만, 너무 많은 요소에 불필요하게 적용할 경우 오히려 브라우저 자원을 낭비하여 성능 문제를 일으킬 수 있으므로 신중하게 사용해야 합니다 [10].
@@ -60,3 +70,29 @@ No trade-offs available.
---
*Last updated: 2026-04-26*
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
**언제 이 지식을 쓰는가:**
- *(TODO)*
**언제 쓰면 안 되는가:**
- *(TODO)*
## 🧪 검증 상태 (Validation)
- **정보 상태:** needs_review
- **출처 신뢰도:** A
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
## 🧬 중복 검사 (Duplicate Check)
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
- **처리 방식:** UPDATE (자동 정규화)
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
## 🕓 변경 이력 (Changelog)
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|------|-----------|-----------|--------|
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |