SlideShare a Scribd company logo
1 of 73
HTML5 is Ready :
Fastbook
SKP 김준기
13년 5월 13일 월요일
Who am I ?
• JavaScript 프로그래머
• Mobile Web App 개발
• Jindo Component
• 웹서비스 성능 개선
• 번역
• facebook 그룹 jslounge 운영자
http://www.facebook.com/groups/jslounge
13년 5월 13일 월요일
Fastbook에 대한 이야기
13년 5월 13일 월요일
2012년 9월 11일
@ TechCrunch DISRUPT SF 2012
13년 5월 13일 월요일
당시의 Facebook App
• HTML5? 그냥 단순한 모바일 웹페이지
• http://m.facebook.com
• 현재의 모습과 크게 다르지 않았다.
• 네이티브 변경 이후로 점차적으로
UI에 재미있는 요소들 도입
• 제스처, Swipe Image Viewer
13년 5월 13일 월요일
13년 5월 13일 월요일
HTML5 Adoption Survey
• 2012/09/05 ~ 2012/09/26
• over 4,000 worldwide software developer
13년 5월 13일 월요일
90% 이상이 HTML5를 사용하거나 할 계획
HTML5를 사용하고 있거나
사용할 계획인가요?
13년 5월 13일 월요일
Facebook의 결정이
당신에게 어떤 영향인가요?
70% 이상 : 별상관없다.
10% 이상 : 오히려 자신감을 얻었다.
13년 5월 13일 월요일
네이티브로 바뀌기 전에
HTML5였다는 걸 알고 있었나요?
무려 절반 이상이 몰랐다!
13년 5월 13일 월요일
페이스북이 네이티브로 변경한 사실을 알고 있다면,
앞으로의 HTML5 개발에 어떤 영향을 주는가?
사실을 알았다 - 좌절(17%) 혹은 희망(18%)
몰랐다 - 별생각 없다 (좌절도 덜, 희망도 덜)
13년 5월 13일 월요일
그리고 12월
Fastbook의 등장
13년 5월 13일 월요일
http://fb.html5isready.com
13년 5월 13일 월요일
http://vimeo.com/55486684
13년 5월 13일 월요일
fastbook의 특징
• 엄청 빠른 스크롤 속도
• Swipe뷰, 더블탭 줌, 핀치 투 줌/패닝
• 앱 네비게이션 스와이핑/탭핑
• pull to refresh시 모두 리프레시하지 않고 필요한 내용만 업데이트
• 댓글도 스크롤시 자동으로 더보기
• 가로모드지원
• iOS 5 or Android 4.1이상 권장
13년 5월 13일 월요일
position:fixed
• 그동안 웹을 앱처럼 사용하지 못했던 가장 큰 이유
• Android ICS(4.0)+, iOS 5+
• 헤더, 푸터 고정
• 컨텐츠영역만 스크롤하려는 UI 구현 시도
13년 5월 13일 월요일
커스텀 스크롤러
• position:fixed처럼 일부를 고정하고 지정된 영역만
touch이벤트로 스크롤할 수 있도록 지원
• iScroll과 같은 라이브러리를 사용
• 또는 직접구현
• 기존의 facebook 앱은???
• 컨텐츠영역만 webview사용
• webview의 디폴트 스크롤 사용
13년 5월 13일 월요일
계속해서 증가하는 목록의
스크롤 구현하기?
• 고정된 목록의 구현은 대부분 해결 가능
• 계속해서 증가하는 목록의 스크롤을 구현하기는
무척 까다로움
13년 5월 13일 월요일
fastbook은 어떻게 했을까?
13년 5월 13일 월요일
DOM 트리의
크기증가를 최소화
• 앱이 커지면 DOM tree가 증가.
• DOM tree가 증가하면
레이아웃계산에 걸리는 시간이 늘어난다.
즉 성능이 떨어진다.
• 보여질 레이어의 수가 증가할수록
컴포지팅 성능이 급격히 떨어진다.
13년 5월 13일 월요일
Sandbox 컨테이너
• DOM 트리를 iframe으로 나눈다.
• 개발자에게는 seamless
• 이벤트, 위치지정, 스타일링, 자바스크립트 코드등은
부모 창과 자식창(샌드박스)간에 위임
13년 5월 13일 월요일
News Feed TimelineStoryView
13년 5월 13일 월요일
News Feed TimelineStoryView
sandbox sandbox sandbox
13년 5월 13일 월요일
일반적인 스크롤러의 구현
• Viewport를 고정 크기로 지정
• Viewport의 overflow:hidden
• 터치 이벤트로, 적절한 스크롤위치를 계산
• 리스트 컨테이너의
top:스크롤위치px 지정 (position:absolute)
• 또는 transform:translate3d(0, 스크롤위치px, 0)
13년 5월 13일 월요일
13년 5월 13일 월요일
Viewport
List Container
13년 5월 13일 월요일
transform:
translate3d(0, 0px, 0)
13년 5월 13일 월요일
transform:
translate3d(0, 0px, 0)
13년 5월 13일 월요일
transform:
translate3d(0, -120px, 0)
13년 5월 13일 월요일
transform:
translate3d(0, -250px, 0)
13년 5월 13일 월요일
리스트 아이템이
계속 늘어나면
• layout해야할 DOM tree의 크기가 증가
• GPU acceleration할 texture의 크기가 증가
• layout에 걸리는 시간도 점점 증가
13년 5월 13일 월요일
스크롤러의 성능문제
• KTH - 하이브리드 앱의 스크롤 성능 개선하기
http://dev.kthcorp.com/2012/06/18/hybrid-
app-scroll-performance-enhancement/
• 각 아이템의 position을 absolute로 변경
• viewport에 보이지 않으면 display:none으로
layout, paint하지 않도록 함
13년 5월 13일 월요일
아이템이 계속해서 증가하는
스크롤러의 성능문제
• DOM이 계속해서 증가
• 처리해야할 노드수가 계속해서 증가
• 아이템이 계속 증가한다면
DOM Tree가 커지는 근본적인 문제에는 해답이 없음
13년 5월 13일 월요일
fastbook 스크롤러 DOM구조
• 16개의 아이템만 유지
• 각 아이템의 위치는 모두 position:absolute
• 스크롤되면 이 아이템들의 위치가 바뀜
• 모든 아이템들이 id값을 유지
13년 5월 13일 월요일
13년 5월 13일 월요일
13년 5월 13일 월요일
13년 5월 13일 월요일
13년 5월 13일 월요일
13년 5월 13일 월요일
13년 5월 13일 월요일
위... 윗장 빼기?
13년 5월 13일 월요일
추측
• 16개 정도의 아이템만 유지하는 이유
• DOM 구조 변경을 최소화하기 위해서
• 아이템의 뼈대만 유지
• 스크롤 위치에 근거해, 아이템 내부의 내용을 교체
• 이 후 사이즈를 재고 적당한 위치에 배치
13년 5월 13일 월요일
60 fps
• 프레임당 16.6666...ms 안에
페인팅이 반복되어야함.
• 프레임 사이에 시도하는 작업이 16ms 미만이면
스크롤 성능에 영향을 최소화할 수 있다.
13년 5월 13일 월요일
13년 5월 13일 월요일
예상 가능한 reflow 요인
• 아이템 내부의 내용 교체
• 아이템의 사이즈 측정
• 아이템의 위치 변경
13년 5월 13일 월요일
아이템 내부의 내용 교체
• 아이템 내용의 템플릿을 가지고
매번 DOM을 생성하여 교체할 것이라고 추측
13년 5월 13일 월요일
13년 5월 13일 월요일
변경을 예상한 부분
13년 5월 13일 월요일
실제 아이템 내용 교체
• fastbook은 리스트의 모든 아이템이
동일한 템플릿으로 표현가능하다는 점에 착안
• DOM을 절대 새로 생성하거나 제거하지 않음
• 아이템의 내용 중
text, 이미지 url, display 여부만 변경
13년 5월 13일 월요일
13년 5월 13일 월요일
DOM tree의 크기에는 전혀 변화가 없다!
13년 5월 13일 월요일
text 교체 성능
• innerHTML
• vs innerText
• vs nodeValue
• vs textContent
13년 5월 13일 월요일
text 교체 성능
• innerHTML
• vs innerText
• vs nodeValue
• vs textContent
http://jsperf.com/innerhtml-vs-innertext/12
nodeValue Wins!
tested on Galaxy s3 Android 4.0.4 & iOS 6.1.2
13년 5월 13일 월요일
아이템의 사이즈 측정
• getBoundingClientRect
• vs offsetWidth / offsetHeight
13년 5월 13일 월요일
아이템의 사이즈 측정
• getBoundingClientRect
• vs offsetWidth / offsetHeight
http://jsperf.com/getboundingclientrect-offsetwidth-offsetheight
offsetHeight Wins!
13년 5월 13일 월요일
아이템의 위치 변경
• 항상 GPU 가속을 이용하는게 최선
• css3 transform : translate3d(x, y, z)
13년 5월 13일 월요일
3초뒤 이해되는 사진
13년 5월 13일 월요일
13년 5월 13일 월요일
???
13년 5월 13일 월요일
???
개별 아이템의 높이가 유동적이기 때문에
그려보기 전까지 전체 컨테이너의 높이를 알 수 없다.
13년 5월 13일 월요일
TaskQueue
• DOM read와 write가 이벤트 큐를 오랜시간동안
블로킹 하지 않고 실행하도록 작업을 분리
• timer로 쪼개서 별도의 이벤트 루프 턴에서 실행
• READ 큐와 WRITE 큐로 분리
• Ext.TaskQueue.requestWrite()
• Ext.TaskQueue.requestRead()
13년 5월 13일 월요일
requestRead() : read queue만 비움
requestWrite() : write를 비우고 read queue를 이어서 비움
READ TASK #1 WRITE TASK #1
READ TASK #2
READ TASK #3
READ TASK #4
WRITE TASK #2
WRITE TASK #3
WRITE TASK #4
setTimeout(this.run, 1);
requestAnimationFrame(this.run);
READ 큐 WRITE 큐
13년 5월 13일 월요일
AnimationQueue
• 앱이 애니메이션을 실행중일 때,
우선순위가 낮은 함수를 나중에 실행시키게 함.
• 앱이 idle상태일 때 지연된 task들을 실행
• 뉴스 피드를 스크롤하는 중에는 이미지 로딩/렌더링을 하지 않음.
• 애니메이션 실행중에도 함께 실행되어야하는 작업들도 짧은 타이
머 단위로 점진적으로 실행시키는 논블로킹 방식으로 수행
• 터치 이벤트가 항상 최우선권
스크롤이 잘 애니메이션 되도록 함.
13년 5월 13일 월요일
Text
Ext.AnimationQueue.onIdle("doSetSrc", this, e);
13년 5월 13일 월요일
스크롤 애니메이션중이 아닐 때(idle) 이미지 로딩
13년 5월 13일 월요일
관성 스크롤시
감속 지속시간 튜닝
• 네이티브 앱에서는 3초 간 지속,
• 가속은 높이고 감속되는 시간을 1.4초로 줄임.
• 컨텐츠 노출속도를 높일 뿐 아니라,
idle time을 늘리는 효과가 있으므로,
현재 컨텐츠를 읽을 동안 더 많은 백그라운드 작업이
가능해짐.
13년 5월 13일 월요일
Web Worker
• XHR/RPC 통신을 UI 쓰레드에서 분리해
Worker 쓰레드에서 처리
13년 5월 13일 월요일
13년 5월 13일 월요일
News Feed
데이터 최적화
• proxy를 통해 API 호출을 최적화
• HTML -> JSON
• 기존 10개의 아이템당 15~20KB(gzip)
• 10%의 크기로 줄임
13년 5월 13일 월요일
Wrap-up
• Sandbox
• DOM 트리의 크기 변화가 전혀 없는 아이템 업데이트
• TaskQueue / AnimationQueue
• Web Worker
• 관성 스크롤 감속시간 튜닝
• 데이터 최적화 (JSON)
13년 5월 13일 월요일
References
• http://techcrunch.com/2012/09/11/mark-
zuckerberg-our-biggest-mistake-with-mobile-
was-betting-too-much-on-html5/
• http://www.sencha.com/blog/the-making-of-
fastbook-an-html5-love-story
• http://www.html5rocks.com/en/tutorials/
speed/scrolling/
• http://cubiq.org/iscroll-4
13년 5월 13일 월요일
Q & A
13년 5월 13일 월요일
고맙습니다 :)
13년 5월 13일 월요일

