Posts 견고한 UI 설계를 위한 마크업 가이드 - 이미지 마크업 최적화
견고한 UI 설계를 위한 마크업 가이드 - 이미지 마크업 최적화
Cancel

견고한 UI 설계를 위한 마크업 가이드 - 이미지 마크업 최적화

견고한 UI 설계를 위한 마크업 가이드 강의를 봅시다.


이미지 포맷 비교

최근 들어 avif포멧이 가장 높은 평가를 받고 있다.
그 다음이 webp이며 제일 안 좋은 것이 jpg이다.

그래서 avif나 webp를 지원하는 브라우저일 경우 avif / webp를 보여주는 것이
사용자에게 제일 좋고
마지막으로 jpg를 보여주는 것이 좋다.


이미미 제공 로직

1
2
3
4
5
6
7
if("avi를 지원하면"){
  'avif'
}else if("webp를 지원하면"){
  'webp'
}else{
  'jpg
}

위와 같은 방식으로 보여주는 것이 제일 적합하다.


picture요소로 type 분기

1
2
3
4
5
<picture>
  <source srcset="sx.avif" type="image/avif">
  <source srcset="sx.webp" type="image/webp">
  <img src="sx.jpg" alt>
</picture>

위와 같이 코드를 작성할 경우 picture 요소는 셋 중에 하나만 보여주게 된다.
그래서 브라우저 별로 지원하는 최적의 이미지를 보여줄 수 있다.

1
2
3
4
<picture>
  <source srcset="small.webp" media="(max-width:960px)">
  <img src="large.webp" alt>
</picture>

위 처럼 media를 통해 해상도 별로 이미지를 분기처리 할 수도 있다.

1
2
3
4
<picture>
  <source srcset="2x.webp 2x, 1x.webp" type="image/webp">
  <img srcset="2x.jpg 2x" src="1x.jpg" alt>
</picture>

위 처럼 표시할 경우 레티나 디스플레이를 분기할 수도 있다.
레티나 디스플레이 화면에서만 2x 배수의 이미지를 출력하는 것이다.


img 요소의 성능

1
2
3
4
<img
  loading='lazy' //지연로딩
  decoding="async" //디코딩 지연
>

위 처럼 표시할 경우 뷰 포트에만 보이는 이미지를 출력하게 된다.
디코딩 지연은 디코딩을 병렬로 처리해서 이미지 외 다른 컨텐츠가 웹 페이지에 빠르게 표시되는 것을 도와준다.


요약

  • avif 포맷을 제공하고 webp, jpg를 대체 수단으로 제공해라
  • picture, source, img 요소와 srcset, type, media 속성의 문법을 익혀라
  • 빠른 로딩 속도를 통해 UX를 개선하고 이미지 전송 비용을 절약하라

  • avif 이미지를 제공, webp, jpeg이미지를 대체 수단으로 제공
  • 960픽셀 미만 해상도에서는 small 이미지 출력
  • 961픽셀 이상 해상도에서는 large 이미지 출력
  • HTML 코드만을 사용하고 1,2 요구 사항을 동시에 대응하는 하나의 picture 요소를 구현

image

This post is licensed under CC BY 4.0 by the author.

견고한 UI 설계를 위한 마크업 가이드 - 상호작용 콘텐츠의 올바른 용법

견고한 UI 설계를 위한 마크업 가이드 - CSS의 절대 권력 초기화

Comments powered by Disqus.