SlideShare a Scribd company logo
1 of 35
Download to read offline
JMC 를 이용한 고성능 애니메이션 구현하기
2 / JMC 고성능 애니메이션 구현하기 
모바일 웹에서 성능이란? 
페이지 로딩 속도 
사용자 터치 반응 속도 
브라우저 랜더링 속도 
부드러운 애니메이션 동작
목차 
1. 브라우저 랜더링 과정 이해하기 
2. 부드러운 애니메이션 구현하기 
3. Q & A
1. 브라우저 랜더링 과정 이해하기
5 / JMC 고성능 애니메이션 구현하기 
1. 브라우저 랜더링 과정 이해하기 
계산 
반영 
Render 
Layer 
대상 추출
6 / JMC 고성능 애니메이션 구현하기 
1. 브라우저 랜더링 과정 이해하기 
div (DOM2) 
div (DOM1) 
div (DOM3) 
div (DOM4) 
div (DOM5) 
div (DOM6) 
body 
html 
DOM Tree
7 / JMC 고성능 애니메이션 구현하기 
1. 브라우저 랜더링 과정 이해하기 
div (DOM2) 
div (DOM1) 
div (DOM3) 
div (DOM4) 
div (DOM5) 
div (DOM6) 
body 
html 
div (DOM2) 
div (DOM1) 
div (DOM3) 
div (DOM4) 
div (DOM6) 
body 
html 
DOM Tree 
Render Tree 
RenderTree는 화면에 보여지는 영역을 기준으로 구성
8 / JMC 고성능 애니메이션 구현하기 
1. 브라우저 랜더링 과정 이해하기 
div (DOM2) 
div (DOM1) 
div (DOM3) 
div (DOM4) 
div (DOM6) 
body 
html 
Render Tree 
div (DOM4) 
RenderLayer Tree 
Div(DOM4는 transform 3d)로 레이어가 구성되는 영역 
div (DOM4) 
GraphicLayer Tree
9 / JMC 고성능 애니메이션 구현하기 
1. 브라우저 랜더링 과정 이해하기 
크롬의 Timeline으로 본 브라우저 랜더링 과정 
Recalculate Style : 엘리먼트에 스타일이 적용될 때 발생 
Composite Layers : 변경되지 않는 각각의 RenderLayer를 합성할 때 발생
2. 부드러운 애니메이션 구현하기
11 / JMC 고성능 애니메이션 구현하기 
2. 부드러운 애니메이션 구현하기 
1) 애니메이션 구현 방식의 선택 (Timer VS CSS3 방식) 
2) Composite Layer 활용 
3) 하드웨어 가속의 활용
12 / JMC 고성능 애니메이션 구현하기 
2. 부드러운 애니메이션 구현하기 
A. Timer 방식 : setTimeout, setInterval 을 이용한 방식 
0초 
1초 
2초 
1초 간격 
1초 간격 
16.666ms 간격이면? 
60FPS 
1) 애니메이션 구현 방식의 선택
13 / JMC 고성능 애니메이션 구현하기 
B. CSS3 방식 : transition을 이용한 방식. 브라우저가 60FPS를 보장함 브라우저의 UI Thread를 사용하지 않아 간섭이 없음 
CSS3 Animation도 구현 방식은 달라도 작동 방식은 동일함 
Transition 설정 
transitionEnd 이벤트 발생 
2. 부드러운 애니메이션 구현하기 
1) 애니메이션 구현 방식의 선택
14 / JMC 고성능 애니메이션 구현하기 
Timer 방식 
CSS3 방식 
60FPS 보장 
간섭에 영향을 받지 않음 
다양한 이동곡선 구현 
범용적으로 적용 
requestAnimationFrame 
방식은 60FPS 보장 
성능 위주 
다양한 효과, 안전성 위주 
2. 부드러운 애니메이션 구현하기 
1) 애니메이션 구현 방식의 선택
15 / JMC 고성능 애니메이션 구현하기 
window.requestAnimationFrame(fnCallback) 
jindo.m.useTimingFunction () 
2. 부드러운 애니메이션 구현하기 
1) 애니메이션 구현 방식의 선택 
JMC의 활용
16 / JMC 고성능 애니메이션 구현하기 
2. 부드러운 애니메이션 구현하기 
1) 애니메이션 구현 방식의 선택 (Timer VS CSS3 방식) 
2) Composite Layer 활용 
3) 하드웨어 가속의 활용
17 / JMC 고성능 애니메이션 구현하기 
2. 부드러운 애니메이션 구현하기 
2) Composite Layer 활용 
애니메이션되는 동안 실제 변경되는 부분은 이동하는 물체의 주변만 변경
18 / JMC 고성능 애니메이션 구현하기 
2. 부드러운 애니메이션 구현하기 
2) Composite Layer 활용 
Composite Layer 는 레이어 병합(composite)을 통해 
새로운 화면을 구성하여 실제 화면에 출력하는 기능을 한다. 
Shape layer 
back layer 
모든 페이지는 Root layer를 가진다. (링크) 
3d, perspective transform, CSS Animation, CSS filter를 사용하는 경우 (링크) 
VIDEO, CANVAS 태그를 사용하는 경우 
Flash나 ActiveX를 사용하는 경우 
자식 엘리먼트가 layer로 구성되어 있을 경우 
z-index가 낮은 형제 엘리먼트가 layer로 구성되어 있을 경우, 대상 엘리먼트도 layer로 구성됨
19 / JMC 고성능 애니메이션 구현하기 
2. 부드러운 애니메이션 구현하기 
2) Composite Layer 활용 
애니메이션 1 frame의 랜더링 과정 
비용이 큰 Layout 작업
20 / JMC 고성능 애니메이션 구현하기 
Reflows are very expensive in terms of performance, and is one of the main causes of slow 
DOM scripts, especially on devices with low processing power, such as phones.In many cases, they are equivalent to laying out the entire page again. 
~~~~~ 
~~~~~ 
~~~~~~~ 
~~~~~~~ 
~~~~ ~~ 
~~~~ ~~ 
Layout 변경 
Reflow 발생 
2. 부드러운 애니메이션 구현하기 
2) Composite Layer 활용
21 / JMC 고성능 애니메이션 구현하기 
2. 부드러운 애니메이션 구현하기 
2) Composite Layer 활용 
비용이 큰 Layout과 불필요한 paint를 제거하라~! 
애니메이션 1 frame의 랜더링 과정 
Composite layers 작업에 영향을 미치는 요소만 처리 하는 게 가장 효과적
22 / JMC 고성능 애니메이션 구현하기 
2. 부드러운 애니메이션 구현하기 
A. Layout 변경을 유발하는 속성 
2) Composite Layer 활용
23 / JMC 고성능 애니메이션 구현하기 
2. 부드러운 애니메이션 구현하기 
B. Paint 변경을 유발하는 속성 
2) Composite Layer 활용
24 / JMC 고성능 애니메이션 구현하기 
2. 부드러운 애니메이션 구현하기 
C. Composite Layers 를 유발하는 속성 
2) Composite Layer 활용 
transform - translate(3d) - sale(3d) - rotate(3d) - … 
opacity
25 / JMC 고성능 애니메이션 구현하기 
Left, top, right, bottom 변경 안하면…. 
어떻게 애니메이션을 구현하라는 거지? 
2. 부드러운 애니메이션 구현하기 
2) Composite Layer 활용
26 / JMC 고성능 애니메이션 구현하기 
2. 부드러운 애니메이션 구현하기 
style 대신 transform과 opacity를 사용하세요. 
위치 변경 
크기 변경 
display 변경 
transform : translate(nPx,nPx); transform : translate3d(nPx,nPx,nPx); 
transform : translateX(nPx); 
transform : translateY(nPx); 
transform : translateZ(nPx); 
transform : scale(n) 
opacity : 0 … 1 
2) Composite Layer 활용 
회전 
transform : rotate(ndeg)
27 / JMC 고성능 애니메이션 구현하기 
2. 부드러운 애니메이션 구현하기 
2) Composite Layer 활용
28 / JMC 고성능 애니메이션 구현하기 
2. 부드러운 애니메이션 구현하기 
1) 애니메이션 구현 방식의 선택 (Timer VS CSS3 방식) 
2) Composite Layer 활용 
3) 하드웨어 가속의 활용
29 / JMC 고성능 애니메이션 구현하기 
2. 부드러운 애니메이션 구현하기 
3) 하드웨어 가속 활용 
OpenGL 
texture 
texture 
texture 
GraphicLayers 
RenderLayers 
Video Memory 
CPU 
GPU
30 / JMC 고성능 애니메이션 구현하기 
2. 부드러운 애니메이션 구현하기 
3) 하드웨어 가속 활용 
하드웨어 가속은 다음과 같은 속성을 사용할 경우 적용된다. 
TRANSFORM 3D 
•-webkit-transform : translate3d(n,n,n) 
•-webkit-transform : translateZ(n) 
•-webkit-transform : rotateX(angle) 
•-webkit-transform : rotateY(angle) 
•-webkit-transform : rotate3d(n,n,n,angle) 
•-webkit-transform : scaleZ(n) 
•-webkit-transform : scale3d(n,n,n) 
•-webkit-transform : perspective(n) 
opacity …
31 / JMC 고성능 애니메이션 구현하기 
2. 부드러운 애니메이션 구현하기 
3) 하드웨어 가속 활용 
iOS, Android 4.0, 4.1~ 
Android ~2.x 
Android 3.x, 4.x
32 / JMC 고성능 애니메이션 구현하기 
jindo.m.useCss3d() 
2. 부드러운 애니메이션 구현하기 
JMC의 활용 
3) 하드웨어 가속 활용
33 / JMC 고성능 애니메이션 구현하기 
데모 – 애니메이션 화면 튜닝하기 
2. 부드러운 애니메이션 구현하기 
Step1. layout 변경이 되는 요소를 transform이나 opacity로 변경한다. 
Step2. 하드웨어 가속을 적용하여 각 box를 Layer로 구성한다. 
Step3. 적합한 애니메이션 구현 방법을 결정하여 적용한다.
Q & A 
Email : sculove@gmail.com 
Blog : http://sculove.pe.kr 
Linked : http://me2.do/G7dQOWOy
감사합니다