More Related Content

What's hot

퍼블리셔, 프론트엔드개발을 시작하다
퍼블리셔, 프론트엔드개발을 시작하다퍼블리셔, 프론트엔드개발을 시작하다
퍼블리셔, 프론트엔드개발을 시작하다정석 양
 
JavaScript로 오픈소스를 해보자. bsJS
JavaScript로 오픈소스를 해보자. bsJSJavaScript로 오픈소스를 해보자. bsJS
JavaScript로 오픈소스를 해보자. bsJSNAVER D2
 
Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)Junsu Kim
 
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)JinKwon Lee
 
비 개발자를 위한 웹 개발 기초
비 개발자를 위한 웹 개발 기초비 개발자를 위한 웹 개발 기초
비 개발자를 위한 웹 개발 기초Gihyo Joshua Jang
 
코드스쿼드 마스터즈세미나 - UI개발자가돼보자
코드스쿼드 마스터즈세미나 - UI개발자가돼보자코드스쿼드 마스터즈세미나 - UI개발자가돼보자
코드스쿼드 마스터즈세미나 - UI개발자가돼보자지수 윤
 
비동기와 이벤트큐 수업자료
비동기와 이벤트큐 수업자료비동기와 이벤트큐 수업자료
비동기와 이벤트큐 수업자료지수 윤
 
