// pages/_app.js
import { useEffect } from 'react';
function App({ Component, pageProps }) {
useEffect(() => {
if ('serviceWorker' in navigator) {
window.addEventListener('load', () => {
navigator.serviceWorker.register('/service-worker.js')
.then(registration => {
console.log('ServiceWorker registration successful with scope: ', registration.scope);
})
.catch(error => {
console.log('ServiceWorker registration failed: ', error);
});
});
}
}, []);
return <Component {...pageProps} />;
}
export default App;
모바일 앱과 웹 앱의 장점을 결합하여 사용자 경험을 향상시키는 웹 애플리케이션 형태
PWA는 서비스 워커를 사용하여 오프라인 상태에서도 동작할 수 있다. 사용자가 인터넷에 연결되어 있지 않더라도 앱에 접속하여 콘텐츠를 탐색하고 작업할 수 있다.
사용자가 웹 앱을 홈 화면에 추가할 수 있으며, 이렇게 추가된 PWA 아이콘을 클릭하여 앱을 쉽게 시작할 수 있다.
PWA는 네이티브 앱과 유사한 사용자 경험을 제공한다. 전체 화면 모드, 푸시 알림, 디바이스 기능 접근 등의 기능을 활용하여 사용자에게 편리하고 직관적인 앱 경험을 제공한다.
PWA는 캐싱과 prefetch를 통해 로딩 속도를 향상시킨다. 사용자가 웹 앱을 방문할 때 필요한 자원을 미리 캐싱하고, 콘텐츠를 더 빨리 로드하여 사용자 경험을 개선한다.
HTTPS를 사용하여 통신하고, 서비스 워커를 통해 캐싱된 콘텐츠를 안전하게 제공함으로써 데이터 보안과 개인정보 보호를 강화한다.
브라우저와 웹 애플리케이션 사이 중간에 위치하여 다양한 기능을 수행하는 백그라운드 스크립트로 주로 웹 애플리케이션의 오프라인 지원, 푸시 알림, 백그라운드 동기화 및 네트워크 요청 중간 처리 등의 기능을 수행한다.
서비스 워커는 브라우저의 HTTP 요청을 가로채고, 네트워크 요청을 캐시에서 가져오거나 온라인 상태에서 요청을 보낼 수 있다. 캐시된 리소스를 사용하여 웹 애플리케이션의 성능을 향상시킬 수 있다.
서비스 워커는 웹 애플리케이션이 오프라인에서도 동작할 수 있도록 한다. 사용자가 오프라인 상태일 때도 캐시된 콘텐츠를 표시하여 사용성을 유지한다.
서비스 워커는 브라우저로부터 푸시 알림을 받고 사용자에게 알림을 표시할 수 있다. 이를 통해 백그라운드에서도 사용자에게 중요한 정보를 전달할 수 있다.
서비스 워커는 백그라운드에서 주기적으로 실행되며 데이터를 동기화하거나 백그라운드 작업을 수행할 수 있다. 이를 통해 애플리케이션이 온라인 상태일 때 백그라운드에서 데이터를 업데이트하거나 작업을 처리할 수 있다.
파이어베이스에서만 등록하면 되는건지? 아니면 웹 자체에도 세팅이 필요한건지?
파이어베이스의 세팅값으로 서비스 워커 파일을 생성 후, 웹 자체에서도 파일 추가 및 등록이 필요하다.
백그라운드 스크립트