Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- react
- 커스텀
- Chart.js
- 타입좁히기
- reactjs
- 레이아웃쪼개기
- 누구나 자료구조와 알고리즘
- CSS
- 반복줄이기
- TSDoc
- 리액트
- React Native
- javascript
- const 단언문
- NonNullable
- 공통컴포넌트
- JS console
- 제네릭
- 개발콘텐츠
- 티스토리꾸미기
- 타입스크립트
- React.js
- 2022
- returnType
- vue.js
- 성능최적화
- utilty type
- typescript
- click and drag
- 폰트적용하기
Archives
- Today
- Total
몽땅뚝딱 개발자
웹 워커 vs. 서비스 워커 본문
웹 워커(Web Worker)
개념
브라우저에서 UI와 분리된 백그라운드 스레드로 무거운 계산을 맡겨서 UI가 멈추지 않게 한다.
CPU를 많이 사용하는 계산, 이미지 처리, 암호화 등을 하고 싶을 때 사용한다.
DOM에는 접근 불가하다.
💡 사용 예시: 이미지 필터 처리, 대규모 정렬 등
📄 Web Worker가 없을 때
// 이 코드는 브라우저를 몇 초간 멈추게 한다.
const bigArray = [...Array(1e8)].map(() => Math.random());
const sorted = bigArray.sort();
📄 Web Worker 사용
// main.js
const worker = new Worker('sortWorker.js');
worker.postMessage(bigArray); // 데이터를 워커에게 전달
worker.onmessage = (e) => {
console.log('정렬 완료', e.data);
};
// sortWorker.js
onmessage = (e) => {
const sorted = e.data.sort();
postMessage(sorted); // 결과 전달
};
서비스 워커(Service Worker)
개념
브라우저와 네트워크 사이에 낀 프록시이다. 오프라인 캐싱, 푸시 알림 등에 사용된다. (PWC의 핵심기술)
사용자가 오프라인이거나, 리소스를 캐시해서 빠르게 응답하거나, 푸시 알림을 보내고 싶을 때 사용한다.
💡 사용 예시: 오프라인 상태에서 페이지 열기 가능
📄 Service Worker 사용
// service-worker.js
self.addEventListener('install', (event) => {
event.waitUntil(
caches.open('v1').then((cache) =>
cache.addAll([
'/',
'/index.html',
'/styles.css',
'/app.js',
]),
),
);
});
self.addEventListener('fetch', (event) => {
event.respondWith(
caches.match(event.request).then((cachedResponse) => {
return cachedResponse || fetch(event.request);
}),
);
});
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/service-worker.js');
}
'Development > 단어들' 카테고리의 다른 글
LCP, CLS, INP란? (0) | 2025.05.14 |
---|---|
웹 보안 강화하기 / XSS 실습환경 (0) | 2025.05.13 |
단어들: LLM, DPU, Agentic AI, SLM, RAG (0) | 2025.05.13 |
Polyfill (0) | 2025.05.02 |
[Framer] CMS code override로 페이지네이션 만들기 (0) | 2024.08.04 |
Comments