More Related Content

What's hot

[토크아이티] 프런트엔드 개발 시작하기 저자 특강
[토크아이티] 프런트엔드 개발 시작하기 저자 특강 [토크아이티] 프런트엔드 개발 시작하기 저자 특강
[토크아이티] 프런트엔드 개발 시작하기 저자 특강 우영 주
 
크롬 개발자 도구 소개 및 사용법
크롬 개발자 도구 소개 및 사용법크롬 개발자 도구 소개 및 사용법
크롬 개발자 도구 소개 및 사용법Gihyo Joshua Jang
 
[D2 오픈세미나]4.진보된개발환경 주우영
[D2 오픈세미나]4.진보된개발환경 주우영[D2 오픈세미나]4.진보된개발환경 주우영
[D2 오픈세미나]4.진보된개발환경 주우영NAVER D2
 
The LESS 기초 : The Dynamic Styleshee Language Basic
The LESS 기초 : The Dynamic Styleshee Language BasicThe LESS 기초 : The Dynamic Styleshee Language Basic
The LESS 기초 : The Dynamic Styleshee Language Basicjeong seok yang
 
FT직군의 현재와 미래 - 홍윤표
FT직군의 현재와 미래 - 홍윤표FT직군의 현재와 미래 - 홍윤표
FT직군의 현재와 미래 - 홍윤표Daum DNA
 
