웹사이트의 절반 이상이 image를 로딩하는데 쓰고 있다.
Raster Image (jpeg , gif, png)
픽셀로 표현하는 방식
Vector Image (svg)
수학 방정식을 포함해 계산식으로 연산해 이미지 제공
무손실 이미지 : GIF, PNG
무손실 이미지는 원본 이미지에서 이미지를 렌더링하는데 필요하지 않은 정보들을 제거한 이미지.
손실 이미지 : JPEG
손실 이미지는 무손실 이미지의 화질 감소를 감수하면서도 사이즈를 줄여 빠른 렌더링을 할 수 있는 이미지.
리사이징을 통한 이미지 파일 최적화
이미지 퀼리티가 크게 중요하지 않고 용량을 줄이는데 집중하고 싶을 때 사용합니다.
이미지 퀼리티가 크게 중요할 때 사용합니다.
1,2번과 달리 gif나 많은 이미지 일괄 압축 처리를 위해 webpack의 플러그인 사용
일단 이미지 압축 플러그인은 굉장히 다양함 .
아래 규칙을 webpack.config.js에 코드 추가
module: {
rules: [
{
test: /\.(png|jpg|jpeg|gif|webp)$/i,
loader: 'image-webpack-loader',
enforce: 'pre',
},
]
}
<img loading="lazy">
or
<img src="1px.gif" data-src="book.jpg" onload="loadReal(this)"/>
function loadReal(img) {
if(img.style.display != "none"){
img.onload = null;
img.src = img.getAttribute("data-src")
}
}
참고 :
https://codingmoondoll.tistory.com/entry/프론트엔드-성능-최적화-4-이미지-파일-최적화
https://oliveyoung.tech/blog/2021-11-22/How-to-Improve-Web-Performance-with-Image-Optimization/