How_to_choose_the_right_framework
How_to_choose_the_right_frameworkHow_to_choose_the_right_framework
How_to_choose_the_right_frameworkJT Jintae Jung
 
웹 디자이너의 도전: Vue.js 따라하기
웹 디자이너의 도전: Vue.js 따라하기웹 디자이너의 도전: Vue.js 따라하기
웹 디자이너의 도전: Vue.js 따라하기Seungmin Lee
 
원모먼트 Vue js 적용기
원모먼트 Vue js 적용기원모먼트 Vue js 적용기
원모먼트 Vue js 적용기우현 김
 
응답하라 반응형웹 - 4. angular
응답하라 반응형웹 - 4. angular응답하라 반응형웹 - 4. angular
응답하라 반응형웹 - 4. angularredribbon1307
 
PHP Slim Framework with Angular
PHP Slim Framework with AngularPHP Slim Framework with Angular
PHP Slim Framework with AngularJT Jintae Jung
 
Angularjs, ionic, cordova 기반 syrup store app 개발 사례 공유
Angularjs, ionic, cordova 기반 syrup store app 개발 사례 공유Angularjs, ionic, cordova 기반 syrup store app 개발 사례 공유
Angularjs, ionic, cordova 기반 syrup store app 개발 사례 공유Sang Seok Lim
 
