SlideShare a Scribd company logo
1 of 36
Download to read offline
The Future of Web ‒ Progressive Web App
1
목차
1. PWA 소개
2. PWA 배경
3. PWA 특징
4. PWA 사례
Ali Express
Carnival Cruise Line
Solution Portal
5. PWA 기술
Wep App Manifest (Icon, Banner)
Service Worker (Cache, Web Push)
6. 참고 자료
2
프로필
Captain Pangyo
Open Source Contributor
Google Web Fundamentals (The Fundamental Knowledge for Web)
Google HTML5 Rocks (Top Notch Resources for Web Developer)
Google Developer Group ‒ Web Tech 커뮤니티 리더
3
PWA 소개
"Progressive Web Apps are experiences that combine the best of the web and the
best of apps" ‒ 최고의 모바일 앱과 최고의 웹 앱을 결합한 경험
4
Progressive Web Apps 는 무엇인가?
진보한 웹 앱
최신 웹 기술들로 웹 앱에서도 모바일 앱과 같은 사용자 경험을 느낄 수 있는 웹앱
빌드 X, 배포 X, 설치 O, 오프라인 O, 알람 O ...
최적화된 웹 성능에 모바일 Native 기능을 결합한 최신 웹 앱
5
PWA 등장 배경
Mobile 기기 확산으로 Mobile 사용자 증가 : PC ‒> Mobile 브라우저
양분화된 어플리케이션 시장과 개발자의 고민 : Web, Mobile, Hybrid 앱
Hybrid 앱의 단점 : Native UI 의 성능을 따라가기가 어려움
번거로운 Mobile 앱 개발 주기 : 앱 개발, 빌드, 배포, 검색, 다운로드, 설치
Offline Web App 의 필요성 : 느린 인터넷의 보급으로 Mobile Web 의 사용성 저하
6
PWA 기술 특징
Responsive : PC, Mobile, Tablet 에 관계없이 해당 기기에 최적화된 UI
7
Connectivity : 저속의 네트워크 환경, 오프라인 환경에서도 사용 가능
8
App‒like : Mobile App 과 동일한 실행방식 (icon) 과 사용자 인터랙션 (UX) 을 제공
9
Discoverable : URL 로 사이트 접근 후 원클릭 설치 가능 (banner)
10
Engageable : Push 알람으로 사용자의 재방문 유도가 용이
11
Safe : HTTPS 통신으로 기밀 정보의 유지가 가능
12
PWA 적용 사례
Alibaba
전세계 최대 규모의 B2B 전자상거래 시스템
Add‒Home Screen 기능으로 모바일 Active Users 44% 증가
Case Study 자료 
13
Carnival Cruise Line
세계 10대 크루저 여행사
Web & Mobile Push 알람을 이용하여 결제 전환율 48% 증가
Case Study 자료 
14
Solution Portal
포스코 ICT 기반 솔루션 (Glue, Glue Mobile, Posbee) 기술질의 게시판
WebPush 알람을 이용한 기술질의 응답속도 3배 증가
15
기존 Solution Portal 의 문제점
Mobile 기기 미지원 : Mobile 게시글 확인 및 솔루션 홍보에 부적절
실시간 게시글 확인 미지원 : 고객의 게시글 여부를 Manual 하게 일일이 확인해야함
16
PWA 를 적용한 Solution Portal
Responsive : 반응형 웹 디자인을 적용한 Mobile 기기 지원
17
PWA 를 적용한 Solution Portal
App‒like : 모바일 Icon 을 이용한 사이트 접속 및 모바일 UX 제공
18
PWA 를 적용한 Solution Portal
Engageable : Web & Mobile Push 알람을 이용한 실시간 게시글 알림
19
PWA 주요 기술
Wep App Manifest (Icon & Install Banner)
앱 아이콘, 화면 런쳐 방식 및 배경색, 시작 페이지 등을 설정할 수 있는 JSON 파일
20
{ 
  "short_name": "SolPot_dev", 
  "name": "Solution Portal", 
  "icons": [ 
    { 
      "src": "dist/images/icons/icon‐32x32.png", 
      "type": "image/png", 
      "sizes": "32x32" 
    }, 
    ... 
  ], 
  "background_color": "#1E88E5", 
  "display": "standalone", 
  "start_url": "./" 
} 
21
Web App Manifest 파일에서 지원하는 기능들
홈 화면에 Web App Icon 추가
사이트 방문시 하단에 설치 배너 표시 (5분 간격 2번 이상 방문시 표시됨)
런쳐화면 방향, 크기, 배경색 설정
22
인스톨 배너를 이용한 앱 설치 및 실행
데모
23
크롬 개발자 콘솔의 Application 탭에서 디버깅 및 조작 가능
24
Service Worker (Offline, Cache, Web Push)
오프라인 서비스, 푸쉬 알람 등의 모바일 기능을 웹에서 가능하게 하는 코어 기술
브라우저의 백그라운드에서 돌아가는 script 파일, 브라우저와 네트워크의 미들웨어
25
웹 페이지에서 네트워크 요청 발생시 해당 요청을 가로챔
캐쉬가 있을 경우 즉시 로딩하여 속도가 매우 빠름
26
웹 페이지와는 별개의 라이프 싸이클을 가진다.
27
Service Worker 코드
서비스 워커 등록 :  navigator.serviceWorker.register() 
if ('serviceWorker' in navigator) { 
  navigator.serviceWorker.register('/sw.js').then(function(registration) { 
    // 등록 성공
    console.log('ServiceWorker registration successful with scope: ', registration.scope);
  }).catch(function(err) { 
    // 등록 실패
    console.log('ServiceWorker registration failed: ', err); 
  }); 
} 
28
서비스 워커 설치 :  self.addEventListener('install', function(event) {}); 
var CACHE_NAME = "my‐first‐cache"; 
var cacheFiles = [ 
  "/", 
  "/pwa.png" 
]; 
self.addEventListener('install', function(event) { 
  event.waitUntil( 
    caches.open(CACHE_NAME) 
      .then(function(cache) { 
        console.log('Opened cache'); 
        return cache.addAll(cacheFiles); 
      }) 
  ); 
  console.log("서비스 워커 설치 완료"); 
}); 
29
서비스 워커 디버깅
Chrome Developer Tools 의 Application 탭
실행중인 서비스 워커 확인은  chrome://inspect/#service‐workers 
30
서비스 워커를 이용한 Push 알람 시연
POSCO ICT 솔루션 포탈
31
서비스 워커 개발 환경
HTTPS 통신 + 최신 모던 브라우저
32
지원 브라우저
Google Chrome
Mozilla Firefox
Microsoft Edge
Opera
Samsung Mobile Browser
Safari (지원 예정)
33
마무리
아직은 디버깅이 어려운 서비스 워커
기 개발된 서비스에 적용하기에는 제약사항이 존재
HTTP 와 HTTPS 의 어마어마한 차이
일부 모바일 앱을 대체할 수 있는 사용자 경험
현재 보다는 앞으로가 더 기대되는 PWA
34
참고 자료
Google Web Fundamentals
Google HTML5 Rocks
Service Worker 지원 브라우저
지디넷 ‒ 오프라인 웹이 온다
35
감사합니다.
36

