# [[CSS 애니메이션 성능(CSS Animation Performance)|CSS 애니메이션 성능(CSS Animation Performance]]

## 📌 Brief Summary
CSS 애니메이션 성능(CSS Animation Performance) 최적화는 웹 애플리케이션에서 애니메이션이 브라우저의 렌더링 엔진에 미치는 부하를 줄여 끊김 없는(jank-free) 부드러운 사용자 경험을 제공하기 위한 기술적 접근입니다. 레이아웃 재계산(Reflow)과 화면 다시 그리기(Repaint)를 유발하는 속성의 애니메이션을 피하고 GPU 가속을 활용할 수 있는 속성으로 대체하는 것이 핵심입니다. 최적화되지 않은 애니메이션은 기기의 리소스를 낭비하고 렌더링 속도를 늦춰 전반적인 유지보수성과 UX를 크게 저해할 수 있습니다 [1-3].

## 📖 Core Content
* **Reflow 및 Repaint를 유발하는 속성 애니메이션 피하기**: `width`, `height`, `margin`, `padding`, `top`, `left`, `bottom`, `right`와 같은 기하학적 형태나 레이아웃에 영향을 주는 속성은 브라우저의 레이아웃 재계산(Reflow 또는 [[Layout Thrashing|Layout Thrashing]])과 다시 그리기(Repaint)를 유발하여 성능을 크게 저하시킵니다 [3-6].
* **GPU 가속을 활용한 속성(Transform, Opacity) 사용**: 레이아웃 변경을 피하기 위해 `width`나 `height` 대신 `transform`(`scale`, `translateZ()`, `rotate3d()`)을, 색상 변화 대신 `opacity`와 `filter`를 사용해야 합니다 [6-9]. 이를 통해 브라우저가 애니메이션 작업을 기본 스레드에서 기기의 GPU로 넘겨 처리(Compositing)하게 함으로써 렌더링 성능을 향상시킬 수 있습니다 [7-9].
* **비용이 많이 드는 시각적 속성 자제**: `box-shadow`, `border-radius`, `filter` 등의 속성이나 거대하고 복잡한 배경 이미지의 애니메이션은 브라우저의 블렌딩 및 합성 리소스를 매우 많이 소모하므로 사용을 최소화해야 합니다 [9-11]. 복잡한 이미지 대신 SVG나 단순한 CSS 그레이디언트를 활용하는 것이 훨씬 부드럽고 빠른 애니메이션을 보장합니다 [12].
* **애니메이션 개수 및 무한 루프 제한**: 한 번에 너무 많은 요소를 동시에 애니메이션하거나 불필요한 무한 루프(`infinite`)를 돌리면 시스템 리소스가 고갈되고 초당 프레임(FPS)이 떨어집니다 [10, 13, 14]. 화면에 보이지 않는 요소의 애니메이션은 `animation-play-[[State|State]]`를 이용해 일시 정지시키고, 필수적인 UI 요소에만 제한적으로 애니메이션을 적용해야 합니다 [3, 13, 14].
* **`will-change` 속성의 전략적 사용**: 애니메이션이 예상되는 요소에 `will-change` 속성을 부여하면, 브라우저가 미리 렌더링 최적화(예: GPU 레이어 분리)를 준비할 수 있게 힌트를 줄 수 있습니다 [8, 13, 15]. 단, 과도하게 사용할 경우 오히려 브라우저의 성능 문제를 일으킬 수 있으므로 최후의 수단으로만 사용해야 합니다 [11, 15].
* **타이밍 및 성능 테스트**: 부드럽고 자연스러운 느낌을 위해 애니메이션 지속 시간은 보통 200~500ms로 짧게 유지하고 선형적(Linear) 전환보다는 Easing 함수(`ease-in-out` 등)를 사용해야 합니다 [16]. 배포 전에는 [[Chrome DevTools|Chrome DevTools]]의 [[Performance Panel|Performance Panel]]과 Layer Profiler 등을 활용하여 프레임 드롭이나 렌더링 병목 현상을 검증해야 합니다 [6, 17].

## 🔗 Knowledge Connections
- **Related Topics:** Reflow와 Repaint(Reflows and Repaints), [[GPU 가속(GPU Acceleration)|GPU 가속(GPU Acceleration]], CSS 구조 설계 방식, [[반응형 디자인|반응형 디자인]]
- **Projects/Contexts:** 대규모 프론트엔드 프로젝트의 CSS 최적화(Performance [[Optimization|Optimization]] in [[CSS Architecture|CSS Architecture]]), UX 개선을 위한 애니메이션 통합(Integrating Animation in UX)
- **Contradictions/Notes:** 소스 자료들은 UI에서 애니메이션이 사용자 경험(UX)을 향상하고 브랜드 개성을 살리는 중요한 소통 수단이라고 권장하지만, 동시에 목적 없는 과도한 애니메이션이나 성능을 고려하지 않은 구현은 사용자에게 인지적 과부하를 주거나 기기 성능을 떨어뜨려 오히려 심각한 경험 저하를 낳을 수 있다고 주의를 주고 있습니다 [2, 16, 18]. 따라서 "예쁘게" 만드는 것을 넘어 "유지보수 가능하고 최적화된(Performant)" 상태를 유지하는 것이 강조됩니다.

---
*Last updated: 2026-04-26*