Service Worker 전략
캐시 우선, 네트워크 우선, 오래된 캐시를 제공하면서 갱신하는 전략을 리소스 유형별로 선택합니다.
Service Worker 전략은(는) CoddyKit의 무료 Vue Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Vue Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Vue Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
캐싱 전략 개요
서비스 worker는 네트워크 요청을 가로채 캐시, 네트워크 또는 둘 다에서 제공할지 결정합니다. Workbox에는 각각 다른 종류의 리소스에 적합한 네 가지 핵심 전략이 있습니다.
CacheFirst
CacheFirst는 캐시에서 제공하고 캐시가 없을 때만 네트워크에 접근합니다. 글꼴이나 이미지처럼 거의 변경되지 않고 콘텐츠 해시가 적용된 자산에 적합합니다.
// serve cached, fall back to network on missNetworkFirst
NetworkFirst는 먼저 네트워크를 시도하고 오프라인이거나 시간이 초과되면 캐시로 대체합니다. 최신 상태가 중요하지만 오프라인 접근도 필요한 API 응답에 적합합니다.
// try network, fall back to cache when offlineStaleWhileRevalidate
StaleWhileRevalidate는 속도를 위해 캐시된 사본을 즉시 반환하면서 백그라운드에서 최신 사본을 가져와 캐시를 업데이트합니다. JS 번들과 CSS에 적합합니다.
// return cache now, update cache in backgroundNetworkOnly와 CacheOnly
두 극단적인 전략입니다. NetworkOnly는 항상 가져오고 캐싱하지 않으며, CacheOnly는 사전 캐싱된 콘텐츠만 제공합니다. 캐시할 수 없는 POST 요청이나 엄격하게 사전 캐싱된 자산에 사용합니다.
runtimeCaching 배열
Workbox 설정에서 runtimeCaching은 규칙 배열입니다. 각 규칙은 요청 URL과 일치하고 전략과 캐시 이름을 지정합니다.
VitePWA({
workbox: {
runtimeCaching: [ /* rules */ ]
}
});urlPattern 규칙
각 규칙에는 urlPattern(정규식 또는 함수), handler(전략 이름), 캐시 이름과 같은 options가 있습니다.
{
urlPattern: /\/api\//,
handler: "NetworkFirst",
options: { cacheName: "api-cache" }
}정적 자산 CacheFirst 캐싱하기
이미지와 글꼴에 일치하는 규칙을 만들고 CacheFirst로 제공합니다. 파일이 변경될 때 콘텐츠 해시가 적용된 URL도 변경되기 때문입니다.
{
urlPattern: /\.(?:png|jpg|svg|woff2)$/,
handler: "CacheFirst",
options: { cacheName: "static-assets" }
}JS 번들 StaleWhileRevalidate 캐싱하기
스크립트와 스타일 번들을 캐시에서 즉시 제공하면서 백그라운드에서 최신 상태로 갱신합니다.
{
urlPattern: /\.(?:js|css)$/,
handler: "StaleWhileRevalidate",
options: { cacheName: "assets" }
}만료 플러그인
제한이 없으면 캐시가 계속 커집니다. expiration 옵션은 항목 수와 최대 보존 기간을 제한하고 가장 오래된 항목부터 제거합니다.
options: {
cacheName: "api-cache",
expiration: {
maxEntries: 50,
maxAgeSeconds: 60 * 60 * 24
}
}불투명 응답 캐싱하기
교차 출처 API 응답에는 허용된 상태 코드와 함께 cacheableResponse를 추가하여 성공한 응답만 저장하는 경우가 많습니다.
options: {
cacheableResponse: { statuses: [0, 200] }
}확인 문제
최신 상태를 유지하면서 오프라인에서도 사용할 수 있어야 하는 API 응답에는 어떤 전략이 가장 적합합니까?
복습
Workbox 전략은 리소스 유형에 대응합니다. 정적 자산에는 CacheFirst, API 응답에는 NetworkFirst, JS/CSS 번들에는 StaleWhileRevalidate를 사용합니다. urlPattern, handler, 캐시 크기를 제한하는 expiration 플러그인과 같은 options를 사용하여 runtimeCaching 배열에 전략을 정의합니다.
자주 묻는 질문
“Service Worker 전략” 강의는 무료인가요?
네 — “Service Worker 전략” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Vue Academy 강의 전체를 잠금 해제할 수 있습니다. Vue Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“Service Worker 전략”에서 뭘 배우나요?
캐시 우선, 네트워크 우선, 오래된 캐시를 제공하면서 갱신하는 전략을 리소스 유형별로 선택합니다. 브라우저에서 직접 실행하는 실습 코드로 Vue Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Vue Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Vue Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“Service Worker 전략” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Vue Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Vue Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- vite-plugin-pwa 설정
- Service Worker 전략
- 오프라인 지원과 백그라운드 동기화
- Vue PWA의 푸시 알림