손으로 짠 정적 마케 페이지는 메시지가 또렷하지만 3840픽셀 JPEG 한 장을 올려 CSS만으로 줄이면 Largest Contentful Paint(LCP) 예산이 조용히 무너집니다. 2026년 현실적인 바닥선은 <picture>로 포맷을 나누고 폭 서술자 srcset와 그리드에 맞는 sizes, 비율을 새지 않게 하는 width·height, 필요 시 프리로드와 조율되는 우선순위 힌트입니다. 합성 점수만으로 논쟁이 끝나지 않도록 랩·필드 비교는 Core Web Vitals Lighthouse와 Safari 필드 데이터 글과 함께 보세요.
Apple Silicon Mac mini를 MacHTML로 하루 약 $16.9에 쓰면 WebKitGTK 대용이 아니라 진짜 Safari에서 AVIF·WebP 협상과 메모리 압박 시 디코드 정체를 재현합니다. 자동화와 실제 단말 차이는 Playwright WebKit 대 실제 Safari에서도 다룹니다.
srcset 밀도 서술자와 폭 서술자
1x·2x 같은 x 서술자는 카드·썸네일처럼 렌더링 폭이 거의 고정일 때 여전히 유효합니다. 플루이드 레이아웃에서는 w 서술자와 sizes 조합이 대세입니다. 디스크에 없는 폭을 나열하면 Safari가 가까운 후보를 고르지만 파일이 렌더링보다 700픽셀이나 크면 바이트만 낭비합니다. 랜딩 히어로는 480~1920픽셀 사이 다섯 단계 정도가 운영하기 편합니다.
카드 이미지는 밀도 서술자로도 되지만 같은 요소에서 w와 x를 섞지 말라는 규칙을 README에 적어두면 무효 폴백으로 첫 후보만 선택되는 사고를 줄입니다.
반응형 그리드에 맞춘 sizes
sizes는 파일 폭이 아니라 화면에 그려지는 폭을 씁니다. 미디어 조건은 페이지 전체가 아니라 컴포넌트 실측에 맞추세요. 레이아웃이 삼등분으로 바뀌면 즉시 고치지 않으면 브라우저가 과대 소스를 가져와 LCP가 나빠집니다.
래퍼에 container-type:inline-size를 두면 정적 HTML이라도 모듈을 바꿔 끼울 때 sizes 전제가 덜 흔들립니다.
picture·AVIF·WebP·JPEG
type="image/avif"를 앞에, 이어서 image/webp, 마지막에 최적화 progressive JPEG를 가리키는 img. 사진은 AVIF가 동품질 대비 대략 35~50%까지 바이트를 줄이고 WebP는 호환 안전망입니다. alt는 img에만 둡니다.
<picture>
<source type="image/avif" srcset="/media/hero-800.avif 800w,
/media/hero-1200.avif 1200w" sizes="(min-width:960px) 720px, 100vw">
<source type="image/webp" srcset="/media/hero-800.webp 800w,
/media/hero-1200.webp 1200w" sizes="(min-width:960px) 720px, 100vw">
<img src="/media/hero-1200.jpg" width="1200" height="750"
alt="제품 작업 공간" decoding="async" fetchpriority="high">
</picture>
| 관점 | AVIF | WebP | JPEG |
|---|---|---|---|
| 사진 디테일 | 매우 좋음 | 좋음 | 기준 |
| Apple Silicon 디코드 부하 | 중간 | 낮음 | 매우 낮음 |
| 2026 Safari 도달 | 데스크톱+최신 iOS | 넓음 | 넓음 |
| CDN 캐시 키 | Vary 전제 | 분리 권장 | 롱테일 허용 |
fetchpriority·프리로드·지연 경계
폴드 위 히어로는 하나만 fetchpriority="high"입니다. 여러 개가 높으면 대역을 다툽니다. 히어로가 주간 캠페인으로 바뀌면 조건부 프리로드가 새지 않게 조심하세요. 폴드 아래는 loading="lazy"지만 LCP 후보는 지연하지 마세요. 모바일에서 Chrome과 Safari의 가시성 판단이 다릅니다.
decoding="async"는 카드·갤러리에 적합합니다. 히어로는 저사양에서 sync도 검토하지만 M계열에서는 비동기가 페인트 순서에 더 유리한 경우가 많습니다.
CLS를 막는 고유 크기
CSS가 max-width:100%여도 속성 width·height는 파일 종횡비에 맞춰 두면 브라우저가 즉시 종횡비 상자를 잡아 플레이스홀더 없이 0.08 이상 CLS를 줄입니다. 아트 디렉션이 여러 크롭이면 <picture> 가지를 나누고 한 직사각형을 늘리지 마세요.
Safari 디코드와 메모리 압력
WebKit은 메모리가 빠듯하면 더 높은 해상도 소스가 있어도 낮은 해상도를 고를 수 있습니다. 저전력 모드·열 스로틀링에서는 디코드 배치도 달라지니 스크롤 캡처로 지연 페인트를 놓치지 마세요. P3 자산은 color-gamut:p3 분기 없이 넣으면 sRGB 가정으로 이중 디코드가 날 수 있습니다.
정적 사이트 작성자 내보내기 체크
- 마스터 사진은 480·800·1200·1600픽셀 등 고정 스톱으로 내보냅니다.
- 브랜드 허용 품질에서 원본 대비 SSIM 0.96 이상을 지각 압축 목표로 삼습니다.
- AVIF·WebP·JPEG 파일명 규칙을 맞추고 해시 캐시 버스터를 동기화합니다.
- CMS 필드에 필수
sizes조각을 첨부해 카피 수정만으로 레이아웃이 깨지지 않게 합니다. - Safari 메이저 업데이트마다 분기 리그레션을 넣습니다.
CDN·Accept·캐시 키
같은 URL로 포맷만 바꾸면 최신 Accept를 안 보내는 크롤러에게 잘못된 변형이 갈 수 있습니다. 불변 해시 파일명으로 경로를 나누거나 엣지에서 Accept별 키를 분리합니다. HTML 껍데기는 300~600초, 해시 자산은 7일 이상이 다루기 쉽습니다.
HTTP/2 멀티플렉싱으로 sizes가 약간 비관적으로 잡혀 있을 때 여러 w 후보가 동시에 달리므로 크리티컬 CSS와 대역을 다투지 않게 동시 스트림 수도 봅니다. 4G 프로파일에서 히어로가 900KB를 넘으면 최폭 소스를 줄이거나 아트 디렉션을 조입니다.
이미지에 문자를 넣으면 접근성 리스크가 크므로 가능하면 SVG나 HTML로 처리하고 사진에 글을 얹었다면 근처에 텍스트를 중복 제공하며 장식 이미지 alt는 비웁니다.
브레이크포인트를 960에서 1024로만 옮겨도 슬롯 폭이 넓어져 바이너리를 안 건드려도 메가바이트가 늘 수 있습니다. Mac mini를 클라우드로 빌리면 sips·ffmpeg 배치 변환도 노트북보다 열에 여유 있습니다.
마케팅 팀이 모듈 순서만 바꿔도 sizes 전제가 틀어질 수 있으니 프리뷰 빌드마다 WebPageTest나 Lighthouse 모바일 프로파일로 히어로 바이트와 LCP를 다시 찍습니다. 디자인 QA 체크리스트에 이미지 메타 필수 항목을 넣어 두면 릴리스 직전에만 발견되는 과다 페치를 줄입니다. 정적 사이트라도 배너 교체 스크립트가 첫 페인트 후보를 바꾸면 지표가 흔들리므로 릴리스 노트마다 실제 Safari에서 히어로 선택을 확인하세요.
가벼운 이미지를 진짜 Safari로 증명
Apple Silicon Mac mini로 AVIF 협상·LCP·CLS를 출시 전에 검증합니다. 플랜은 대략 $16.9/일부터.