이전 글에서 Vue To FCM을 하던 도중 서비스 워커에 대해서 궁금증이 생겨 공부해봤습니다.
서비스 워커(Service Worker)는 웹 애플리케이션과 네트워크 사이에서 동작하는 자바스크립트 기반의 백그라운드 스크립트입니다.
브라우저가 백그라운드에서 실행하며, 웹 페이지가 열려 있지 않아도 특정 작업(예: 푸시 알림, 캐싱, 백그라운드 동기화 등)을 수행할 수 있습니다.
서비스 워커는 브라우저와 서버 사이의 중간 계층처럼 동작합니다.
HTTP 요청을 가로채 캐시된 데이터를 반환하거나, 네트워크 요청을 조작할 수도 있습니다.
간단히 말해:
“네트워크 요청을 가로채고, 캐시를 활용하며, 오프라인 환경에서도 작동하게 하는 브라우저 내부의 작은 서버”
| 기능 | 설명 |
|---|---|
| 오프라인 지원 | 네트워크가 없어도 캐시된 데이터를 보여줍니다. |
| 푸시 알림 (Push Notification) | FCM 등과 연동해 백그라운드 푸시 알림을 수신합니다. |
| 백그라운드 동기화 | 네트워크가 복구되었을 때 자동으로 데이터를 동기화합니다. |
| 네트워크 요청 제어 | fetch 이벤트를 통해 요청과 응답을 가로채 조작할 수 있습니다. |
service-worker.js)을 등록fetch, push 등 이벤트를 대기하며 동작서비스 워커는 OSI 7계층 중 애플리케이션 계층(7계층)에 해당합니다.
이유는 다음과 같습니다:
✅ 정리:
Service Worker = 브라우저 애플리케이션 계층(7계층)에서 동작하는 백그라운드 엔진
서비스 워커는 오프라인, 캐시, 푸시 알림 등 웹의 확장 기능을 담당하는 7계층 애플리케이션 엔진이다.