프론트엔드 개발 첫걸음
프론트엔드 개발 첫걸음프론트엔드 개발 첫걸음
프론트엔드 개발 첫걸음DataUs
 
웹표준의 이해
웹표준의 이해웹표준의 이해
웹표준의 이해Leehooan
 
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
 
차세대 웹 환경에서의 UI/UX 기술 표준화 동향
차세대 웹 환경에서의 UI/UX 기술 표준화 동향차세대 웹 환경에서의 UI/UX 기술 표준화 동향
차세대 웹 환경에서의 UI/UX 기술 표준화 동향Jonathan Jeon
 
우리가 몰랐던 크롬 개발자 도구
우리가 몰랐던 크롬 개발자 도구우리가 몰랐던 크롬 개발자 도구
우리가 몰랐던 크롬 개발자 도구Jae Sung Park
 
JavaScript MEAN 스택
JavaScript MEAN 스택JavaScript MEAN 스택
JavaScript MEAN 스택Tai Hoon KIM
 
NAVER의 웹/HTML5환경 대응 현황
NAVER의 웹/HTML5환경 대응 현황NAVER의 웹/HTML5환경 대응 현황
NAVER의 웹/HTML5환경 대응 현황NAVER Engineering
 
[Naver d2]html5 canvas overview
[Naver d2]html5 canvas overview[Naver d2]html5 canvas overview
[Naver d2]html5 canvas overviewNAVER D2
 
[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]3.web view hybridapp[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]3.web view hybridappNAVER D2
 
[D2 오픈세미나]1.html5 api 옥상훈
[D2 오픈세미나]1.html5 api 옥상훈[D2 오픈세미나]1.html5 api 옥상훈
[D2 오픈세미나]1.html5 api 옥상훈NAVER D2
 
드래그홈2013표준제안서
드래그홈2013표준제안서드래그홈2013표준제안서
드래그홈2013표준제안서draghome
 
Javascript and Web Performance
Javascript and Web PerformanceJavascript and Web Performance
Javascript and Web PerformanceJonathan Jeon
 
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문종훈 박
 

What's hot (20)

[토크아이티] 프런트엔드 개발 시작하기 저자 특강
[토크아이티] 프런트엔드 개발 시작하기 저자 특강 [토크아이티] 프런트엔드 개발 시작하기 저자 특강
[토크아이티] 프런트엔드 개발 시작하기 저자 특강
 
크롬 개발자 도구 소개 및 사용법
크롬 개발자 도구 소개 및 사용법크롬 개발자 도구 소개 및 사용법
크롬 개발자 도구 소개 및 사용법
 
[D2 오픈세미나]4.진보된개발환경 주우영
[D2 오픈세미나]4.진보된개발환경 주우영[D2 오픈세미나]4.진보된개발환경 주우영
[D2 오픈세미나]4.진보된개발환경 주우영
 
The LESS 기초 : The Dynamic Styleshee Language Basic
The LESS 기초 : The Dynamic Styleshee Language BasicThe LESS 기초 : The Dynamic Styleshee Language Basic
The LESS 기초 : The Dynamic Styleshee Language Basic
 
FT직군의 현재와 미래 - 홍윤표
FT직군의 현재와 미래 - 홍윤표FT직군의 현재와 미래 - 홍윤표
FT직군의 현재와 미래 - 홍윤표
 
프론트엔드 개발 첫걸음
프론트엔드 개발 첫걸음프론트엔드 개발 첫걸음
프론트엔드 개발 첫걸음
 
웹표준의 이해
웹표준의 이해웹표준의 이해
웹표준의 이해
 
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...
 
차세대 웹 환경에서의 UI/UX 기술 표준화 동향
차세대 웹 환경에서의 UI/UX 기술 표준화 동향차세대 웹 환경에서의 UI/UX 기술 표준화 동향
차세대 웹 환경에서의 UI/UX 기술 표준화 동향
 
