Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- javascript
- Solid
- docker-compose
- Component
- 리액트
- SVG
- Docker
- svgr
- 알고리즘
- 타입스크립트
- next.js
- 백준
- typescript
- DFS
- type
- 프론트엔드
- test
- 자바스크립트
- 타입
- BFS
- Primitive
- react
- DAILY
- 다이나믹프로그래밍
- nextjs
- Unit Test
- 아키텍처
- error
- jest
- Study
Archives
- Today
- Total
`프론트엔드 개발자` 개형이의 벽돌집
이미지 사이즈를 줄여보자. 웹 이미지 사이즈 최적화 🖼️ 본문
❗️ 이미지의 크기를 줄이고 용량을 낮추면 이미지를 좀 더 빠르게 로드할 수 있을텐데…
➡️ 큰 사이즈의 이미지를 더 낮은 용량의 이미지로 변환해보자!
🧐 JPG, PNG보다 WEBP, AVIF?!
❓WEBP
WEBP는 구글에서 개발한 이미지 포맷이다.
WebP를 사용하면 JPG는 기존 대비 25~34%, PNG는 비손실의 경우 평균 26%(손실 방식의 경우 60~70%) 정도 기존 파일 대비 작아진다고 한다.
❓AVIF
WEBP와 마찬가지로 GIF, JPG, PNG등의 전통적인 이미지 포맷을 대체하기 위해 출시되었고 뛰어난 압축 효율을 보이고 있다. WEBP보다 무려 9년이나 뒤에 나온 포맷이기 때문에 성능은 더 좋지만 범용성 측면에서는 문제가 있을 수 있다.
🧐 이미지를 변환해보자!
➡️ Squoosh 여기서 쉽게 다른 포맷의 이미지로 변환할 수 있다.
단, WEBP나 AVIF의 경우 지원하지 않는 브라우저가 있다. 이는 분기를 통해 지원할 경우 WEBP, AVIF로, 지원안할 경우 다른 포맷으로 적용되게 할 수 있다.
<picture>
{/* 브라우저가 avif를 지원하지 않으면 <source> 요소는 스킵된다. 지원할 경우 avif 형식 이미지 로드 */}
<source srcset="photo.avif" type="image/avif" />
{/* 브라우저가 webp를 지원하지 않으면 <source> 요소는 스킵된다. 지원할 경우 webp 형식 이미지 로드 */}
<source srcset="photo.webp" type="image/webp">
<img src="photo.png" alt="photo">
</picture>
🧐 동영상의 경우도 유사한 방식으로 최적화가 가능하다!
➡️ 동영상 컨버터 사이트: medio.io 링크에서 동영상 압축 가능 (ex. mp4, webm)
단, WEBM의 경우 지원하지 않는 브라우저가 있다. 이는 분기를 통해 지원할 경우 WEBM, 지원안할 경우 MP4 적용되게 할 수 있다.
<video controls width="250">
<source src="/media/cc0-videos/flower.webm" type="video/webm">
<source src="/media/cc0-videos/flower.mp4" type="video/mp4">
Sorry, your browser doesn't support embedded videos.
</video>
참고: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture
참고: https://developer.mozilla.org/ko/docs/Web/HTML/Element/Video
참고: https://kr.bandisoft.com/honeycam/webp/what-is-webp/
Comments