목록 보기
웹뷰 속 무한 CSS 애니메이션의 숨은 비용
프론트엔드

웹뷰 속 무한 CSS 애니메이션의 숨은 비용

크리에이트립
크리에이트립
2026년 6월 15일

두줄요약

Android 웹뷰에서 무한 CSS 애니메이션이 앱 CPU를 크게 올리는 현상을 조사했습니다. transform 최적화만으로는 해결되지 않았고, 지속 애니메이션 자체를 줄이는 방향이 필요했습니다.

핵심 내용

  • Android React Native 앱의 웹뷰에서 보이는 무한 CSS 애니메이션이 앱 프로세스 CPU를 크게 올리는 현상 분석
  • transform: translateX뿐 아니라 opacity 애니메이션, 단순 박스 애니메이션에서도 유사한 고CPU 재현
  • 일반 Chrome의 최적화와 달리 웹뷰는 Android View 렌더링 경로와 맞물려 지속 draw loop 비용이 커질 수 있음

구조와 흐름

  • 실제 앱에서 가시성 여부에 따라 CPU와 frame 카운터가 크게 달라지는 점을 먼저 확인
  • 제품 코드 제거 후 최소 재현 하네스로 static, paused, box-transform, text-transform, opacity-animation 등을 비교
  • Chrome과 웹뷰의 렌더링 경로 차이를 통해 웹뷰에서의 host view integration 비용을 해석

주의할 점

  • transform, opacity, will-change, translateZ(0)만으로는 웹뷰 고CPU 현상을 해결하지 못할 수 있음
  • foreground-visible 상태의 무한 애니메이션은 웹뷰에서 지속적인 draw/onDraw 호출을 유발할 수 있음
  • 웹뷰 안의 애니메이션 최적화보다 애니메이션 자체를 멈추거나 웹뷰 밖으로 옮기는 대응이 필요

적용해볼 점

  • 웹뷰 내 지속형 애니메이션의 가시성 조건과 CPU, frame 카운터를 함께 점검
  • 최소 재현 환경으로 원인 요소를 분리해 실험하는 방식 적용
  • 무한 marquee류 UI는 웹뷰 사용 여부와 함께 운영 비용까지 고려

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...