[React] PWA 그것은 무엇인가?

2024. 3. 3. 15:33·React/실험실
반응형

PWA가 뭘까? 

프로그레시브 웹 앱 ( Progressive Web Apps )은 웹 앱과 네이티브 앱의 장점을
모두 제공하는 개발 철학이다. 

 

설명에서 나온 것처럼 진보된 형태의 웹 애플리케이션 개발이라고 할 수 있다. 

여기서 말하는 웹 앱의 장점과 네이티브 앱의 장점은 뭘까?

 

웹 앱

앱을 설치하는 것보다 웹사이트에 방문하는 것이 훨씬 빠르고 쉽다 또한 브라우저가 설치된 어떠한 장치에서도 

접근이 가능하며, 새로운 콘텐츠를 빠르게 배포할 수 있고, 링크로 쉽게 공유할 수 있다. 

 

특별하게 많이 사용하는게 아니라면 웹사이트의 애플리케이션은 설치하지 않는 것이 일반적일 수 있다. 

그래서 쇼핑몰 등에서 어플로 구매 시 더 많은 할인을 해주는 것 같다. 

쿠팡과 무신사를 이용할 때 어플 설치 유도

 

네이티브 앱

운영체제와 잘 통합되므로 부드러운 사용자 경험을 제공한다. 

 

네이티브 앱은 설치할 수 있으므로 오프라인에서 동작하고, 사용자는 홈 화면에서의 아이콘으로 브라우저를 사용하는

브라우저를 사용하는 것보다 쉽게 앱에 접근할 수 있다. 

 

PWA는 이러한 장점을 모두 통합해서 제공하려는 시도이다. 

 

PWA의 기능 

그렇다면 어떤 기능이 있어야지 PWA라고 할 수 있을까? 

  • 오프라인에서 동작
  • 설치가 가능 
  • 쉬운 동기화
  • 푸시 알림

위와 같은 기능을 만족하면 PWA라고 할 수 있다. 

그렇다면 우리가 개발하는 웹 앱이 PWA로 식별되기 위해서는 어떤 작업을 해야 할까? 

  • 검색 가능 : 콘텐츠를 검색 엔진을 통해 찾을 수 있어야 한다. 
  • 설치 가능 : 기기의 홈 화면이나 앱 런처에서 사용할 수 있어야 한다. 
  • 연결 가능 : URL을 통해 공유할 수 있어야 한다. 
  • 네트워크 독립적 : 오프라인 상태에서도 동작하거나 열악한 네트워크 연결에서도 동작해야 한다. 
  • 점진적 향상 : 최신 브라우저에서는 모든 기능이 가능하고 구형 브라우저에서는 기본적인 수준으로 사용할 수 있다. 
  • 재참여 가능 : 새 콘텐츠가 사용이 가능할 때마다 알림을 보낼 수 있어야 한다. 
  • 반응형 : 스크린과 브라우저를 탑재한 모든 장치에서 사용할 수 있어야 한다. 
  • 안전 : 사용자, 앱, 서버간의 연결은 민감한 데이터에 접근을 시도하는 제3자에게로부터 안전해야 한다. 

React에서 사용하기 

그렇다면 주인장이 사용하는 React에서 PWA를 사용하려면 어떻게 해야할까? 

놀랍게도 CRA에서는 템플릿을 제공하고 있다 ㄴㅇㄱ!!! 

 

npx create-react-app pwa --template pwa

설치하게 된다면 바로 PWA 세팅이 완료되게 된다. 

환경을 살펴보면 service-worker.js 파일이라던지, serviceWorkerRegistration.js 파일이 생성된다. 

 

해당 파일을 통해서 PWA 기능을 구현이 되는 것 같다. 

설치 후 실행하면 상단에 설치하라는 팝업을 볼 수 있고 설치를 누르면 다운로드가 가능해진다!! 

 

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'React > 실험실' 카테고리의 다른 글

[React] TDD, 클린 코드 with React 3기 - 1주차  (0) 2024.03.09
[React] Funnel 컴포넌트  (1) 2024.03.07
[React] Vite 환경 구성하기  (0) 2024.02.28
[React] Atomic Design Pattern + Headless UI Pattern  (1) 2024.01.07
[React] 아이폰 100vh 오류  (2) 2023.12.30
'React/실험실' 카테고리의 다른 글
  • [React] TDD, 클린 코드 with React 3기 - 1주차
  • [React] Funnel 컴포넌트
  • [React] Vite 환경 구성하기
  • [React] Atomic Design Pattern + Headless UI Pattern
잉여개발자
잉여개발자
풀스택 개발자를 목표로 잉여롭게 개발 공부도 하면서 다양한 취미 생활도 즐기고 있는 잉여 개발자입니다.
  • 잉여개발자
    잉여로운 개발일지
    잉여개발자
    • 분류 전체보기 (789)
      • 개발정보 (36)
      • 개발환경 (7)
      • 개발생활 (19)
      • React (141)
        • 이론 (23)
        • 기능 (12)
        • 실험실 (88)
        • 버그 (6)
        • 패스트캠퍼스 (9)
        • Npm (3)
      • React Native (28)
        • 공통 (6)
        • TypeScript (3)
        • JavaScript (18)
        • 버그 (1)
      • Next.js (30)
        • 이론 (13)
        • 실험실 (13)
        • 버그 (3)
      • Web (35)
      • 알고리즘 (202)
        • 풀이 힌트 (39)
      • JavaScript (47)
      • TypeScript (29)
        • 기초 (27)
        • 실험실 (2)
      • Node.js (13)
        • 이론 (0)
        • 기능 (3)
        • 실험실 (9)
        • 버그 (1)
      • 도커 (4)
      • CCNA (22)
        • 이론 (4)
        • 문제 (18)
      • 취미생활 (167)
        • 잉여로운 칵테일 (2)
        • 잉여의 식물키우기 (130)
        • 잉여로운 여행기 (11)
        • 잉여의 제2외국어 (21)
        • 잉여로운 책장 (2)
      • Java (1)
        • Java의 정석 (1)
      • 꿀팁 공유 (3)
  • 태그

    CCNA
    CSS
    프로그래머스
    Babel
    Node.js
    리얼클래스
    식물
    javascript
    자바스크립트
    덤프
    webpack
    redux
    react
    ChatGPT
    영어독학
    영어회화
    다이소
    네트워크
    리얼학습일기
    ReactNative
    리액트
    next.js
    알고리즘
    바질 키우기
    타입스크립트
    typescript
    타일러영어
    Docker
    바질
    네이버 부스트캠프
  • hELLO· Designed By정상우.v4.10.1
잉여개발자
[React] PWA 그것은 무엇인가?
상단으로

티스토리툴바