More Related Content

What's hot

Mobile Performance Testing - Best Practices
Mobile Performance Testing - Best PracticesMobile Performance Testing - Best Practices
Mobile Performance Testing - Best PracticesEran Kinsbrunner
 
API Management within a Microservice Architecture
API Management within a Microservice ArchitectureAPI Management within a Microservice Architecture
API Management within a Microservice ArchitectureWSO2
 
Mobile App Testing Strategy by RapidValue Solutions
Mobile App Testing Strategy by RapidValue SolutionsMobile App Testing Strategy by RapidValue Solutions
Mobile App Testing Strategy by RapidValue SolutionsRapidValue
 
Performance testing of mobile apps
Performance testing of mobile appsPerformance testing of mobile apps
Performance testing of mobile appsvodQA
 
Postman Webinar: Postman 101
Postman Webinar: Postman 101Postman Webinar: Postman 101
Postman Webinar: Postman 101Nikita Sharma
 
Dagger Hilt Pros and Cons - Android Summit 2020
Dagger Hilt Pros and Cons - Android Summit 2020Dagger Hilt Pros and Cons - Android Summit 2020
Dagger Hilt Pros and Cons - Android Summit 2020Vasiliy Zukanov
 
Introduction to appDynamics
Introduction to appDynamics Introduction to appDynamics
Introduction to appDynamics Siddhanta Rath
 
Mobile Automation with Appium
Mobile Automation with AppiumMobile Automation with Appium
Mobile Automation with AppiumManoj Kumar Kumar
 
Mobile Application Testing Strategy
Mobile Application Testing StrategyMobile Application Testing Strategy
Mobile Application Testing StrategyankitQA
 
Mobile Application Testing by Javed Ansari
Mobile Application Testing by Javed AnsariMobile Application Testing by Javed Ansari
Mobile Application Testing by Javed AnsariJaved Ansari
 