우리가 몰랐던 크롬 개발자 도구
우리가 몰랐던 크롬 개발자 도구우리가 몰랐던 크롬 개발자 도구
우리가 몰랐던 크롬 개발자 도구
 
JavaScript MEAN 스택
JavaScript MEAN 스택JavaScript MEAN 스택
JavaScript MEAN 스택
 
NAVER의 웹/HTML5환경 대응 현황
NAVER의 웹/HTML5환경 대응 현황NAVER의 웹/HTML5환경 대응 현황
NAVER의 웹/HTML5환경 대응 현황
 
[Naver d2]html5 canvas overview
[Naver d2]html5 canvas overview[Naver d2]html5 canvas overview
[Naver d2]html5 canvas overview
 
[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]3.web view hybridapp[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]3.web view hybridapp
 
[D2 오픈세미나]1.html5 api 옥상훈
[D2 오픈세미나]1.html5 api 옥상훈[D2 오픈세미나]1.html5 api 옥상훈
[D2 오픈세미나]1.html5 api 옥상훈
 
Cooking jquery
Cooking jqueryCooking jquery
Cooking jquery
 
드래그홈2013표준제안서
드래그홈2013표준제안서드래그홈2013표준제안서
드래그홈2013표준제안서
 
Javascript and Web Performance
Javascript and Web PerformanceJavascript and Web Performance
Javascript and Web Performance
 
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
[리뷰] 풀스택 개발자를 위한 MEAM 스택 입문
 
HTML5 와 미래웹기술 part 3
HTML5 와 미래웹기술 part 3HTML5 와 미래웹기술 part 3
HTML5 와 미래웹기술 part 3
 

Viewers also liked

모바일웹Ui개발 저자세미나 0부
모바일웹Ui개발 저자세미나 0부모바일웹Ui개발 저자세미나 0부
모바일웹Ui개발 저자세미나 0부NAVER D2
 
모바일웹Ui개발 저자세미나 2부
모바일웹Ui개발 저자세미나 2부모바일웹Ui개발 저자세미나 2부
모바일웹Ui개발 저자세미나 2부NAVER D2
 
[WEB UI ADVANCED] Mobile WEB 개발하기
[WEB UI ADVANCED] Mobile WEB 개발하기[WEB UI ADVANCED] Mobile WEB 개발하기
[WEB UI ADVANCED] Mobile WEB 개발하기Jae Woo Woo
 
C5 모바일 웹ui개발 아직도 맨땅에 삽질부터 하십니까
C5 모바일 웹ui개발 아직도 맨땅에 삽질부터 하십니까C5 모바일 웹ui개발 아직도 맨땅에 삽질부터 하십니까
C5 모바일 웹ui개발 아직도 맨땅에 삽질부터 하십니까NAVER D2
 
프론트엔드스터디 E02 css dom
프론트엔드스터디 E02 css dom프론트엔드스터디 E02 css dom
프론트엔드스터디 E02 css domYoung-Beom Rhee
 
프론트엔드스터디 E05 js closure oop
프론트엔드스터디 E05 js closure oop프론트엔드스터디 E05 js closure oop
프론트엔드스터디 E05 js closure oopYoung-Beom Rhee
 
자바카페 프론트엔드스터디 E01 - HTML5
자바카페 프론트엔드스터디 E01 - HTML5자바카페 프론트엔드스터디 E01 - HTML5
자바카페 프론트엔드스터디 E01 - HTML5Young-Beom Rhee
 
프론트엔드스터디 E03 - Javascript intro.
프론트엔드스터디 E03 - Javascript intro.프론트엔드스터디 E03 - Javascript intro.
프론트엔드스터디 E03 - Javascript intro.Young-Beom Rhee
 
프론트엔드스터디 E04 js function
프론트엔드스터디 E04 js function프론트엔드스터디 E04 js function
프론트엔드스터디 E04 js functionYoung-Beom Rhee
 
Angularjs 도입 선택 가이드
Angularjs 도입 선택 가이드Angularjs 도입 선택 가이드
Angularjs 도입 선택 가이드NAVER D2
 
[BOOST™] 광고 후 잠재고객 어떻게 할 것인가?
[BOOST™] 광고 후 잠재고객 어떻게 할 것인가?[BOOST™] 광고 후 잠재고객 어떻게 할 것인가?
[BOOST™] 광고 후 잠재고객 어떻게 할 것인가?BizSpring Inc.
 
[D2 오픈세미나]5.html5 api 테트리스게임_이진권
[D2 오픈세미나]5.html5 api 테트리스게임_이진권[D2 오픈세미나]5.html5 api 테트리스게임_이진권
[D2 오픈세미나]5.html5 api 테트리스게임_이진권NAVER D2
 
가볍게 살펴보는 AngularJS
가볍게 살펴보는 AngularJS가볍게 살펴보는 AngularJS
가볍게 살펴보는 AngularJSJae Sung Park
 
서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드KwangSeob Jeong
 
[D2 오픈세미나]2.browser engine 이형욱_20140523
[D2 오픈세미나]2.browser engine 이형욱_20140523[D2 오픈세미나]2.browser engine 이형욱_20140523
[D2 오픈세미나]2.browser engine 이형욱_20140523NAVER D2
 
