Service Workers란?
Service Worker는 웹 응용 프로그램, 브라우저 그리고 네트워크 사이의 프록시 서버 역할을 담당한다.
서비스 워커는 출처와 경로에 대해 등록하는 이벤트 기반 worker로서 JavaScript 파일의 형태를 띄고 있다.
서비스 워커는 워커 맥락에서 실행되므로 DOM에 접근할 수 없다.
또한, 서비스 워크는 보안 상의 이유로 HTTPS에서만 동작한다. (네트워크 요청을 수정할 수 있다는 점에서 중간자 공격에 매우 취약하다.)
이러한 서비스 워커를 이용한다면 웹 알람 같은 기능을 구현할 수 있다.
Alerm 구현

이러한 Local Storage를 사용해서 Alerm 기능을 구현할 수 있다.
JavaScript에서 웹 알람을 구현하기 위해서는 Notification이라는 객체를 이용해야 한다.
let btn = document.getElementById("noti_btn");
btn.addEventListener("click", () => {
let title = "test";
let options = {
body: "body",
icon: "common.jpeg",
image: "common.jpeg",
}
const notification = new Notification(title, options);
});
위 코드는 버튼을 달고, 버튼을 클릭하면 알람을 객체를 생성하는 기능을 버튼에 추가하는 코드이다.
브라우저의 알람 기능은 사용하는 유저가 각자 따로 허가를 해야 사용할 수 있다.
// 알림 권한 요청(권한 : default(요청 전), granted(허용), denied(거부))
if (Notification.permission === 'granted') {
console.log("이미 허용함")
} else {
Notification.requestPermission().then(permission => {
console.log(permission);
})
}
위 코드는 유저가 페이지에 들어오면 알림을 권한을 브라우저가 요청하고, 유저가 선택할 수 있도록 하는 코드이다.
// 서비스 워커 등록
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('sw.js')
.then((registration) => {
console.log('Service Worker registered with scope:', registration.scope);
})
.catch((error) => {
console.error('Service Worker registration failed:', error);
});
}
위 코드는 브라우저에서 제공하는 서비스 워커에 내 알림 코드를 등록하는 코드이다.
따라서 알림은 서버에서 호출이 오면 자동으로 유저에게 알림 객체를 띄워준다.
참고 자료
https://developer.mozilla.org/ko/docs/Web/API/Service_Worker_API
Service Worker API - Web API | MDN
서비스 워커는 웹 응용 프로그램, 브라우저, 그리고 (사용 가능한 경우) 네트워크 사이의 프록시 서버 역할을 합니다. 서비스 워커의 개발 의도는 여러가지가 있지만, 그 중에서도 효과적인 오프
developer.mozilla.org
혹시라도 틀린 내용이 있다면 댓글로 알려주시면 감사하겠습니다!!
'JavaScript' 카테고리의 다른 글
| [JavaScript] Web(Browser) Storage (0) | 2025.07.10 |
|---|---|
| [JavaScript] WYSIWYG (6) | 2025.07.10 |
| [JavaScript] WebSocket (0) | 2025.07.03 |
| [JavaScript] Async / Await (2) | 2025.06.30 |
| [JavaScript] AJAX, Fetch API, Promise, Axios (0) | 2025.06.29 |



