Jira fundamentals and bug tracking tool Guide
Jira fundamentals and bug tracking tool GuideJira fundamentals and bug tracking tool Guide
Jira fundamentals and bug tracking tool GuideMayank Solanki
 
Intro to React Native Testing Library
Intro to React Native Testing LibraryIntro to React Native Testing Library
Intro to React Native Testing LibraryJosh Justice
 
Testing Your APIs: Postman, Newman, and Beyond
Testing Your APIs: Postman, Newman, and BeyondTesting Your APIs: Postman, Newman, and Beyond
Testing Your APIs: Postman, Newman, and BeyondPostman
 
Getting started with flutter
Getting started with flutterGetting started with flutter
Getting started with flutterrihannakedy
 
I Love APIs 2015: Crash Course Foundational Topics in Apigee Edge Workshop
I Love APIs 2015: Crash Course Foundational Topics in Apigee Edge WorkshopI Love APIs 2015: Crash Course Foundational Topics in Apigee Edge Workshop
I Love APIs 2015: Crash Course Foundational Topics in Apigee Edge WorkshopApigee | Google Cloud
 
Building beautiful apps using google flutter
Building beautiful apps using google flutterBuilding beautiful apps using google flutter
Building beautiful apps using google flutterAhmed Abu Eldahab
 

What's hot (20)

Mobile Performance Testing - Best Practices
Mobile Performance Testing - Best PracticesMobile Performance Testing - Best Practices
Mobile Performance Testing - Best Practices
 
API Management within a Microservice Architecture
API Management within a Microservice ArchitectureAPI Management within a Microservice Architecture
API Management within a Microservice Architecture
 
Mobile App Testing Strategy by RapidValue Solutions
Mobile App Testing Strategy by RapidValue SolutionsMobile App Testing Strategy by RapidValue Solutions
Mobile App Testing Strategy by RapidValue Solutions
 
Performance testing of mobile apps
Performance testing of mobile appsPerformance testing of mobile apps
Performance testing of mobile apps
 
Postman Webinar: Postman 101
Postman Webinar: Postman 101Postman Webinar: Postman 101
Postman Webinar: Postman 101
 
Dagger Hilt Pros and Cons - Android Summit 2020
Dagger Hilt Pros and Cons - Android Summit 2020Dagger Hilt Pros and Cons - Android Summit 2020
Dagger Hilt Pros and Cons - Android Summit 2020
 
Introduction to appDynamics
Introduction to appDynamics Introduction to appDynamics
Introduction to appDynamics
 
Mobile Automation with Appium
Mobile Automation with AppiumMobile Automation with Appium
Mobile Automation with Appium
 
Mobile Application Testing Strategy
Mobile Application Testing StrategyMobile Application Testing Strategy
Mobile Application Testing Strategy
 
Mobile Application Testing by Javed Ansari
Mobile Application Testing by Javed AnsariMobile Application Testing by Javed Ansari
Mobile Application Testing by Javed Ansari
 
Progressive web app
Progressive web appProgressive web app
Progressive web app
 
Jira fundamentals and bug tracking tool Guide
Jira fundamentals and bug tracking tool GuideJira fundamentals and bug tracking tool Guide
Jira fundamentals and bug tracking tool Guide
 
Intro to React Native Testing Library
Intro to React Native Testing LibraryIntro to React Native Testing Library
Intro to React Native Testing Library
 
Selenium ppt
Selenium pptSelenium ppt
Selenium ppt
 
Testing Your APIs: Postman, Newman, and Beyond
Testing Your APIs: Postman, Newman, and BeyondTesting Your APIs: Postman, Newman, and Beyond
Testing Your APIs: Postman, Newman, and Beyond
 
Full Stack Flutter Testing
Full Stack Flutter Testing Full Stack Flutter Testing
Full Stack Flutter Testing
 
Getting started with flutter
Getting started with flutterGetting started with flutter
Getting started with flutter
 
Android Mp3 Player
Android Mp3 PlayerAndroid Mp3 Player
Android Mp3 Player
 
I Love APIs 2015: Crash Course Foundational Topics in Apigee Edge Workshop
I Love APIs 2015: Crash Course Foundational Topics in Apigee Edge WorkshopI Love APIs 2015: Crash Course Foundational Topics in Apigee Edge Workshop
I Love APIs 2015: Crash Course Foundational Topics in Apigee Edge Workshop
 
Building beautiful apps using google flutter
Building beautiful apps using google flutterBuilding beautiful apps using google flutter
Building beautiful apps using google flutter
 

Viewers also liked

프로그레시브 웹앱(Pwa)
프로그레시브 웹앱(Pwa)프로그레시브 웹앱(Pwa)
프로그레시브 웹앱(Pwa)Woncheol Lee
 