[132] rust
[132] rust[132] rust
[132] rustNAVER D2
 

Viewers also liked (20)

모바일웹Ui개발 저자세미나 0부
모바일웹Ui개발 저자세미나 0부모바일웹Ui개발 저자세미나 0부
모바일웹Ui개발 저자세미나 0부
 
모바일웹Ui개발 저자세미나 2부
모바일웹Ui개발 저자세미나 2부모바일웹Ui개발 저자세미나 2부
모바일웹Ui개발 저자세미나 2부
 
[WEB UI ADVANCED] Mobile WEB 개발하기
[WEB UI ADVANCED] Mobile WEB 개발하기[WEB UI ADVANCED] Mobile WEB 개발하기
[WEB UI ADVANCED] Mobile WEB 개발하기
 
C5 모바일 웹ui개발 아직도 맨땅에 삽질부터 하십니까
C5 모바일 웹ui개발 아직도 맨땅에 삽질부터 하십니까C5 모바일 웹ui개발 아직도 맨땅에 삽질부터 하십니까
C5 모바일 웹ui개발 아직도 맨땅에 삽질부터 하십니까
 
프론트엔드스터디 E02 css dom
프론트엔드스터디 E02 css dom프론트엔드스터디 E02 css dom
프론트엔드스터디 E02 css dom
 
프론트엔드스터디 E05 js closure oop
프론트엔드스터디 E05 js closure oop프론트엔드스터디 E05 js closure oop
프론트엔드스터디 E05 js closure oop
 
자바카페 프론트엔드스터디 E01 - HTML5
자바카페 프론트엔드스터디 E01 - HTML5자바카페 프론트엔드스터디 E01 - HTML5
자바카페 프론트엔드스터디 E01 - HTML5
 
프론트엔드스터디 E03 - Javascript intro.
프론트엔드스터디 E03 - Javascript intro.프론트엔드스터디 E03 - Javascript intro.
프론트엔드스터디 E03 - Javascript intro.
 
프론트엔드스터디 E04 js function
프론트엔드스터디 E04 js function프론트엔드스터디 E04 js function
프론트엔드스터디 E04 js function
 
Angularjs 도입 선택 가이드
Angularjs 도입 선택 가이드Angularjs 도입 선택 가이드
Angularjs 도입 선택 가이드
 
Whats jindo
Whats jindoWhats jindo
Whats jindo
 
미래웹기술연구소는 왜 Sencha 를 채택하였는가?
미래웹기술연구소는 왜 Sencha 를 채택하였는가?미래웹기술연구소는 왜 Sencha 를 채택하였는가?
미래웹기술연구소는 왜 Sencha 를 채택하였는가?
 
[BOOST™] 광고 후 잠재고객 어떻게 할 것인가?
[BOOST™] 광고 후 잠재고객 어떻게 할 것인가?[BOOST™] 광고 후 잠재고객 어떻게 할 것인가?
[BOOST™] 광고 후 잠재고객 어떻게 할 것인가?
 
[D2 오픈세미나]5.html5 api 테트리스게임_이진권
[D2 오픈세미나]5.html5 api 테트리스게임_이진권[D2 오픈세미나]5.html5 api 테트리스게임_이진권
[D2 오픈세미나]5.html5 api 테트리스게임_이진권
 
가볍게 살펴보는 AngularJS
가볍게 살펴보는 AngularJS가볍게 살펴보는 AngularJS
가볍게 살펴보는 AngularJS
 
Flux 예제 분석 2
Flux 예제 분석 2Flux 예제 분석 2
Flux 예제 분석 2
 
서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드
 
[D2 오픈세미나]2.browser engine 이형욱_20140523
[D2 오픈세미나]2.browser engine 이형욱_20140523[D2 오픈세미나]2.browser engine 이형욱_20140523
[D2 오픈세미나]2.browser engine 이형욱_20140523
 
[132] rust
[132] rust[132] rust
[132] rust
 
Git flow
Git flowGit flow
Git flow
 

Similar to 모바일웹Ui개발 저자세미나 1부

전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012devCAT Studio, NEXON
 
(NEMO-UX) WAYLAND 기반 컴포지팅 최적화 기술 소개
(NEMO-UX) WAYLAND 기반 컴포지팅 최적화 기술 소개(NEMO-UX) WAYLAND 기반 컴포지팅 최적화 기술 소개
(NEMO-UX) WAYLAND 기반 컴포지팅 최적화 기술 소개nemoux
 
윈도우 매니저 스터디: 1. 윈도우 매니저 출력
윈도우 매니저 스터디: 1. 윈도우 매니저 출력윈도우 매니저 스터디: 1. 윈도우 매니저 출력
윈도우 매니저 스터디: 1. 윈도우 매니저 출력nemoux
 
윈도우 매니저 스터디: 2. 윈도우 매니저 최적화
윈도우 매니저 스터디: 2. 윈도우 매니저 최적화윈도우 매니저 스터디: 2. 윈도우 매니저 최적화
윈도우 매니저 스터디: 2. 윈도우 매니저 최적화nemoux
 
