>  기사  >  웹 프론트엔드  >  프로그레시브 웹 앱(PWA)

프로그레시브 웹 앱(PWA)

WBOY
WBOY원래의
2024-08-08 08:26:111156검색

Progressive Web Apps (PWAs)

프로그레시브 웹 앱(PWA) 구축

이 게시물에서는 네이티브 앱과 같은 경험을 제공하는 웹 애플리케이션 구축에 대한 현대적인 접근 방식인 프로그레시브 웹 앱(PWA)을 살펴보겠습니다. PWA의 기본 사항과 장점, PWA를 처음부터 만드는 단계를 다루겠습니다.

1. 프로그레시브 웹 앱(PWA) 소개

프로그레시브 웹 앱(PWA)이란 무엇인가요?

프로그레시브 웹 앱은 HTML, CSS, JavaScript 등 일반적인 웹 기술을 사용하여 구축된 웹을 통해 제공되는 일종의 애플리케이션 소프트웨어입니다. PWA는 표준 호환 브라우저를 사용하는 모든 플랫폼에서 작동하도록 고안되었습니다.

PWA의 주요 기능:

  • 반응형: 모든 기기 및 화면 크기에서 작동합니다.
  • 오프라인 기능: 서비스 워커를 사용하여 오프라인 또는 네트워크 상태가 좋지 않은 경우에도 작동합니다.
  • 앱과 같은 경험: 홈 화면 설치 등의 기능으로 앱과 같은 사용자 경험을 제공합니다.
  • 보안: 스누핑을 방지하고 콘텐츠 무결성을 보장하기 위해 HTTPS를 통해 제공됩니다.
  • 재참여 가능: 푸시 알림을 활성화하여 사용자의 참여를 유지합니다.

2. PWA의 장점

PWA를 구축해야 하는 이유

  • 향상된 성능: 로딩 시간이 빨라지고 상호 작용이 원활해졌습니다.
  • 향상된 사용자 참여: 푸시 알림 및 홈 화면 액세스.
  • 개발 비용 절감: 웹과 모바일 환경 모두를 위한 단일 코드베이스.
  • SEO의 이점: PWA는 검색 엔진에서 검색할 수 있습니다.

3. PWA 설정

전제 조건:

  • HTML, CSS, JavaScript에 대한 기본 지식
  • Node.js 및 npm/yarn이 설치되었습니다.

간단한 PWA 만들기:

  1. 프로젝트 설정:

    mkdir my-pwa
    cd my-pwa
    npm init -y
    npm install express
    
  2. 프로젝트 구조:

    my-pwa/
    ├── public/
    │   ├── index.html
    │   ├── styles.css
    │   └── app.js
    ├── server.js
    ├── package.json
    └── manifest.json
    

4. 매니페스트 파일 생성

manifest.json:

매니페스트 파일은 PWA에 대한 메타데이터를 제공하며 홈 화면에 앱을 설치하는 데 필요합니다.

// manifest.json
{
  "name": "My PWA",
  "short_name": "PWA",
  "start_url": "/",
  "display": "standalone",
  "background_color": "#ffffff",
  "theme_color": "#007bff",
  "icons": [
    {
      "src": "icon-192x192.png",
      "sizes": "192x192",
      "type": "image/png"
    },
    {
      "src": "icon-512x512.png",
      "sizes": "512x512",
      "type": "image/png"
    }
  ]
}

5. HTML, CSS, JavaScript 파일 생성

index.html:

8b05045a5be5764f313ed5b9168a17e6
49099650ebdc5f3125501fa170048923
93f0f5c25f18dab9d176bd4f6de5d30e
  1fc2df4564f5324148703df3b6ed50c1
  4f2fb0231f24e8aef524fc9bf9b9874f
  b2386ffb911b14667cb8f0f91ea547a7My PWA6e916e0f7d1e588d4f442bf645aedb2f
  810801fb5d57e2948359b7eef57cb689
  02ccac29734b382144275b53674934d7
9c3bca370b5104690d9ef395f2c5f8d1
6c04bd5ca3fcae76e30b72ad730ca86d
  4a249f0d628e2318394fd9b75b4636b1Welcome to My Progressive Web App!473f0a7621bec819994bb5020d29372a
  1e1ccda7e68c35a670bf47149c0f0c612cacc6d41bbb37262a98f745aa00fbf0
36cc49f0c466276486e50c850b7e4956
73a6ac4ed44ffec12cee46588e518a5e

styles.css:

/* styles.css */
body {
  font-family: Arial, sans-serif;
  text-align: center;
  background-color: #f0f0f0;
  color: #333;
}

app.js:

// app.js
if ('serviceWorker' in navigator) {
  window.addEventListener('load', () => {
    navigator.serviceWorker.register('/service-worker.js')
      .then(registration => {
        console.log('ServiceWorker registered: ', registration);
      })
      .catch(error => {
        console.log('ServiceWorker registration failed: ', error);
      });
  });
}

6. 서비스 워커 설정

서비스 워커는 웹페이지와 별도로 브라우저가 백그라운드에서 실행하는 스크립트입니다. 네트워크 요청을 가로채고 리소스를 캐시하여 성능과 오프라인 기능을 향상시킬 수 있습니다.

service-worker.js:

// service-worker.js
const CACHE_NAME = 'my-pwa-cache-v1';
const urlsToCache = [
  '/',
  '/styles.css',
  '/app.js',
  '/manifest.json',
  '/icon-192x192.png',
  '/icon-512x512.png'
];

self.addEventListener('install', event => {
  event.waitUntil(
    caches.open(CACHE_NAME)
      .then(cache => {
        return cache.addAll(urlsToCache);
      })
  );
});

self.addEventListener('fetch', event => {
  event.respondWith(
    caches.match(event.request)
      .then(response => {
        return response || fetch(event.request);
      })
  );
});

7. 서버 설정

server.js:

const express = require('express');
const path = require('path');

const app = express();
const PORT = process.env.PORT || 3000;

app.use(express.static(path.join(__dirname, 'public')));

app.listen(PORT, () => {
  console.log(`Server is running on http://localhost:${PORT}`);
});

서버 실행:

node server.js

8. PWA 테스트

  1. 앱 열기:

    • 브라우저에서 http://localhost:3000으로 이동하세요.
  2. 서비스 종사자 등록:

    • 개발자 도구를 엽니다(F12 또는 마우스 오른쪽 버튼을 클릭하고 '검사' 선택).
    • '신청' 탭으로 이동하세요.
    • '서비스 워커' 아래에 등록된 서비스 워커가 표시됩니다.
  3. 홈 화면에 추가:

    • 모바일 기기의 경우 브라우저에서 PWA를 엽니다.
    • '홈 화면에 추가' 메시지가 표시됩니다.

9. PWA 모범 사례

모범 사례:

  • HTTPS 사용: PWA에는 보안 컨텍스트가 필요합니다.
  • 이미지 최적화: 반응형 이미지와 지연 로딩을 사용하세요.
  • 네트워크 요청 최소화: 리소스를 효과적으로 캐시합니다.
  • 오프라인 기능 보장: 의미 있는 오프라인 경험을 제공하세요.

10. 결론

다루어진 핵심 사항 요약:

  • PWA 소개 및 이점
  • 매니페스트, 서비스 워커, 캐싱을 갖춘 간단한 PWA 설정
  • 강력한 PWA 구축을 위한 모범 사례.

11. 추가 자료

  • PWA 문서
  • 고급 PWA 주제에 대한 튜토리얼 및 가이드
  • 커뮤니티 포럼 및 지원

위 내용은 프로그레시브 웹 앱(PWA)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.