성능 최적화

성능 최적화 (Will Change)

브라우저에게 요소가 곧 바뀔 것이라고 미리 알려서, 필요한 애니메이션/변화를 준비하게 만드는 성능 최적화 유틸리티예요.

출처: 문서

본문

클래스 & 스타일 (Class Styles)

will-change-auto will-change: auto;

will-change-scroll will-change: scroll-position;

will-change-contents will-change: contents;

will-change-transform will-change: transform;

will-change-<custom-property> will-change: var(<custom-property>);

will-change-[<value>] will-change: <value>;

예시 (Examples)

will-change로 최적화하기 (Optimizing with will change)

will-change-scroll, will-change-contents, will-change-transform 유틸리티를 사용하면 곧 바뀔 것으로 예상되는 요소를 최적화할 수 있어요. 브라우저에게 애니메이션이 실제로 시작되기 전에 필요한 준비를 하라고 지시하는 거예요.

<div class="overflow-auto will-change-scroll">
  <!-- ... -->
</div>

이 유틸리티는 요소가 바뀌기 직전에 적용하고, 변경이 끝난 직후 will-change-auto로 제거하는 것이 권장돼요.

will-change 속성은 알려진 성능 문제를 처리할 때 마지막 수단으로 사용하도록 설계됐어요. 이 유틸리티를 과도하게 쓰거나, 단지 성능 문제를 예상해서 미리 쓰는 것은 오히려 페이지 성능을 떨어뜨릴 수 있으니 주의하세요.

커스텀 값 사용하기 (Using a custom value)

will-change-[<value>] 문법을 사용하면 완전히 커스텀한 값으로 will-change 속성을 설정할 수 있어요.

<div class="will-change-[top,left] ...">
  <!-- ... -->
</div>

CSS 변수를 쓸 때는 will-change-(<custom-property>) 문법을 사용할 수도 있어요.

<div class="will-change-(--my-properties) ...">
  <!-- ... -->
</div>

이것은 will-change-[var(<custom-property>)]의 줄임 표현이에요. var() 함수를 자동으로 추가해 주기 때문에 훨씬 편리하죠.

더 알아보기 (Learn more)