오늘은 Lighthouse에 대해 알아보자!
먼저, Lighthouse란 무엇일까?
Lighthouse
- 구글에서 개발한 오픈소스로서 웹 페이지의 품질을 개선할 수 있는 자동화 툴.
Lighthouse는 성능, 접근성, PWA, SEO 등을 검사하며 이를 이용해 사용자는 어떤 웹페이지든 품질 검사를 할 수 있고, Chrome DevTools부터 CLI, 노드 모듈 등 다양한 경로를 통해 사용할 수 있다.
검사할 페이지의 url을 Lighthouse에 전달하면 Lighthouse는 해당 페이지에 대한 여러 검사를 실행한다!
그럼 Naver 데스크탑 페이지를 검사해보자!
그럼 이제 분석 결과에 대해 자세히 알아보자!
위 이미지에서 볼 수 있듯이 5가지 항목으로 나뉘어서 검사를 하고 총점을 평가한다.
Performance 항목에서는 웹 성능을 측정한다.
Accessibility 항목에서는 웹 페이지가 웹 접근성을 잘 갖추고 있는지 확인한다.
Best Practices 항목에서는 웹 페이지가 웹 표준 모범 사례를 잘 따르고 있는지 확인한다.
SEO 항목에서는 웹 페이지가 검색 엔진 최적화가 잘 되어있는지 확인한다.
<meta>
요소는 잘 작성되어 있는지, 텍스트 크기가 읽기에 무리가 없는지 등을 확인한다.PWA 항목에서는 해당 웹 사이트가 모바일 애플리케이션으로서도 잘 작동하는지 확인한다.
그럼 이제 다시 검사 페이지로 돌아가서 세부 항목을 확인해보자!
먼저 Opportunities에 대해 확인해보자
opportunities는 페이지 로드를 빠르게 해줄 수 있다.
하지만... 점수 자체에는 영향을 미치지 않는다고 한다!
위의 이미지에서 볼 수 있듯이 4가지의 성능 저하를 일으키는 문제들이 나온다.
대부분 이미지에 관련 된 것이다!
이미지를 최적하라는 의미이다. 받아온 이미지의 용량이 지금 보이는 화면의 용량보다 크기 때문에 이미지의 형식이나 크기를 줄여서 용량을 줄이라는 의미가 된다!
Serve images in next-gen formats의 경우를 자세히 살펴보자!
문구를 자세히 읽어보면, 이미지 파일 형식을 PNG 또는 JPEG보다 나은 WebP 및 AVIF를 사용하라고 권하고 있다!
웹 전용 이미지를 사용하면 로드가 빨라지기 때문이다.
파일 형식을 바꾸라는 문제 이외의 문제들은 이미지를 불러오는 웹 코드를 최적화 시키면 해결된다!
예를 들어,
// unsplash에서 제공하는 image cdn 사용
function getParametersForUnsplash({ width, height, quality, format }) {
return `?w=${width}&h=${height}&q=${quality}&fm=${format}&fit=crop`;
}
<img
src={
props.image +
getParametersForUnsplash({
width: 1200,
height: 1200,
quality: 80,
format: "jpg"
})
}
alt="thumbnail"
/>;
또는
// aws s3에서 제공하는 image cdn 사용
https://img.kr/image_${width}x${height}.png
이런 형식으로 사용하면 문제들은 해결된다!
마지막으로 Lighthouse에 대해 정리해보자!
Lighthouse는 웹 성능 최적화 뿐만 아니라 웹 접근성, 웹 표준, SEO 관련 항목도 확인하고 해결책을 제시해준다.
그러므로 Lighthouse를 이용해서 웹 사이트 성능 최적화 뿐만 아니라, 웹 표준, 웹 접근성, SEO도 개선시켜 보는 것이 좋다!