블로그 주도 개발
블로그 주도 개발블로그 주도 개발
블로그 주도 개발JeongHun Byeon
 
[토크아이티] 프런트엔드 개발 시작하기 저자 특강
[토크아이티] 프런트엔드 개발 시작하기 저자 특강 [토크아이티] 프런트엔드 개발 시작하기 저자 특강
[토크아이티] 프런트엔드 개발 시작하기 저자 특강 우영 주
 
위플래닛 발표자료 Meteor_js
위플래닛 발표자료 Meteor_js위플래닛 발표자료 Meteor_js
위플래닛 발표자료 Meteor_jsWebFrameworks
 
최근 Javascript framework 조사
최근 Javascript framework 조사최근 Javascript framework 조사
최근 Javascript framework 조사Kichul Jung
 
스프링 프레임워크로 블로그 개발하기
스프링 프레임워크로 블로그 개발하기 스프링 프레임워크로 블로그 개발하기
스프링 프레임워크로 블로그 개발하기 라한사 아
 
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신Sungwoo Choo
 

What's hot (20)

퍼블리셔, 프론트엔드개발을 시작하다
퍼블리셔, 프론트엔드개발을 시작하다퍼블리셔, 프론트엔드개발을 시작하다
퍼블리셔, 프론트엔드개발을 시작하다
 
JavaScript로 오픈소스를 해보자. bsJS
JavaScript로 오픈소스를 해보자. bsJSJavaScript로 오픈소스를 해보자. bsJS
JavaScript로 오픈소스를 해보자. bsJS
 
Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)
 
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
 
비 개발자를 위한 웹 개발 기초
비 개발자를 위한 웹 개발 기초비 개발자를 위한 웹 개발 기초
비 개발자를 위한 웹 개발 기초
 
