레이아웃 스레싱은 웹 페이지에서 발생할 수 있는 문제 중 하나로 브라우저 엔진이 레이아웃 계산을 반복적으로 수행하면서 발생한다.
레이아웃은 웹 페이지의 요소들의 위치와 크기를 결정하는 과정이다.
브우저는 웹 페이지의 요소들에 CSS 스타일을 적용하고, 각 요소의 위치와 크기를 계산하여 화면에 표시한다.
이 때 , 레이아웃 작업은 비용이 큰 작업으로, 브라우저는 최적화를 위해 레이아웃 계산을 최적화하려고 한다.
자바스크립트 코드가 dom요소의 스타일을 변경하면 브라우저는 해당 요소와 관련된 레이아웃을 다시 계산한다.
JavaScript 코드에서 DOM 요소의 위치나 크기와 같은 레이아웃 정보를 읽을 때, 브라우저는 해당 정보를 제공하기 위해 레이아웃 계산을 수행한다 → 이해안감
레이아웃 시프트는 Core Web Vitals 중 하나인 CLS(Cumulative Layout Shift, 누적 레이아웃 이동)의 지표 중 하나이다.
CLS는 웹 페이지의 시각적 안정성을 측정하기 위한 지표이다. 사용자 경험에 큰 영향을 미칠 수 있는 레이아웃 시프트를 측정한다.
CLS는 웹 페이지의 수명 주기 동안 발생하는 모든 레이아웃 시프트를 계산하여 평균 점수를 제공한다. 점수는 0에서 1 사이의 범위로 표현되고, 0에 가까울수록 좋은 사용자 경험을 의미한다. 1에 가까울수록 레이아웃 시프트가 빈번하게 발생되어, 사용자는 예상치 못한 페이지 이동이나 버튼 클릭 등으로 불편을 느낄 수 있다.
LCP(Largest Contnentful Paint)는 Core Web Vitals 중 하나이다.
LCP는 웹 페이지 로딩 성능을 측정하는 지표 중 하나이다. 사용자가 페이지의 주요 콘텐츠를 시각적으로 확인할 수 있는 시점을 측정한다.
페이지 로딩 중에 가장 큰 콘텐츠 요소(Largest Contentful Element) 가 화면에 나타나는 시간을 측정한다.
일반적으로 LCP는 이미지, 비디오, 텍스트 블록 등과 같은 큰 콘텐츠 요소를 의미한다. 사용자가 페이지의 주요 콘텐츠를 빠르게 볼 수 있을 때, 좋은 사용자 경험을 제공한다고 판단한다.
콘텐츠를 가져오는동안 네트워크 지연은 LCP를 늦출 수 있다.(안 좋아진다 이 말임)
LCP는 페이지에서 로드되는 가장 큰 콘텐츠 요소의 크기에 의해 결저왼다. 따라서 리소으의 압축, 최적화 및 적절한 크기 조정은 LCP 개선에 도움이 된다.
LCP 는 렌더링을 차단하는 자바스크립트 또는 CSS로드에 영향을 받을 수 있다. 자바스크립트와 CSS를 최적화하여 브라우저 렌더링을 방해하지 않도록 해야한다.