Overview
다음과 같은 내용을 이야기 하고자 합니다.
• 일회성 소비를 위한 서비스를 가능하게 하는 웹 기술은 어떠한 것이 있는가?
• 그걸 적용함에 따라 어떠한 문제들이 있는가?
PWA Loginless Web Payment Push NotificationPhysical web
• 웹에서 앱과 같은 사용자 경험을 제공
• Service worker
• Web page 로드 시 register
• Browser와 별개로 돌고 있는 worker thread.
• Browser가 꺼져 있는 상태에도 Push notification 가능
PWA(Progressive Web App)
App 설치 없이 URL 접근으로 서비스를 가능하게 하는 솔루션
• 다수의 사용자에게 자연스럽게 URL을 전달할 수 있다.
• 최소한 한번 이상 접속할 가능성이 높다.
• 피드백을 받기 용이하다.
PWA 모바일 청첩장
1. SNS로 URL 전달
2. Webview
Service worker, push enable
PWA 모바일 청첩장
3. Webpage load
PWA 모바일 청첩장
4. Push notification 5. Event 참여
결혼식 전날 입니다.
이벤트를 진행합니다.
오늘 결혼합니다 :D
• PWA인지 모르고 사용했다.
• 기존 모바일 청첩장과 다른 알림, 이벤트는 신선했다.
• 모바일 청첩장을 앱으로 전달했다면 설치 하지 않았을 것이다.
결과
Feedback (43명)
일정 시기 이후 사용되지 않은 인스턴트 서비스, PWA 사용이 장점을 가지게 된다.
URL을 어떻게 전달할 것인가?
접근성을 높이기
• Physical Web(beacon) – bluethooth 설정, 무음 Notification
• NFC – NDEF record, 사용자의 능동적 접근 필요
매장 안에 들어 섰을 때 모바일기기로 Menu에 대한 URL를 띄우고 싶다.
Loginless
또 다른 허들
• 54% - sign up 전에 떠나는 사용자 비율
• 92% - login 정보를 재설정 하기 전에 떠나는 사용자 비율
<출처: 2016 chrome dev summit sign-in on the web, Industry-Research-Value-of-Social-Login/janrain, blue>
회원가입과 로그인이 필요 없다는 것이 아닙니다.
Loginless
• 기존에 비회원 주문이 있었습니다.
• 사용자 정보를 입력하지 않고 서비스를 사용하려면?
• 주문/결제 -> 알람 -> 수령 구간동안 사용자 구분이 필요
• data는 Indexed DB에 저장
data
만에 하나 사용자 정보에 문제가 생긴다면?
• 결제 후 물품 수령 구간이라면 사용자 정보에 대한 복원이 필요
• Platform device key를 사용할 수 있을까?
• 복원 가능한 방법이 있을까?
사용자 정보가 유실될 경우
data
Loginless
Mobile device 2
Diff
Browser fingerprint를 이용한 사용자 정보 복원
Mobile device 1
• Browser level에서 device 를 구분하는 방법
• User agent (browser info, resolution)
• Canvas 2D, WebGL
• Javascript web engine CPU / GPU rendering
• Rendering 결과가 devic간 조금씩 다르다.
• 추출한 data를 key로 사용
• 특정 시간, 구간에 사용자를 구분하는데 활용
Loginless
<Canvas 2D로 text rendering시>
Web Payment 에 대한 오해
Web Payment
• 새로운 결제방식의 표준인가?
=> 아니다. 결제나 지불수단과 관련 없다.
• 결제와 관련된 새로운 인증기술을 제공하나?
=> 아니다. 결제 인증과 아무런 관련 없다.
• 웹 브라우저가 PG 역할을 대신해주는 것인가?
=> 결제 프로세스와 관련 없다.
Web Payment
Web Payment
• Payment Request API
=> 결제를 위한 프롬프트 UI 생성 / Payment Handler 로 구현된 결재 앱을 Activate 시킴
• Payment Handler
서비스워커 형태로 결제앱을 구현 가능하게 해주는 것
Payment
• 지불방식과 관계없이 하나의 함수만을 사용
• 하나의 콜과 콜백안에서 결제요청과 확인이 완료
• 지불수단 추가가 단순하고 쉬움
• 새로운 지불방식의 FLOW 를 공부해야 할 필요가 없음
우리가 기대하는 수준
기존의 웹 결제방식은 콜백구조가 어려운 경우들이 존재
Web Payment
1. URL-Redirection 으로 결제 페이지를 로드하는 경우
- 기존 Merchant 페이지의 스크립트들이 UNLOAD 되어 버림
2. iframe 으로 결제 페이지를 로드하는 경우
- Merchant 와 결제사이트의 Origin 이 서로 다르기 때문에 데이터에 직접 접근할 수가 없
다.
Payment Handler 의 경우
Web Payment
Web Browser
Merchant
ServiceWorker
PaymentHandler
Merchant 와 Pay앱이 서로 별개의 쓰레드이기 때문에 콜백구조가 깨지지 않는다.
하지만 결국 PG가 PaymentHandler 로 앱을 구현해야만 하는거 아닌가?
Web Payment
페이앱에서 기존 PG 사들의 FLOW를 구현
Web Payment
결제요청과 결과확인은 PG와 관계없이 PaymentRequest API 하나로 제공
Payment
• 지불방식과 관계없이 하나의 함수만을 사용
• 하나의 콜과 콜백안에서 결제요청과 확인이 완료
• 지불수단 추가가 단순하고 쉬움
• 새로운 지불방식의 FLOW 를 공부해야 할 필요가 없음
PaymentHandler 로 가능하다