코드스쿼드 마스터즈세미나 - UI개발자가돼보자
코드스쿼드 마스터즈세미나 - UI개발자가돼보자코드스쿼드 마스터즈세미나 - UI개발자가돼보자
코드스쿼드 마스터즈세미나 - UI개발자가돼보자
 
미래웹기술연구소는 왜 Sencha 를 채택하였는가?
미래웹기술연구소는 왜 Sencha 를 채택하였는가?미래웹기술연구소는 왜 Sencha 를 채택하였는가?
미래웹기술연구소는 왜 Sencha 를 채택하였는가?
 
비동기와 이벤트큐 수업자료
비동기와 이벤트큐 수업자료비동기와 이벤트큐 수업자료
비동기와 이벤트큐 수업자료
 
How_to_choose_the_right_framework
How_to_choose_the_right_frameworkHow_to_choose_the_right_framework
How_to_choose_the_right_framework
 
웹 디자이너의 도전: Vue.js 따라하기
웹 디자이너의 도전: Vue.js 따라하기웹 디자이너의 도전: Vue.js 따라하기
웹 디자이너의 도전: Vue.js 따라하기
 
원모먼트 Vue js 적용기
원모먼트 Vue js 적용기원모먼트 Vue js 적용기
원모먼트 Vue js 적용기
 
응답하라 반응형웹 - 4. angular
응답하라 반응형웹 - 4. angular응답하라 반응형웹 - 4. angular
응답하라 반응형웹 - 4. angular
 
PHP Slim Framework with Angular
PHP Slim Framework with AngularPHP Slim Framework with Angular
PHP Slim Framework with Angular
 
Angularjs, ionic, cordova 기반 syrup store app 개발 사례 공유
Angularjs, ionic, cordova 기반 syrup store app 개발 사례 공유Angularjs, ionic, cordova 기반 syrup store app 개발 사례 공유
Angularjs, ionic, cordova 기반 syrup store app 개발 사례 공유
 
블로그 주도 개발
블로그 주도 개발블로그 주도 개발
블로그 주도 개발
 
[토크아이티] 프런트엔드 개발 시작하기 저자 특강
[토크아이티] 프런트엔드 개발 시작하기 저자 특강 [토크아이티] 프런트엔드 개발 시작하기 저자 특강
[토크아이티] 프런트엔드 개발 시작하기 저자 특강
 
위플래닛 발표자료 Meteor_js
위플래닛 발표자료 Meteor_js위플래닛 발표자료 Meteor_js
위플래닛 발표자료 Meteor_js
 
최근 Javascript framework 조사
최근 Javascript framework 조사최근 Javascript framework 조사
최근 Javascript framework 조사
 
스프링 프레임워크로 블로그 개발하기
스프링 프레임워크로 블로그 개발하기 스프링 프레임워크로 블로그 개발하기
스프링 프레임워크로 블로그 개발하기
 
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
 

Viewers also liked

웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기JinKwon Lee
 
사장이 좋아하는 신입 개발자
사장이 좋아하는 신입 개발자 사장이 좋아하는 신입 개발자
사장이 좋아하는 신입 개발자 NGMaking
 
자바스크립트의 암묵적인 강제형변환과 타입캐스팅
자바스크립트의 암묵적인 강제형변환과 타입캐스팅자바스크립트의 암묵적인 강제형변환과 타입캐스팅
자바스크립트의 암묵적인 강제형변환과 타입캐스팅Junki Kim
 
HTML5 게임 엔진 - OK캐쉬백 게임이벤트 개발 사례
HTML5 게임 엔진 - OK캐쉬백 게임이벤트 개발 사례HTML5 게임 엔진 - OK캐쉬백 게임이벤트 개발 사례
HTML5 게임 엔진 - OK캐쉬백 게임이벤트 개발 사례Junki Kim
 
프론트엔드 애니메이션의 정수
프론트엔드 애니메이션의 정수프론트엔드 애니메이션의 정수
프론트엔드 애니메이션의 정수jeong seok yang
 
Do you Promise?
Do you Promise?Do you Promise?
Do you Promise?jungkees
 