2017_Google_PWA_Roadshow_Lighthouse
2017_Google_PWA_Roadshow_Lighthouse2017_Google_PWA_Roadshow_Lighthouse
2017_Google_PWA_Roadshow_LighthouseGihyo Joshua Jang
 
Grunt.js and Yeoman, Continous Integration
Grunt.js and Yeoman, Continous IntegrationGrunt.js and Yeoman, Continous Integration
Grunt.js and Yeoman, Continous IntegrationDavid Amend
 
비 개발자를 위한 웹 개발 기초
비 개발자를 위한 웹 개발 기초비 개발자를 위한 웹 개발 기초
비 개발자를 위한 웹 개발 기초Gihyo Joshua Jang
 
엔지니어 관점에서 바라본 데이터시각화
엔지니어 관점에서 바라본 데이터시각화엔지니어 관점에서 바라본 데이터시각화
엔지니어 관점에서 바라본 데이터시각화Kenneth Ceyer
 
GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기
 GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기 GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기
GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기Kenneth Ceyer
 

Viewers also liked (6)

프로그레시브 웹앱(Pwa)
프로그레시브 웹앱(Pwa)프로그레시브 웹앱(Pwa)
프로그레시브 웹앱(Pwa)
 
2017_Google_PWA_Roadshow_Lighthouse
2017_Google_PWA_Roadshow_Lighthouse2017_Google_PWA_Roadshow_Lighthouse
2017_Google_PWA_Roadshow_Lighthouse
 
Grunt.js and Yeoman, Continous Integration
Grunt.js and Yeoman, Continous IntegrationGrunt.js and Yeoman, Continous Integration
Grunt.js and Yeoman, Continous Integration
 
비 개발자를 위한 웹 개발 기초
비 개발자를 위한 웹 개발 기초비 개발자를 위한 웹 개발 기초
비 개발자를 위한 웹 개발 기초
 
엔지니어 관점에서 바라본 데이터시각화
엔지니어 관점에서 바라본 데이터시각화엔지니어 관점에서 바라본 데이터시각화
엔지니어 관점에서 바라본 데이터시각화
 
GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기
 GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기 GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기
GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기
 

Similar to 프로그레시브 웹앱이란? - Progressive Web Apps

모바일앱개발 교육자료
모바일앱개발 교육자료모바일앱개발 교육자료
모바일앱개발 교육자료JinHyuck Churn
 
01.모바일 프레임워크 이론
01.모바일 프레임워크 이론01.모바일 프레임워크 이론
01.모바일 프레임워크 이론Hankyo
 
차세대 웹비즈니스를 위한 "HTML5"
차세대 웹비즈니스를 위한 "HTML5"차세대 웹비즈니스를 위한 "HTML5"
차세대 웹비즈니스를 위한 "HTML5"Changhwan Yi
 