고성능 애니메이션 개발 기법 및 성능 최적화
고성능 애니메이션 개발 기법 및 성능 최적화고성능 애니메이션 개발 기법 및 성능 최적화
고성능 애니메이션 개발 기법 및 성능 최적화Byung Ho Lee
 
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013devCAT Studio, NEXON
 
Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Minsu Park
 
Kgc2013 defense technica_converting_이상윤
Kgc2013 defense technica_converting_이상윤Kgc2013 defense technica_converting_이상윤
Kgc2013 defense technica_converting_이상윤SangYun Yi
 
실 사례로 보는 고객 디지털 경험 지키기
실 사례로 보는 고객 디지털 경험 지키기실 사례로 보는 고객 디지털 경험 지키기
실 사례로 보는 고객 디지털 경험 지키기IMQA
 
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기Chang W. Doh
 
증강현실을 통한 두더지잡기 게임
증강현실을 통한 두더지잡기 게임증강현실을 통한 두더지잡기 게임
증강현실을 통한 두더지잡기 게임Junhee Han
 
gametech 2012 Gladius project
gametech 2012 Gladius projectgametech 2012 Gladius project
gametech 2012 Gladius projectWuwon Yu
 
윈도우 매니저 스터디: 0.윈도우 매니저 소개
윈도우 매니저 스터디: 0.윈도우 매니저 소개윈도우 매니저 스터디: 0.윈도우 매니저 소개
윈도우 매니저 스터디: 0.윈도우 매니저 소개nemoux
 
20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)Dongho Kim
 
증강현실을 통한 두더지잡기 게임
증강현실을 통한 두더지잡기 게임증강현실을 통한 두더지잡기 게임
증강현실을 통한 두더지잡기 게임Junhee Han
 
[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shadingMinGeun Park
 
증강현실을 통한 두더지잡기 게임
증강현실을 통한 두더지잡기 게임증강현실을 통한 두더지잡기 게임
증강현실을 통한 두더지잡기 게임Junhee Han
 
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101) 모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101) YoungSu Son
 

Similar to 모바일웹Ui개발 저자세미나 1부 (20)

전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
 
(NEMO-UX) WAYLAND 기반 컴포지팅 최적화 기술 소개
(NEMO-UX) WAYLAND 기반 컴포지팅 최적화 기술 소개(NEMO-UX) WAYLAND 기반 컴포지팅 최적화 기술 소개
(NEMO-UX) WAYLAND 기반 컴포지팅 최적화 기술 소개
 
윈도우 매니저 스터디: 1. 윈도우 매니저 출력
윈도우 매니저 스터디: 1. 윈도우 매니저 출력윈도우 매니저 스터디: 1. 윈도우 매니저 출력
윈도우 매니저 스터디: 1. 윈도우 매니저 출력
 
윈도우 매니저 스터디: 2. 윈도우 매니저 최적화
윈도우 매니저 스터디: 2. 윈도우 매니저 최적화윈도우 매니저 스터디: 2. 윈도우 매니저 최적화
윈도우 매니저 스터디: 2. 윈도우 매니저 최적화
 
고성능 애니메이션 개발 기법 및 성능 최적화
고성능 애니메이션 개발 기법 및 성능 최적화고성능 애니메이션 개발 기법 및 성능 최적화
고성능 애니메이션 개발 기법 및 성능 최적화
 
Devtree illu
Devtree illuDevtree illu
Devtree illu
 
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
 
Gametech2015
Gametech2015Gametech2015
Gametech2015
 
Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)
 
Kgc2013 defense technica_converting_이상윤
Kgc2013 defense technica_converting_이상윤Kgc2013 defense technica_converting_이상윤
Kgc2013 defense technica_converting_이상윤
 
실 사례로 보는 고객 디지털 경험 지키기
실 사례로 보는 고객 디지털 경험 지키기실 사례로 보는 고객 디지털 경험 지키기
실 사례로 보는 고객 디지털 경험 지키기
 
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
 
증강현실을 통한 두더지잡기 게임
증강현실을 통한 두더지잡기 게임증강현실을 통한 두더지잡기 게임
증강현실을 통한 두더지잡기 게임
 
gametech 2012 Gladius project
gametech 2012 Gladius projectgametech 2012 Gladius project
gametech 2012 Gladius project
 
윈도우 매니저 스터디: 0.윈도우 매니저 소개
윈도우 매니저 스터디: 0.윈도우 매니저 소개윈도우 매니저 스터디: 0.윈도우 매니저 소개
윈도우 매니저 스터디: 0.윈도우 매니저 소개
 
20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)
 
증강현실을 통한 두더지잡기 게임
증강현실을 통한 두더지잡기 게임증강현실을 통한 두더지잡기 게임
증강현실을 통한 두더지잡기 게임
 
[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading
 
증강현실을 통한 두더지잡기 게임
증강현실을 통한 두더지잡기 게임증강현실을 통한 두더지잡기 게임
증강현실을 통한 두더지잡기 게임
 
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101) 모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
 

More from NAVER D2

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다NAVER D2
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...NAVER D2
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기NAVER D2
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발NAVER D2
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈NAVER D2
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&ANAVER D2
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기NAVER D2
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep LearningNAVER D2
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applicationsNAVER D2
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingNAVER D2
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지NAVER D2
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기NAVER D2
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화NAVER D2
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)NAVER D2
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기NAVER D2
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual SearchNAVER D2
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화NAVER D2
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지NAVER D2
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터NAVER D2
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?NAVER D2
 