개발자 혼자서 RPG 게임 만들기
개발자 혼자서 RPG 게임 만들기개발자 혼자서 RPG 게임 만들기
개발자 혼자서 RPG 게임 만들기NGMaking
 
모바일 무한 스크롤 개발
모바일 무한 스크롤 개발모바일 무한 스크롤 개발
모바일 무한 스크롤 개발NAVER D2
 
개발자를 위한 웹표준 & 웹접근성이야기
개발자를 위한 웹표준 & 웹접근성이야기개발자를 위한 웹표준 & 웹접근성이야기
개발자를 위한 웹표준 & 웹접근성이야기NAVER D2
 
W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망
W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망
W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망NAVER Engineering
 
Resource Handling in Spring MVC
Resource Handling in Spring MVCResource Handling in Spring MVC
Resource Handling in Spring MVCArawn Park
 
[D2 오픈세미나]5.html5 api 테트리스게임_이진권
[D2 오픈세미나]5.html5 api 테트리스게임_이진권[D2 오픈세미나]5.html5 api 테트리스게임_이진권
[D2 오픈세미나]5.html5 api 테트리스게임_이진권NAVER D2
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyondJae Sung Park
 
[D2 오픈세미나]2.browser engine 이형욱_20140523
[D2 오픈세미나]2.browser engine 이형욱_20140523[D2 오픈세미나]2.browser engine 이형욱_20140523
[D2 오픈세미나]2.browser engine 이형욱_20140523NAVER D2
 
최전방 생존법 - 프론트엔드 개발자로 살아가기
최전방 생존법 - 프론트엔드 개발자로 살아가기최전방 생존법 - 프론트엔드 개발자로 살아가기
최전방 생존법 - 프론트엔드 개발자로 살아가기Hyeonjin Cho
 
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)DK Lee
 
Construct 2를 이용한 2시간 만에 스마트폰 게임만들기
Construct 2를 이용한 2시간 만에 스마트폰 게임만들기Construct 2를 이용한 2시간 만에 스마트폰 게임만들기
Construct 2를 이용한 2시간 만에 스마트폰 게임만들기NGMaking
 
1.openseminar
1.openseminar1.openseminar
1.openseminarNAVER D2
 
5.yobi를 활용한 개발자 협업 및 배포 프로세스
5.yobi를 활용한 개발자 협업 및 배포 프로세스5.yobi를 활용한 개발자 협업 및 배포 프로세스
5.yobi를 활용한 개발자 협업 및 배포 프로세스NAVER D2
 

Viewers also liked (20)

웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
 
사장이 좋아하는 신입 개발자
사장이 좋아하는 신입 개발자 사장이 좋아하는 신입 개발자
사장이 좋아하는 신입 개발자
 
자바스크립트의 암묵적인 강제형변환과 타입캐스팅
자바스크립트의 암묵적인 강제형변환과 타입캐스팅자바스크립트의 암묵적인 강제형변환과 타입캐스팅
자바스크립트의 암묵적인 강제형변환과 타입캐스팅
 
HTML5 게임 엔진 - OK캐쉬백 게임이벤트 개발 사례
HTML5 게임 엔진 - OK캐쉬백 게임이벤트 개발 사례HTML5 게임 엔진 - OK캐쉬백 게임이벤트 개발 사례
HTML5 게임 엔진 - OK캐쉬백 게임이벤트 개발 사례
 
프론트엔드 애니메이션의 정수
프론트엔드 애니메이션의 정수프론트엔드 애니메이션의 정수
프론트엔드 애니메이션의 정수
 
Do you Promise?
Do you Promise?Do you Promise?
Do you Promise?
 
개발자 혼자서 RPG 게임 만들기
개발자 혼자서 RPG 게임 만들기개발자 혼자서 RPG 게임 만들기
개발자 혼자서 RPG 게임 만들기
 
모바일 무한 스크롤 개발
모바일 무한 스크롤 개발모바일 무한 스크롤 개발
모바일 무한 스크롤 개발
 
개발자를 위한 웹표준 & 웹접근성이야기
개발자를 위한 웹표준 & 웹접근성이야기개발자를 위한 웹표준 & 웹접근성이야기
개발자를 위한 웹표준 & 웹접근성이야기
 
W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망
W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망
W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망
 
Resource Handling in Spring MVC
Resource Handling in Spring MVCResource Handling in Spring MVC
Resource Handling in Spring MVC
 