[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효NAVER D2
 
네이티브 웹앱 기술 동향 및 전망
네이티브 웹앱 기술 동향 및 전망네이티브 웹앱 기술 동향 및 전망
네이티브 웹앱 기술 동향 및 전망Wonsuk Lee
 
네이티브 웹앱 기술 동향 및 전망
네이티브 웹앱 기술 동향 및 전망네이티브 웹앱 기술 동향 및 전망
네이티브 웹앱 기술 동향 및 전망Wonsuk Lee
 
웹 2.0 기술 소개 (2006)
웹 2.0 기술 소개 (2006)웹 2.0 기술 소개 (2006)
웹 2.0 기술 소개 (2006)Channy Yun
 
하이브리드 앱(Hybrid App)
하이브리드 앱(Hybrid App)하이브리드 앱(Hybrid App)
하이브리드 앱(Hybrid App)Changhwan Yi
 
HTML5 기반 다매체 연동형 서비스 발전 방향(티비스톰 정운교 이사)
HTML5 기반 다매체 연동형 서비스 발전 방향(티비스톰 정운교 이사)HTML5 기반 다매체 연동형 서비스 발전 방향(티비스톰 정운교 이사)
HTML5 기반 다매체 연동형 서비스 발전 방향(티비스톰 정운교 이사)JeongHeon Lee
 
Web os 전략 0912
Web os 전략 0912Web os 전략 0912
Web os 전략 0912우일 권
 
The comprehensive guide for optimizing the performance of mobile HTML5 Web ap...
The comprehensive guide for optimizing the performance of mobile HTML5 Web ap...The comprehensive guide for optimizing the performance of mobile HTML5 Web ap...
The comprehensive guide for optimizing the performance of mobile HTML5 Web ap...Sang Seok Lim
 
C1 하이브리드 앱 어떻게 개발해야 하나
C1 하이브리드 앱 어떻게 개발해야 하나C1 하이브리드 앱 어떻게 개발해야 하나
C1 하이브리드 앱 어떻게 개발해야 하나NAVER D2
 
2012, 대한민국 웹 표준, 그 기로에 서다
2012, 대한민국 웹 표준, 그 기로에 서다2012, 대한민국 웹 표준, 그 기로에 서다
2012, 대한민국 웹 표준, 그 기로에 서다Jonathan Jeon
 
Mozilla 오픈 웹 모바일 플랫폼 (2012)
Mozilla 오픈 웹 모바일 플랫폼 (2012)Mozilla 오픈 웹 모바일 플랫폼 (2012)
Mozilla 오픈 웹 모바일 플랫폼 (2012)Channy Yun
 
[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔NAVER D2
 

Similar to 프로그레시브 웹앱이란? - Progressive Web Apps (20)

모바일앱개발 교육자료
모바일앱개발 교육자료모바일앱개발 교육자료
모바일앱개발 교육자료
 
01.모바일 프레임워크 이론
01.모바일 프레임워크 이론01.모바일 프레임워크 이론
01.모바일 프레임워크 이론
 
차세대 웹비즈니스를 위한 "HTML5"
차세대 웹비즈니스를 위한 "HTML5"차세대 웹비즈니스를 위한 "HTML5"
차세대 웹비즈니스를 위한 "HTML5"
 
[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효
 
네이티브 웹앱 기술 동향 및 전망
네이티브 웹앱 기술 동향 및 전망네이티브 웹앱 기술 동향 및 전망
네이티브 웹앱 기술 동향 및 전망
 
네이티브 웹앱 기술 동향 및 전망
네이티브 웹앱 기술 동향 및 전망네이티브 웹앱 기술 동향 및 전망
네이티브 웹앱 기술 동향 및 전망
 
웹 2.0 기술 소개 (2006)
웹 2.0 기술 소개 (2006)웹 2.0 기술 소개 (2006)
웹 2.0 기술 소개 (2006)
 
하이브리드 앱(Hybrid App)
하이브리드 앱(Hybrid App)하이브리드 앱(Hybrid App)
하이브리드 앱(Hybrid App)
 
HTML5 와 미래웹기술 part 2
HTML5 와 미래웹기술 part 2HTML5 와 미래웹기술 part 2
HTML5 와 미래웹기술 part 2
 
Webtech
WebtechWebtech
Webtech
 
HTML5 기반 다매체 연동형 서비스 발전 방향(티비스톰 정운교 이사)
HTML5 기반 다매체 연동형 서비스 발전 방향(티비스톰 정운교 이사)HTML5 기반 다매체 연동형 서비스 발전 방향(티비스톰 정운교 이사)
HTML5 기반 다매체 연동형 서비스 발전 방향(티비스톰 정운교 이사)
 
Web os 전략 0912
Web os 전략 0912Web os 전략 0912
Web os 전략 0912
 
The comprehensive guide for optimizing the performance of mobile HTML5 Web ap...
The comprehensive guide for optimizing the performance of mobile HTML5 Web ap...The comprehensive guide for optimizing the performance of mobile HTML5 Web ap...
The comprehensive guide for optimizing the performance of mobile HTML5 Web ap...
 
C1 하이브리드 앱 어떻게 개발해야 하나
C1 하이브리드 앱 어떻게 개발해야 하나C1 하이브리드 앱 어떻게 개발해야 하나
C1 하이브리드 앱 어떻게 개발해야 하나
 
HTML5 Tutorial(Korean)
HTML5 Tutorial(Korean)HTML5 Tutorial(Korean)
HTML5 Tutorial(Korean)
 
Hybrid app and app store
Hybrid app and app storeHybrid app and app store
Hybrid app and app store
 
2012, 대한민국 웹 표준, 그 기로에 서다
2012, 대한민국 웹 표준, 그 기로에 서다2012, 대한민국 웹 표준, 그 기로에 서다
2012, 대한민국 웹 표준, 그 기로에 서다
 
Mozilla 오픈 웹 모바일 플랫폼 (2012)
Mozilla 오픈 웹 모바일 플랫폼 (2012)Mozilla 오픈 웹 모바일 플랫폼 (2012)
Mozilla 오픈 웹 모바일 플랫폼 (2012)
 
[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔
 
Hybrid App
Hybrid AppHybrid App
Hybrid App
 

프로그레시브 웹앱이란? - Progressive Web Apps