More from NAVER D2 (20)

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual Search
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?
 

Recently uploaded

캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
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
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
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
 

Recently uploaded (6)

캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
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)
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
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 ...
 

모바일웹Ui개발 저자세미나 1부

  • 1. JMC 를 이용한 고성능 애니메이션 구현하기
  • 2. 2 / JMC 고성능 애니메이션 구현하기 모바일 웹에서 성능이란? 페이지 로딩 속도 사용자 터치 반응 속도 브라우저 랜더링 속도 부드러운 애니메이션 동작
  • 3. 목차 1. 브라우저 랜더링 과정 이해하기 2. 부드러운 애니메이션 구현하기 3. Q & A
  • 4. 1. 브라우저 랜더링 과정 이해하기
  • 5. 5 / JMC 고성능 애니메이션 구현하기 1. 브라우저 랜더링 과정 이해하기 계산 반영 Render Layer 대상 추출
  • 6. 6 / JMC 고성능 애니메이션 구현하기 1. 브라우저 랜더링 과정 이해하기 div (DOM2) div (DOM1) div (DOM3) div (DOM4) div (DOM5) div (DOM6) body html DOM Tree
  • 7. 7 / JMC 고성능 애니메이션 구현하기 1. 브라우저 랜더링 과정 이해하기 div (DOM2) div (DOM1) div (DOM3) div (DOM4) div (DOM5) div (DOM6) body html div (DOM2) div (DOM1) div (DOM3) div (DOM4) div (DOM6) body html DOM Tree Render Tree RenderTree는 화면에 보여지는 영역을 기준으로 구성
  • 8. 8 / JMC 고성능 애니메이션 구현하기 1. 브라우저 랜더링 과정 이해하기 div (DOM2) div (DOM1) div (DOM3) div (DOM4) div (DOM6) body html Render Tree div (DOM4) RenderLayer Tree Div(DOM4는 transform 3d)로 레이어가 구성되는 영역 div (DOM4) GraphicLayer Tree
  • 9. 9 / JMC 고성능 애니메이션 구현하기 1. 브라우저 랜더링 과정 이해하기 크롬의 Timeline으로 본 브라우저 랜더링 과정 Recalculate Style : 엘리먼트에 스타일이 적용될 때 발생 Composite Layers : 변경되지 않는 각각의 RenderLayer를 합성할 때 발생
  • 11. 11 / JMC 고성능 애니메이션 구현하기 2. 부드러운 애니메이션 구현하기 1) 애니메이션 구현 방식의 선택 (Timer VS CSS3 방식) 2) Composite Layer 활용 3) 하드웨어 가속의 활용
  • 12. 12 / JMC 고성능 애니메이션 구현하기 2. 부드러운 애니메이션 구현하기 A. Timer 방식 : setTimeout, setInterval 을 이용한 방식 0초 1초 2초 1초 간격 1초 간격 16.666ms 간격이면? 60FPS 1) 애니메이션 구현 방식의 선택
  • 13. 13 / JMC 고성능 애니메이션 구현하기 B. CSS3 방식 : transition을 이용한 방식. 브라우저가 60FPS를 보장함 브라우저의 UI Thread를 사용하지 않아 간섭이 없음 CSS3 Animation도 구현 방식은 달라도 작동 방식은 동일함 Transition 설정 transitionEnd 이벤트 발생 2. 부드러운 애니메이션 구현하기 1) 애니메이션 구현 방식의 선택
  • 14. 14 / JMC 고성능 애니메이션 구현하기 Timer 방식 CSS3 방식 60FPS 보장 간섭에 영향을 받지 않음 다양한 이동곡선 구현 범용적으로 적용 requestAnimationFrame 방식은 60FPS 보장 성능 위주 다양한 효과, 안전성 위주 2. 부드러운 애니메이션 구현하기 1) 애니메이션 구현 방식의 선택
  • 15. 15 / JMC 고성능 애니메이션 구현하기 window.requestAnimationFrame(fnCallback) jindo.m.useTimingFunction () 2. 부드러운 애니메이션 구현하기 1) 애니메이션 구현 방식의 선택 JMC의 활용
  • 16. 16 / JMC 고성능 애니메이션 구현하기 2. 부드러운 애니메이션 구현하기 1) 애니메이션 구현 방식의 선택 (Timer VS CSS3 방식) 2) Composite Layer 활용 3) 하드웨어 가속의 활용
  • 17. 17 / JMC 고성능 애니메이션 구현하기 2. 부드러운 애니메이션 구현하기 2) Composite Layer 활용 애니메이션되는 동안 실제 변경되는 부분은 이동하는 물체의 주변만 변경
  • 18. 18 / JMC 고성능 애니메이션 구현하기 2. 부드러운 애니메이션 구현하기 2) Composite Layer 활용 Composite Layer 는 레이어 병합(composite)을 통해 새로운 화면을 구성하여 실제 화면에 출력하는 기능을 한다. Shape layer back layer 모든 페이지는 Root layer를 가진다. (링크) 3d, perspective transform, CSS Animation, CSS filter를 사용하는 경우 (링크) VIDEO, CANVAS 태그를 사용하는 경우 Flash나 ActiveX를 사용하는 경우 자식 엘리먼트가 layer로 구성되어 있을 경우 z-index가 낮은 형제 엘리먼트가 layer로 구성되어 있을 경우, 대상 엘리먼트도 layer로 구성됨
  • 19. 19 / JMC 고성능 애니메이션 구현하기 2. 부드러운 애니메이션 구현하기 2) Composite Layer 활용 애니메이션 1 frame의 랜더링 과정 비용이 큰 Layout 작업
  • 20. 20 / JMC 고성능 애니메이션 구현하기 Reflows are very expensive in terms of performance, and is one of the main causes of slow DOM scripts, especially on devices with low processing power, such as phones.In many cases, they are equivalent to laying out the entire page again. ~~~~~ ~~~~~ ~~~~~~~ ~~~~~~~ ~~~~ ~~ ~~~~ ~~ Layout 변경 Reflow 발생 2. 부드러운 애니메이션 구현하기 2) Composite Layer 활용
  • 21. 21 / JMC 고성능 애니메이션 구현하기 2. 부드러운 애니메이션 구현하기 2) Composite Layer 활용 비용이 큰 Layout과 불필요한 paint를 제거하라~! 애니메이션 1 frame의 랜더링 과정 Composite layers 작업에 영향을 미치는 요소만 처리 하는 게 가장 효과적
  • 22. 22 / JMC 고성능 애니메이션 구현하기 2. 부드러운 애니메이션 구현하기 A. Layout 변경을 유발하는 속성 2) Composite Layer 활용
  • 23. 23 / JMC 고성능 애니메이션 구현하기 2. 부드러운 애니메이션 구현하기 B. Paint 변경을 유발하는 속성 2) Composite Layer 활용
  • 24. 24 / JMC 고성능 애니메이션 구현하기 2. 부드러운 애니메이션 구현하기 C. Composite Layers 를 유발하는 속성 2) Composite Layer 활용 transform - translate(3d) - sale(3d) - rotate(3d) - … opacity
  • 25. 25 / JMC 고성능 애니메이션 구현하기 Left, top, right, bottom 변경 안하면…. 어떻게 애니메이션을 구현하라는 거지? 2. 부드러운 애니메이션 구현하기 2) Composite Layer 활용
  • 26. 26 / JMC 고성능 애니메이션 구현하기 2. 부드러운 애니메이션 구현하기 style 대신 transform과 opacity를 사용하세요. 위치 변경 크기 변경 display 변경 transform : translate(nPx,nPx); transform : translate3d(nPx,nPx,nPx); transform : translateX(nPx); transform : translateY(nPx); transform : translateZ(nPx); transform : scale(n) opacity : 0 … 1 2) Composite Layer 활용 회전 transform : rotate(ndeg)
  • 27. 27 / JMC 고성능 애니메이션 구현하기 2. 부드러운 애니메이션 구현하기 2) Composite Layer 활용
  • 28. 28 / JMC 고성능 애니메이션 구현하기 2. 부드러운 애니메이션 구현하기 1) 애니메이션 구현 방식의 선택 (Timer VS CSS3 방식) 2) Composite Layer 활용 3) 하드웨어 가속의 활용
  • 29. 29 / JMC 고성능 애니메이션 구현하기 2. 부드러운 애니메이션 구현하기 3) 하드웨어 가속 활용 OpenGL texture texture texture GraphicLayers RenderLayers Video Memory CPU GPU
  • 30. 30 / JMC 고성능 애니메이션 구현하기 2. 부드러운 애니메이션 구현하기 3) 하드웨어 가속 활용 하드웨어 가속은 다음과 같은 속성을 사용할 경우 적용된다. TRANSFORM 3D •-webkit-transform : translate3d(n,n,n) •-webkit-transform : translateZ(n) •-webkit-transform : rotateX(angle) •-webkit-transform : rotateY(angle) •-webkit-transform : rotate3d(n,n,n,angle) •-webkit-transform : scaleZ(n) •-webkit-transform : scale3d(n,n,n) •-webkit-transform : perspective(n) opacity …
  • 31. 31 / JMC 고성능 애니메이션 구현하기 2. 부드러운 애니메이션 구현하기 3) 하드웨어 가속 활용 iOS, Android 4.0, 4.1~ Android ~2.x Android 3.x, 4.x
  • 32. 32 / JMC 고성능 애니메이션 구현하기 jindo.m.useCss3d() 2. 부드러운 애니메이션 구현하기 JMC의 활용 3) 하드웨어 가속 활용
  • 33. 33 / JMC 고성능 애니메이션 구현하기 데모 – 애니메이션 화면 튜닝하기 2. 부드러운 애니메이션 구현하기 Step1. layout 변경이 되는 요소를 transform이나 opacity로 변경한다. Step2. 하드웨어 가속을 적용하여 각 box를 Layer로 구성한다. Step3. 적합한 애니메이션 구현 방법을 결정하여 적용한다.
  • 34. Q & A Email : sculove@gmail.com Blog : http://sculove.pe.kr Linked : http://me2.do/G7dQOWOy