[D2 오픈세미나]5.html5 api 테트리스게임_이진권
[D2 오픈세미나]5.html5 api 테트리스게임_이진권[D2 오픈세미나]5.html5 api 테트리스게임_이진권
[D2 오픈세미나]5.html5 api 테트리스게임_이진권
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyond
 
[D2 오픈세미나]2.browser engine 이형욱_20140523
[D2 오픈세미나]2.browser engine 이형욱_20140523[D2 오픈세미나]2.browser engine 이형욱_20140523
[D2 오픈세미나]2.browser engine 이형욱_20140523
 
최전방 생존법 - 프론트엔드 개발자로 살아가기
최전방 생존법 - 프론트엔드 개발자로 살아가기최전방 생존법 - 프론트엔드 개발자로 살아가기
최전방 생존법 - 프론트엔드 개발자로 살아가기
 
Arcus
ArcusArcus
Arcus
 
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
 
Construct 2를 이용한 2시간 만에 스마트폰 게임만들기
Construct 2를 이용한 2시간 만에 스마트폰 게임만들기Construct 2를 이용한 2시간 만에 스마트폰 게임만들기
Construct 2를 이용한 2시간 만에 스마트폰 게임만들기
 
1.openseminar
1.openseminar1.openseminar
1.openseminar
 
5.yobi를 활용한 개발자 협업 및 배포 프로세스
5.yobi를 활용한 개발자 협업 및 배포 프로세스5.yobi를 활용한 개발자 협업 및 배포 프로세스
5.yobi를 활용한 개발자 협업 및 배포 프로세스
 

Similar to [별천지 세미나] HTML5 is Ready: Fastbook 기술적 분석

D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기Soojin Ro
 
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기Miyu Park
 
Springcamp spring boot intro
Springcamp spring boot introSpringcamp spring boot intro
Springcamp spring boot introJae-il Lee
 
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018devCAT Studio, NEXON
 
Java script 신입교육
Java script 신입교육Java script 신입교육
Java script 신입교육준성 황
 
제14회 JCO Presentation - Build Your Big Data Platform
제14회 JCO Presentation - Build Your Big Data Platform제14회 JCO Presentation - Build Your Big Data Platform
제14회 JCO Presentation - Build Your Big Data PlatformBYOUNG GON KIM
 
진화하는 소셜 큐레이션 서비스와 관련 기술
진화하는 소셜 큐레이션 서비스와 관련 기술진화하는 소셜 큐레이션 서비스와 관련 기술
진화하는 소셜 큐레이션 서비스와 관련 기술Taegon Kim
 
How to implement your dream 20150427
How to implement your dream 20150427How to implement your dream 20150427
How to implement your dream 20150427Will Kim
 
AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In ProductionMooYeol Lee
 
포트폴리오 김규하
포트폴리오 김규하포트폴리오 김규하
포트폴리오 김규하GyooHa Kim
 
Pg report 20161010_02
Pg report 20161010_02Pg report 20161010_02
Pg report 20161010_02PgDay.Seoul
 
I/O Extended 2019 Seoul - What's New in Web
I/O Extended 2019 Seoul - What's New in WebI/O Extended 2019 Seoul - What's New in Web
I/O Extended 2019 Seoul - What's New in WebHanboramRobinJang
 
구글시트로 개발자 해방시키기
구글시트로 개발자 해방시키기구글시트로 개발자 해방시키기
구글시트로 개발자 해방시키기legacycoder
 
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리Sa-ryong Kang
 
K모바일발표 111026 하이브리드ux_배포용
K모바일발표 111026 하이브리드ux_배포용K모바일발표 111026 하이브리드ux_배포용
K모바일발표 111026 하이브리드ux_배포용jinwook shin
 
KTH_Detail day_화성에서 온 개발자 금성에서 온 기획자 시리즈_3차_아이폰 앱 개발 프로세스_최명진_20120516
KTH_Detail day_화성에서 온 개발자 금성에서 온 기획자 시리즈_3차_아이폰 앱 개발 프로세스_최명진_20120516KTH_Detail day_화성에서 온 개발자 금성에서 온 기획자 시리즈_3차_아이폰 앱 개발 프로세스_최명진_20120516
KTH_Detail day_화성에서 온 개발자 금성에서 온 기획자 시리즈_3차_아이폰 앱 개발 프로세스_최명진_20120516KTH, 케이티하이텔
 
