[GDG DEVFEST] 리액트와 파이썬장고로 만드는 PWA


생산성이 좋고 복잡한 쿼리 계산에 능한 장고

복잡한 프런트 & 상태관리 리액트


모바일을 위해

Progressive Web App

웹의 장점과 앱의 장점을 결합한 웹앱


PWA

프로그레시브

반응형

설치 가능 & 푸시

최신 상태


비포 : 주소를 검색 -> 리액트로 만들어진 2MB 로딩

애프터 : 아이콘 클릭 -> 캐싱된 페이지 로딩


캐시는 누가? 서비스 워커

서버에 main.js요청 - 서비스워커가 가로챔. 캐시에 있으면 꺼내 보여줌.

브라우저와 서버 사이의 미들웨어.


캐시 퍼스트 스트라테지

먼저 캐시된거 가지고 오고.

최신 자원 뒤늦게 받아와 캐시 저장.


sw-precache

새로운 자원이 나왔을 때 최신 상태로 캐싱가능


브라우저 기본 캐시 VS 서비스 워커

첫방문 당연히 캐시 X

cleared 캐시가 백신 또는 비우기로 지워짐 약 19%의 크롬유저가 1주일에 한번 이상

purged 캐시 공간이 작음

expired 1일 미만인 경우가 많음

reved


manifest.json파일을 작성하면 자동으로 홈화면에 추가 팝업이 뜬다.


어디서나 다 쓸 수 있나요?

애플은 안되요. 그러나 개발중이라고 합니다.


웹 푸시

재고 상태 확인

비포 : 눈으로

애프터 : 푸시로


Firebase Cloud Messaging

GCM의 새 버전.


포그라운드 푸시 - 보고있는 중

백그라운드 푸시 - 보고있지 않은 중

각각 따로 구현해주어야 함.


실 서비스에 PWA를 적용한 후기

CRA가 PWA를 지원해줘서 쉽다고 생각함.

캐시때문에 최신자원이 보이지 않는 경우. - 새 자원이 감지되면 강제 새로고침

sw-precache에서 main.js만 빼고 됨. - 2MB가 넘으면 안됨.

왜 이 자원은 캐시가 안되나? 서비스워커는 url을 통해 자원을 캐시한다.


PWA를 사용할 명확한 이유가 있나요?

다른 방안으로 해결할 수 있나요

서비스워커 생명주기를 공부해보세요

토이프로젝트에 선 적용




© 2017. by isme2n

Powered by aiden