웹 성능의 절반은 이미지가 좌우합니다. CDN 이미지 최적화는 포맷(AVIF/WEBP) 전환, 리사이즈/크롭, DPR(디스플레이 배율) 대응을 묶어 바이트를 줄이고 LCP를 당기는 기술 패키지예요. 이 글은 운영자가 바로 적용할 수 있는 설계 원칙·캐시 전략·모니터링까지 한 번에 정리합니다.
1) 포맷 전략: AVIF/WEBP 자동 협상
- 기본 원칙: 브라우저의 Accept 헤더 기반 자동 포맷 협상 → 가능하면 AVIF, 다음은 WebP, 마지막은 원본 JPEG/PNG.
- 장단점 핵심
- AVIF: 압축 효율 최고, 텍스처·그라데이션 우수. 인코딩 비용 높음(서버/에지에서 캐시로 상쇄).
- WebP: 폭넓은 호환성·인코딩 속도 우수. 텍스처 복잡한 사진은 AVIF가 더 작게 나오는 편.
- PNG/JPEG: 레거시 폴백. 투명도(알파) 필요 시 PNG, 사진은 JPEG 유지 가능.
- 품질(quality) 가이드
- AVIF: q=40~55(콘텐츠 따라 튜닝)
- WebP: q=70~85
- JPEG: q=75~85 + 프로그레시브 권장
- 색·메타데이터: EXIF 제거, ICC 프로파일 sRGB 표준화로 일관된 렌더와 용량 절감.
캐시 헤더: Vary: Accept로 포맷별 오브젝트를 분리해 CDN 캐시 오염을 방지합니다.
2) 리사이즈·크롭: “요만큼만, 딱 필요만큼”
- 요청 기반 변환: ?w=, ?h=, fit=cover/contain, crop=entropy/face 등 파라미터 표준화로 같은 사이즈는 같은 캐시키로 묶이게 합니다.
- 정규화(버킷): w는 320/480/640/768/960/1280/1600/1920 그리드로, h는 생략하거나 비율 고정. 임의의 px 남발은 캐시 파편화의 지름길.
- 중요 피사체 보호: 썸네일은 entropy/face 크롭으로 피사체 중심 유지.
- 형태별 권장
- 히어로 이미지(배너): 가로 1280~1920, 고해상도용 2x 버전 병행
- 카드/피드 썸네일: 320/480/640 3종
- 아이콘/스프라이트: 가능하면 SVG 우선
3) DPR 대응: Client Hints로 깔끔하게
- 왜 DPR가 중요한가: 레티나(2x/3x) 디스플레이에서 같은 CSS 픽셀도 실제 픽셀 수가 더 많아 선명도를 유지하려면 더 큰 이미지를 보내야 합니다.
- 헤더 기반 협상: DPR, Width, Viewport-Width, Accept를 활용한 서버 측 렌더링/에지 변환.
- 캐시키 설계
- Vary: DPR, Width, Accept(필요 최소만)
- DPR은 1.0/1.5/2.0/3.0 버킷화, Width는 그리드로 정규화 → 키 폭발 방지.
- HTML 측: <img srcset="… 1x, … 2x, … 3x" sizes="…">로 브라우저 선택권 제공. 배너/아트 디렉션은 아트보드별 소스 분기(<picture> + media).
4) 네트워크·캐시·원본 보호까지 한 번에
- Cache-Control
- 정적 버전 파일: public, max-age=31536000, immutable(파일명 해시 필수)
- 동적 변환: public, max-age=86400, stale-while-revalidate=600
- 캐시키 최소화
- 포함: path + w + h + fit + format(협상 결과) + quality 버킷
- 제외: utm_*, ts, 임의 파라미터(노이즈)
- 오리진 보호
- 에지에서 썸네일/포맷 변환 수행 → 오리진은 원본 저장소 역할만.
- 리밸런싱/레이트리밋으로 대량 리사이즈 남용 방지.
- 선제 캐싱
- 피드/상단 카드 등 자주 보이는 사이즈는 배포 시점 프리렌더·프리캐시.
5) 애니메이션·투명도·아이콘 특수 케이스
- 애니메이션: GIF는 용량 지옥. 가능하면 비디오(H.264/HEVC/VP9) 또는 animated WebP/AVIF로 대체.
- 투명도: 사진+알파면 AVIF/PNG, 단색 벡터 로고는 SVG가 정답.
- 아이콘: SVG + CSS가 가장 가볍고 선명, 비트맵 아이콘은 스프라이트 또는 Icon Font/SVG Sprite 고려.
6) 이미지 품질 자동화 파이프라인
- 업로드 단계: 메타데이터 제거, sRGB 변환, 과도한 해상도 다운스케일
- 에지 변환: Accept로 AVIF/WebP 결정, w/h/fit 정규화, q 품질 버킷 적용
- 감지 기반 튜닝: 얼굴/객체 감지→크롭 포인트 자동 설정
- 에러·타임아웃 정책: 변환 실패 시 원본 폴백, 변환 재시도 큐 분리
7) 성능 측정·AB 테스트 포인트
- RUM 지표: LCP, CLS(레이아웃 시프트), INP, 이미지 TTFB/전송량
- 분할 관측: 포맷별(AVIF/WebP/JPEG), 사이즈별, DPR 버킷별 p50/p90/p99
- AB 테스트: 품질 q ±5씩 조정, LCP와 사용자 만족도의 변곡점 찾기
- 오리진 QPS/egress: 에지 변환 도입 후 백엔드 부하·트래픽 절감률 확인
8) 보안·SEO·접근성까지 챙기기
- 서명 파라미터: 변환 API(w,h,q,fit)는 서명/허용 리스트로 보호(무차별 변환 방지).
- 지연 로딩: loading="lazy" 기본, Above-the-fold는 프리로드로 빠르게.
- 명시적 크기: width/height 또는 CSS aspect-ratio로 CLS 방지.
- ALT 텍스트: 접근성·SEO 모두 반영.
- 색상 관리: 사진은 sRGB, 디스플레이 P3는 필요 페이지에만 선별 제공.
9) 운영 체크리스트(바로 적용)
- 포맷 협상 온: AVIF → WebP → JPEG/PNG 폴백, Vary: Accept
- 사이즈 그리드: 8~10개 고정 폭, DPR/Width 버킷 정의
- 캐시 키 표준화: 경로+정규화 파라미터만, 트래킹 파라미터 제거
- 파일명 해시로 롱캐시, 무효화 최소화
- 에지 변환으로 오리진 보호, 레이트리밋·서명 파라미터 적용
- RUM+Synthetic 모니터링: LCP·TTFB·전송량·히트율 추적
- AB 테스트로 품질 q 최적점 찾기
- ALT/크기 명시/레이아웃 고정으로 SEO·접근성 향상
10) 자주 묻는 질문(FAQ)
Q. AVIF가 항상 WebP보다 좋은가요?
A. 대체로 더 작지만, 선명도·아티팩트는 콘텐츠에 따라 다릅니다. AB 테스트로 결정하세요.
Q. DPR에 맞춰 큰 이미지를 보내면 데이터가 늘지 않나요?
A. 그래서 리사이즈+품질 버킷을 함께 적용합니다. 고DPR에선 조금 더 큰 해상도 + 낮은 q가 체감상 가장 효율적일 때가 많습니다.
Q. 변환 비용이 걱정돼요.
A. 에지 캐시로 단 한 번만 인코딩하면 재사용됩니다. 상시 인기 사이즈는 사전 렌더로 미리 생성하세요.
마무리
CDN 이미지 최적화는 포맷 협상(AVIF/WebP), 리사이즈 정규화, DPR 버킷화를 한 세트로 운영할 때 가장 큰 효과가 납니다. 여기에 파일명 해시 + 강력한 캐시 정책 + 모니터링/AB 테스트까지 묶으면 LCP가 뚜렷하게 개선되고, 오리진 트래픽과 비용은 동시에 내려갑니다.
오늘 체크리스트대로 설정하고, 상위 트래픽 이미지 20종부터 단계적으로 적용해보세요. 체감이 바로 옵니다.
추천 키워드: CDN 이미지 최적화, AVIF, WebP,