아카이브사이트맵
© 2026 Rayon. All rights reserved.
DevDay
아티클랭킹스페이스채용
뱅크샐러드 favicon뱅크샐러드

Safari 폰트 Preload 문제, Edge Function으로 해결!

by DD
2022-12-13
3년 전
조회수 8

Safari 브라우저에서 Preload된 폰트가 캐싱되지 않는 문제 발생

CORS 설정과 Vary Header 문제로 인해 캐시 미스 발생

CloudFront Function을 사용하여 Safari의 폰트 로딩 문제 해결

Safari Preload 동작 원리 분석

Safari는 CORS 요청에 대한 Preload 동작 방식에 차이가 있다. 구체적으로, @font-face에서 교차 도메인 폰트 요청 시 CORS를 사용하지 않는다. 따라서, preload link를 통해 캐싱된 폰트를 재사용하지 못하는 문제가 발생한다. 결과적으로, 폰트 로딩 속도가 저하되는 원인이 된다.

CORS와 Vary Header의 함정

브라우저 캐싱은 Vary Header를 기반으로 동작하며, CORS 설정에 따라 캐시 동작이 달라진다. Origin Header가 다르면 캐시 미스가 발생하며, Safari는 preload 요청에 Origin을 포함하지 않는다. 따라서, CloudFront Function을 통해 Origin Header를 추가하여 문제를 해결한다.

Edge Function을 활용한 해결 전략

Edge Function을 사용하여 Safari의 폰트 로딩 문제를 해결한다. 구체적으로, CloudFront Function에서 Origin Header를 추가하여 CORS 문제를 해결한다. 또한, Vary Header에서 Origin을 제거하여 캐싱 효율을 높인다. 결과적으로, 웹 폰트 로딩 속도 개선 및 사용자 경험 향상을 달성한다.

지연 시간 없이 웹폰트 서빙하기 - Feat. Safari & Edge functions
고급
아키텍처
Safari
Edge functions
CloudFront
Terraform
JavaScript
Frontend
DevOps
Backend
뱅크샐러드 favicon뱅크샐러드
고급
아키텍처
Safari
Edge functions
CloudFront
Terraform
JavaScript
Frontend
DevOps
Backend

관련 추천 글

웹폰트 최적화로 CDN 비용 90% 절감!

카카오스타일 로고

40년 기술 변천사, 추억 속으로

랍스타즈 로고

브라우저, 특정 사이트에 '특별 대우'?

레딧 로고
원문 읽기
원문 읽기

관련 추천 글

웹폰트 최적화로 CDN 비용 90% 절감!

카카오스타일 로고

40년 기술 변천사, 추억 속으로

랍스타즈 로고

브라우저, 특정 사이트에 '특별 대우'?

레딧 로고

Chrome만 테스트하면 15%의 사용자를 놓친다!

데브투 로고

Safari MCP 서버, 개발자 자동화의 새 지평을 열다

해커뉴스 로고

자바스크립트(JavaScript)를 바꾼 숨겨진 영웅, 제레미 애쉬케너스(Jeremy Ashkenas)를 만나보세요!

파이어쉽 로고

댓글 0

첫 번째 댓글을 남겨보세요!