[Korean FE Article] 프런트엔드 웹 퍼포먼스: 필수 요소(1)
글 링크: https://velog.io/@eunbinn/Frontend-Web-Performance-The-Essentials-1
소개
웹 퍼포먼스는 좋은 사용자 경험을 제공하는 데에 중요한 부분을 차지합니다. 이 글에서는 이벤트 루프를 이해하고 메인 스레드에서, 또 메인 스레드 밖에서 웹 워커 등을 활용해 메인 스레드가 최대한 빠르게 실행될 수 있도록 하는 방법을 알아봅니다. 뿐만 아니라 관련된 다양한 자료들도 링크로 제공하고 있으니 확인해보세요 :)
tl;dr
이벤트 루프
최상의 성능과 사용자 경험을 위해 이벤트 루프 태스크는 가능한 한 가벼워야 합니다.
메인 스레드에서
이벤트 루프 블로킹을 피하기 위해서 requestAnimationFrame, setTimeout, setImmediate 세 가지의 비동기 스케줄링이 활용됩니다.
처리량이 많다면 setImmediate, 태스크에 대한 처리량이 애플리케이션에 중요하지 않다면 setTimeout 이 선호될 수 있습니다.
메인 스레드 밖에서
postMessage 함수에 의존하는 등의 페인 포인트를 감당할 수 있고, DOM 조작이 필요없다면 웹 워커는 좋은 수단이 될 수 있습니다.