2019-07-13
Google I/O Extended 2019 Webtech에 다녀왔습니다!
사진을 잘 안찍어버릇해서 나올 때 찍었습니다…
Selenium처럼 Web automation tool인 Pupeteer를 시작해보는 세션이였습니다.
Pupeteer의 특징은 다음과 같다고 하네요
라이브코딩으로 Google Account에 로그인하는 과정을 보여주셨습니다! 또, 예제로 Jest + Puppeteer e2e testing, Crawling 등의 예제를 보여주셨습니다.
Selenium보다 DOM Waiting도 간편해서 좋은 것 같습니다. 또한 User action을 직접 간단하게 보낼 수 있는 것도 좋네요.
처음 들어본 주제다!
Micro Frontends에 대한 소개와 함께 시작했다. MSA의 개념을 Frontend에 확장한 개념이다.
개발조직이 분리되어있는(혹은 Legacy가 많은) 서비스에서 여러 다른 Frontend Framework를 동시에 사용할 수 있게 하는 것이다.
방법론이다보니 이를 구현하기 위한 방법이 많이 있다.
근데 “개빡셉니다” 라고 한다 ㅋㅋ 당연히 완전히 page를 isolate하는건 품이 많이 들어가겠지… => 어떤 방식을 사용해도 결국 어렵다!
그리고 이제 드디어 Portal 얘기가 나온다.
Page 이동의 단점 : “현재 페이지를 벗어난다” (naver.com의 로그인 버튼처럼)
=> portal은 페이지 이동을 부드럽게 보여주는 HTML Element이다! HTML 표준이래요. 하지만 Google Chrome에서만 지원(…) 게다가 Chrome Canary에서 Flag를 활성화시켜야먄…
iframe처럼 portal도 postMessage API를 사용해서 통신할 수 있다. 확실히 Micro Frontends를 잘 사용할 수 있는 예제였다.
“웹의 기능이 어디까지 확장될 수 있니?” 에 대한 세션이다.
현재(2019-07-07 기준) 지구 인구는 약 80억명이고, 인터넷 유저는 약 40억명이라고 한다. -> 브라우저랑 인터넷만 있으면 뭐든지 할 수 있다!
Native App에서는 가능하고, Web에서 할 수 없는 것들을 App Gap이라고 한다. Ex) Local file 접근 등
Web이 Native app을 따라가게 하고자 하는 프로젝트.
기존에 네이티브에서 하던 Share 기능을 Web API 기능으로 구현
근데 구현되어있는 브라우저가 Safari, Opera밖에 없다…
스마트폰에서 Web 동영상을 볼 때 알림센터에서 Thumbnail 나오고 navigation이 나오는게 이거였구나
Face / Barcode / Text Detector -> 웹에서 이미 디바이스에 있는 모듈을 사용할 수 있도록! 좀 좋은듯?
npm install perception-toolkit
으로 쓸 수 있다.
Demo에서는 카메라로 사물을 찍으면 알아서 검색해서 알려주는걸 보여줬는데 좀 멋있었다. 근데 뭔가 제대로 써먹기는 힘들 것 같은 느낌…
웹에서 Device가 Sleep하지 않도록 해주는 API
ExperimentalBadge.set(1);
같은 방식으로 App의 Badge를 켤 수 있다. 이거도 flag에서 enable해야됨
가장 기대되는 세션!
LLVM 바이트코드를 JavaScript로 컴파일해주는 프로젝트
JS에서 Object, String, Closure, Dynamic type같은 것들을 빼고 만든 Subset. 그러면 거의 C언어와 유사한 JS 코드가 되고 Assembly와 유사한 컴퓨팅방식을 사용 가능하다고 한다.
asm.js로부터 발전해서 새로 정의한 Web을 위한 Assembly
WebAssembly is a binary instruction format.
Emscripten의 출력물은 Optimized JS -> asm.js -> WebAssembly binary로 변화했다고 한다
근데 솔직히 나는 쓸 일이 없을것 같다… 어썸하긴 하지만 ㅎ
Chrome 76부터는 Desktop에서도 PWA가 된다고 한다. Mobile/Desktop 모두 된다는건 상당히 매력적이다. Major browsers들은 모두 지원하기도 하고.
라이브 버그리포팅 들어와서 고치느라 잘 못들었음 ㅠ
세션 제목만 보고 Lighthouse 써봤는데 좋더라구요
세션 듣기 전에 Lighthouse 돌릴 때, Throttling 걸어서 점수가 진짜 끔찍하게 나왔는데 Throttling 풀고 자기만족 했었는데 그부분 딱 말씀하셔서 웃겼다 ㅋㅋ
주제별로 나눠서 네트워킹하는 세션이 맨 마지막이였다.
센스있게 그룹을 나눠주셔서 재밌는 시간이 되었다 ㅎㅎ
다음부터는 세션마다 사진을 하나 이상씩은 찍어야겠습니다. 글이 너무 휑하네요 ㅠ
여러 개발자분들이 개발하시는 이야기, 새로운 기술에 대한 이야기를 나누니까 좀 리프레시가 되는 기분입니다.
다음달에는 Pycon!!