NRISE 개발스택
NRISE 개발스택NRISE 개발스택
NRISE 개발스택Moon Soo Kim
 
왜 레진코믹스는 구글앱엔진을 선택했나
왜 레진코믹스는 구글앱엔진을 선택했나왜 레진코믹스는 구글앱엔진을 선택했나
왜 레진코믹스는 구글앱엔진을 선택했나소리 강
 
MongoDB in use(김인범, mongodb korea)
MongoDB in use(김인범, mongodb korea)MongoDB in use(김인범, mongodb korea)
MongoDB in use(김인범, mongodb korea)InBum Kim
 

Similar to [별천지 세미나] HTML5 is Ready: Fastbook 기술적 분석 (20)

D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
D2 캠퍼스 세미나 - 학생 개발자에서 신입 개발자로 한단계 업그레이드 하기
 
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
 
Springcamp spring boot intro
Springcamp spring boot introSpringcamp spring boot intro
Springcamp spring boot intro
 
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
 
Java script 신입교육
Java script 신입교육Java script 신입교육
Java script 신입교육
 
제14회 JCO Presentation - Build Your Big Data Platform
제14회 JCO Presentation - Build Your Big Data Platform제14회 JCO Presentation - Build Your Big Data Platform
제14회 JCO Presentation - Build Your Big Data Platform
 
진화하는 소셜 큐레이션 서비스와 관련 기술
진화하는 소셜 큐레이션 서비스와 관련 기술진화하는 소셜 큐레이션 서비스와 관련 기술
진화하는 소셜 큐레이션 서비스와 관련 기술
 
How to implement your dream 20150427
How to implement your dream 20150427How to implement your dream 20150427
How to implement your dream 20150427
 
AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In Production
 
포트폴리오 김규하
포트폴리오 김규하포트폴리오 김규하
포트폴리오 김규하
 
Pg report 20161010_02
Pg report 20161010_02Pg report 20161010_02
Pg report 20161010_02
 
I/O Extended 2019 Seoul - What's New in Web
I/O Extended 2019 Seoul - What's New in WebI/O Extended 2019 Seoul - What's New in Web
I/O Extended 2019 Seoul - What's New in Web
 
구글시트로 개발자 해방시키기
구글시트로 개발자 해방시키기구글시트로 개발자 해방시키기
구글시트로 개발자 해방시키기
 
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
Droid knights 2019 - (Large-scale App을 위한) Android Architecture 총정리
 
K모바일발표 111026 하이브리드ux_배포용
K모바일발표 111026 하이브리드ux_배포용K모바일발표 111026 하이브리드ux_배포용
K모바일발표 111026 하이브리드ux_배포용
 
KTH_Detail day_화성에서 온 개발자 금성에서 온 기획자 시리즈_3차_아이폰 앱 개발 프로세스_최명진_20120516
KTH_Detail day_화성에서 온 개발자 금성에서 온 기획자 시리즈_3차_아이폰 앱 개발 프로세스_최명진_20120516KTH_Detail day_화성에서 온 개발자 금성에서 온 기획자 시리즈_3차_아이폰 앱 개발 프로세스_최명진_20120516
KTH_Detail day_화성에서 온 개발자 금성에서 온 기획자 시리즈_3차_아이폰 앱 개발 프로세스_최명진_20120516
 
NRISE 개발스택
NRISE 개발스택NRISE 개발스택
NRISE 개발스택
 
2017 summer go_study
2017 summer go_study2017 summer go_study
2017 summer go_study
 
왜 레진코믹스는 구글앱엔진을 선택했나
왜 레진코믹스는 구글앱엔진을 선택했나왜 레진코믹스는 구글앱엔진을 선택했나
왜 레진코믹스는 구글앱엔진을 선택했나
 
MongoDB in use(김인범, mongodb korea)
MongoDB in use(김인범, mongodb korea)MongoDB in use(김인범, mongodb korea)
MongoDB in use(김인범, mongodb korea)
 

Recently uploaded

Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 

Recently uploaded (6)

Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 

[별천지 세미나] HTML5 is Ready: Fastbook 기술적 분석