Vuetiful Korea 세 번째 밋업 참가 후기!
- 마루180
Virtual dom to render (우경화 @뉴링크)
DOM and Virtual DOM
Document 내부의 태그에 대한 정의와 api를 규격화 한 모델.
and
DOM을 본따 만든 JavaScript Object.Virtual Dom prevents bad performance
Virtual DOM도 결국 DOM에 patch가 되어야 하니 DOM을 직접 제어하는 코드보다 빠를 수 없다.SnabbDom
가장 신기했던 부분이었다.
기존에 React & Vue에서 제공하는 VirtualDOM을 더 강력하게 만든다.
코드는 그렇게 어려워 보이지 않았으며 Hook과 patch function을 활용한 방법이 재미있었다.
1 | // 선택된 모듈과 함께 patch function 초기화 |
Vue render function
vnode는 유일무이해야함1
2
3
4
5
6
7
8render: function (h) {
var vm = this // this는 현재의 component를 가리킴
var myHi = h('p', 'hi')
return h( 'div' , … //tag
{ … //data object class, staticClass, style, }⁰,
[myHi, Object.assign({}, myHi)¹]) //children
}patch function
VNode의 변화만 보기 때문에 요소에는 관심이 없다.
OLD VNode & NEW VNode로 나뉘게 된다.
리렌더링 => 라이브러리에서 적용한 상태값들이 사라질 수 있음
1 | // vnode 생성 핼퍼 함수 |
리렌더링이 => 라이브러리에서 적용한 상태값들이 사라질 수 있음
- Vue process
실데이이터는 get, set으로 쓰임
watch에 설정된 경우에만 컴포넌트의 렌더링 관여하는 Watcher 객체 생성
keep alive를 주로 활용하였다는 데 Life Cycle과 관련이 있는 걸로 보인다.
마지막 한마디 => Vue is JavaScript
결과를 아는 것 < 왜 그렇게 되는 것인지 이해 === Vue를 더 잘 쓸 수 있는 방법
우경화님의 예제 : https://kellywoo.github.io/vnode
SnabbDom : https://github.com/snabbdom/snabbdom
발표자료 : https://docs.google.com/presentation/d/1CicMIDXECBg_5Y7TnAf-iF4uXW7PrDoUfAM6hpBCulI/edit?usp=sharing
Vue.js로 Unit Test하기 (박성호 @마이리얼트립)
TDD를 도입하게 된 계기
웹과 앱을 통신하는 복잡한 과정을 개선하기 위해 테스트를 도입하기로 결정테스트 도구 선택
다양한 선택 중 VueCLI의 Karma & Mocha를 선택테스트의 종류
TDD라고 다 같은 테스트가 아니다.
테스트의 종류는 다양하기 때문에 다 하는 게 좋다.컴포넌트 테스트
VueCLI의 초기화면 테스트를 예를 들어 보여준 후 간단한 Todo 앱의 컴포넌트 테스트를 보여주었다
Vue.nextTick을 활용할 것을 추천했다.
발표자료 : https://docs.google.com/presentation/d/1nOcis4xOElGXpuOTq2mSHQVxIWXzgkaIXKppXpbT5w0/edit?usp=sharing
PWA 시작하기 (최준석 @NHN 벅스)
지루한 pwa 설명
모든 브라우저 && 모든 디바이스
오프라인 작동 가능 & 앱과 유사하다
업데이트 프로세스 => 최신 상태 유지
HTTPS 제공
설치 가능
레진코믹스나 AWS는 사용 중application shell
캐시 사용 => 빠른 로딩 속도
컨텐츠 동적 이용
정말 사용해야 하는 기본적인 구성(데이터, 리소스)만 넣어야 한다
참조 : https://developers.google.com/web/fundamentals/architecture/app-shell?hl=ko
- 서비스 워커
브라우저가 백그라운드에서 실행하는 스크립트
설치
푸시 알림
백그라운드 동기화
참조 : https://developers.google.com/web/fundamentals/primers/service-workers/?hl=ko
- 사용하면서 어려웠던 부분
- SWPrecacheWebpackPlugin
기본적인 설정 내용에 따라 추가 Service Worker를 자동으로 생성 - 기본으로 앱 코드 안에 서비스워커를 등록시켜주는 register & Service Worker 파일 필요
- vue-pwa-template의 dev버전에 register 부분은 없다.
- Production register => Service Worker를 자동 생성 (설정필요)
- 튜토리얼대로만 하면 될 정도로 간단하다고 한다.
발표자료 : http://jicjjang.github.io/2017/11/30/vue-pwa-start
스폰서 광고
- 많은 프론트엔드 개발자의 지원을 기다리고 있다고 한다.
(Vuetiful Korea 세 번째 밋업의 간식 후원)
OX 퀴즈 (Bob Lee)
- 전체적으로 문제가 너무 어려웠다…
Q&A
Q : PWA 개발 후 패키징은 뭐로 하나요? cordova? 같은 걸까요? 요즘 핫한게 뭐가 있는지 궁금합니다.
A : 앱스토어 배포가 필요 없다. 레진코믹스를 예로 설명Q : PWA의 Push는 firebase를 이용하신 건가요?
A : Yes!Q : react native처럼 vue로도 native app을 만들수 있는 뭔가가 있다고 들었는데,
용어가 기억이 안납니다. 아시는 분 언급좀 부탁드려요!
이승민 : Weex!Q : Vue가 Angular에 비해 낫다고 생각하는 점을 설명해주세요
이선협 : 당연히 좋다.
TypeScript와 Angular는 어렵고 인기 또한 깃헙 Star까지 Vue가 높다Q : 저희도 Vue.js 하는 사람 뽑아요..
A : 웍스모바일에서 뽑는다고 한다Q : 서비스에 PWA 적용하니 정말 좋나요? 실서비스 사례도 궁금해요
최준석 : pwa 발표자입니다. 실서비스에서 안써봤습니다 흑흑 회사에서 vue 안씁니다…
Vue 한국 사용자 모임
- Github : https://github.com/vuejs-kr
- Facebook : https://www.facebook.com/groups/1152461054807344
- 블로그 : http://vuejs.kr
- Slack : https://vuejs-korea.signup.team