" 환산시 약 27만원 "
" 5장 이상 30% 할인"
CSS 그리드 레이아웃
상향식 성능 향상
뉴스의 데이터 시각화
컬러 시스템 인터렉션
이벤트 Loop
디자인 철학
10:45 - 11:30
11:30 - 12:15
13:30 - 14:15
14:15 - 15:00
15:45 - 16:30
16:30 - 17:15
Animation 고르기
Web App을 해킹하는 방법
험난한 업무 프로세스 진행하기
CSS 커스텀 속성의 전략적 사용
웹폰트 최적화
웹으로 특이하고 이상한 것 만들기
CSS 그리드 레이아웃
상향식 성능 향상
뉴스의 데이터 시각화
컬러 시스템 인터렉션
이벤트 Loop
디자인 철학
10:45 - 11:30
11:30 - 12:15
13:30 - 14:15
14:15 - 15:00
15:45 - 16:30
16:30 - 17:15
Animation 고르기
Web App을 해킹하는 방법
험난한 업무 프로세스 진행하기
CSS 커스텀 속성의 전략적 사용
웹폰트 최적화
웹으로 특이하고 이상한 것 만들기
디자인 철학
Design
Frontend
Backend
All
CSS 그리드 레이아웃
상향식 성능 향상
뉴스의 데이터 시각화
컬러 시스템 인터렉션
이벤트 Loop
디자인 철학
10:45 - 11:30
11:30 - 12:15
13:30 - 14:15
14:15 - 15:00
15:45 - 16:30
16:30 - 17:15
Animation 고르기
Web App을 해킹하는 방법
험난한 업무 프로세스 진행하기
CSS 커스텀 속성의 전략적 사용
웹폰트 최적화
웹으로 특이하고 이상한 것 만들기
뉴스의 데이터 시각화
디자인 철학
Design
Frontend
Backend
All
CSS 그리드 레이아웃
상향식 성능 향상
뉴스의 데이터 시각화
컬러 시스템 인터렉션
이벤트 Loop
디자인 철학
10:45 - 11:30
11:30 - 12:15
13:30 - 14:15
14:15 - 15:00
15:45 - 16:30
16:30 - 17:15
Animation 고르기
Web App을 해킹하는 방법
험난한 업무 프로세스 진행하기
CSS 커스텀 속성의 전략적 사용
웹폰트 최적화
웹으로 특이하고 이상한 것 만들기
CSS 그리드 레이아웃
CSS 커스텀 속성의 전략적 사용
웹폰트 최적화
웹으로 특이하고 이상한 것 만들기
이벤트 Loop
Animation고르기
Design
Frontend
Backend
All
CSS 그리드 레이아웃
상향식 성능 향상
뉴스의 데이터 시각화
컬러 시스템 인터렉션
이벤트 Loop
디자인 철학
10:45 - 11:30
11:30 - 12:15
13:30 - 14:15
14:15 - 15:00
15:45 - 16:30
16:30 - 17:15
Animation 고르기
Web App을 해킹하는 방법
험난한 업무 프로세스 진행하기
CSS 커스텀 속성의 전략적 사용
웹폰트 최적화
웹으로 특이하고 이상한 것 만들기
상향식 성능 향상
Web App을 해킹하는 방법
Design
Frontend
Backend
All
CSS 그리드 레이아웃
상향식 성능 향상
뉴스의 데이터 시각화
컬러 시스템 인터렉션
이벤트 Loop
디자인 철학
10:45 - 11:30
11:30 - 12:15
13:30 - 14:15
14:15 - 15:00
15:45 - 16:30
16:30 - 17:15
Animation 고르기
Web App을 해킹하는 방법
험난한 업무 프로세스 진행하기
CSS 커스텀 속성의 전략적 사용
웹폰트 최적화
웹으로 특이하고 이상한 것 만들기
상향식 성능 향상
험난한 엄무 프로세스 진행하기
Design
Frontend
Backend
All
CSS 그리드 레이아웃
상향식 성능 향상
뉴스의 데이터 시각화
컬러 시스템 인터렉션
이벤트 Loop
디자인 철학
10:45 - 11:30
11:30 - 12:15
13:30 - 14:15
14:15 - 15:00
15:45 - 16:30
16:30 - 17:15
Animation 고르기
Web App을 해킹하는 방법
험난한 업무 프로세스 진행하기
CSS 커스텀 속성의 전략적 사용
웹폰트 최적화
웹으로 특이하고 이상한 것 만들기
상향식 성능 향상
넓은 스펙트럼
+
깊이 있는 세션
(그리고 영어...)
CSS 그리드 레이아웃
상향식 성능 향상
뉴스의 데이터 시각화
컬러 시스템 인터렉션
이벤트 Loop
디자인 철학
10:45 - 11:30
11:30 - 12:15
13:30 - 14:15
14:15 - 15:00
15:45 - 16:30
16:30 - 17:15
Animation 고르기
Web App을 해킹하는 방법
험난한 업무 프로세스 진행하기
CSS 커스텀 속성의 전략적 사용
웹폰트 최적화
웹으로 특이하고 이상한 것 만들기
CSS 그리드 레이아웃
상향식 성능 향상
뉴스의 데이터 시각화
컬러 시스템 인터렉션
이벤트 Loop
디자인 철학
10:45 - 11:30
11:30 - 12:15
13:30 - 14:15
14:15 - 15:00
15:45 - 16:30
16:30 - 17:15
Animation 고르기
Web App을 해킹하는 방법
험난한 업무 프로세스 진행하기
CSS 커스텀 속성의 전략적 사용
웹폰트 최적화
웹으로 특이하고 이상한 것 만들기
CSS 그리드 레이아웃
상향식 성능 향상
뉴스의 데이터 시각화
컬러 시스템 인터렉션
이벤트 Loop
디자인 철학
10:45 - 11:30
11:30 - 12:15
13:30 - 14:15
14:15 - 15:00
15:45 - 16:30
16:30 - 17:15
Animation 고르기
Web App을 해킹하는 방법
험난한 업무 프로세스 진행하기
CSS 커스텀 속성의 전략적 사용
웹폰트 최적화
웹으로 특이하고 이상한 것 만들기
@양현선
@이상진
일반적으로 웹브라우저에 표시될 폰트는
"사용자의 컴퓨터(=로컬)" 에 설치된 폰트로 표시된다.
# 웹폰트란?
일반적으로 웹브라우저에 표시될 폰트는
"사용자의 컴퓨터(=로컬)" 에 설치된 폰트로 표시된다.
윈도우 OS
Mac OS
# 웹폰트란?
웹폰트는 로컬의 폰트 설치 상황과 관계없이, 특정 서버에 업로드된 폰트파일을
"다운로드" 한 후 화면에 표시하는 방법입니다.
# 웹폰트란?
서버 경로
# 기본 사용법
파일 포맷
# 기본 사용법
# 기본 사용법
폰트 이름 설정
# 웹폰트 사용 사례
# 웹폰트 사용 사례
# 웹폰트 사용률
: 1조 8천만번
: 1조 번
: 3670억 번
# 웹폰트 사용률
# 웹폰트 문제점
# 웹폰트 문제점
# 웹폰트 문제점
# 웹폰트 문제점
# 웹폰트 문제점
# 웹폰트 문제점
웹폰트
Critical Rendering Path
# 웹폰트 문제점 Why?
Critical Rendering Path
# 웹폰트 문제점 Why?
Critical Rendering Path
# 웹폰트 문제점 Why?
Critical Rendering Path
# 웹폰트 문제점 Why?
Critical Rendering Path
# 웹폰트 문제점 Why?
Critical Rendering Path
# 웹폰트 문제점 Why?
Critical Rendering Path
# 웹폰트 문제점 Why?
Delay or Fail
Critical Rendering Path
# 웹폰트 문제점 Why?
Delay or Fail
Critical Rendering Path
# 웹폰트 문제점 Why?
Delay or Fail
Critical Rendering Path
# 웹폰트 문제점 Why?
# 웹폰트 문제점 Why?
Delay or Fail
Critical Rendering Path
브라우저별로
전략이 다르다
Text Blocking
# FOIT & FOUT 예제
웹폰트가 다운로드 될 때까지 텍스트를 랜더링 하지 않다가,
로딩이 된 이후에 텍스트를 보여주는 동작
기다리는 제한시간 3s가 있다.
웹폰트가 로딩이 되지 않을때, 해당 텍스트 "rendering Block"
# 브라우저별 처리방식
웹폰트가 다운로드 될 때까지 unstyled 텍스트(fall back폰트)를
보여주고, 로드가 되면 웹폰트로 대처하는 방식
글꼴의 자간, 높이에 따라 “레이아웃”이 변경 될 수 있다.
=> 레이아웃이 틀어져서 이상해보인다.
FOIT보다 괜찮은 방법일 수 있다 (폰트의 스타일보다, 내용이 더 중요)
# 브라우저별 처리방식
Flash
Of
Text
Flash
Of
Text
# 브라우저별 처리방식
Unstyled
Invisible
# FOIT & FOUT
# 웹폰트 대책
# 웹폰트 대책
용량을 줄여 다운로드 속도를 향상 시키자
# 웹폰트 대책
1. (가능하다면) woff2 포맷 사용 : 평균 30% 압축된 형식
용량을 줄여 다운로드 속도를 향상 시키자
# 웹폰트 대책
1. (가능하다면) woff2 포맷 사용 : 평균 30% 압축된 형식
용량을 줄여 다운로드 속도를 향상 시키자
# 웹폰트 대책
1. (가능하다면) woff2 포맷 사용 : 평균 30% 압축된 형식
용량을 줄여 다운로드 속도를 향상 시키자
# 웹폰트 대책
1. (가능하다면) woff2 포맷 사용 : 평균 30% 압축된 형식
2. unicode-range 사용
용량을 줄여 다운로드 속도를 향상 시키자
# 웹폰트 대책
용량을 줄여 다운로드 속도를 향상 시키자
1. (가능하다면) woff2 포맷 사용 : 평균 30% 압축된 형식
2. unicode-range 사용 : 사용할 문자의 범위를 지정
# 웹폰트 대책
1. (가능하다면) woff2 포맷 사용 : 평균 30% 압축된 형식
2. unicode-range 사용 : 사용할 문자의 범위를 지정
용량을 줄여 다운로드 속도를 향상 시키자
# 웹폰트 대책
더 일찍 다운받자
용량을 줄여 다운로드 속도를 향상 시키자
preload속성 사용
# 웹폰트 대책
preload속성 사용
<link>태그에 preload 옵션을 주면, 다른 리소스보다 빨리 받아올 수 있음
# 웹폰트 대책
preload속성 사용
<link>태그에 preload 옵션을 주면, 다른 리소스보다 빨리 받아올 수 있음
preload 사용
preload 미사용
# 웹폰트 대책
# 웹폰트 대책
보이지 않는 텍스트
예쁘지 않은 기본 폰트 텍스트
: invisible 텍스트는 UX관점에 나쁘다
→ FOIT 는 FOUT보다 나쁠수 있다.
# 웹폰트 대책
# 웹폰트 대책
Font-Loader 라이브러리 이용
# 웹폰트 대책
Font-Loader 라이브러리 이용
FontFaceObserver
# 웹폰트 대책
FontFaceObserver
: 가볍고 빠른 font loader 라이브러리
# 웹폰트 대책
FontFaceObserver
: 가볍고 빠른 font loader 라이브러리
CSS
JS
# 웹폰트 대책
CSS의 font-display 속성
Font-Loader 라이브러리
FontFaceObserver
# 웹폰트 대책
CSS의 font-display 속성
# 웹폰트 대책
웹폰트 요청
3s
다운로드 완료
FOIT / FOUT
webfont
CSS의 font-display 속성 : auto
# 웹폰트 대책
웹폰트 요청
3s
다운로드 실패
fallback
CSS의 font-display 속성 : auto
FOIT / FOUT
# 웹폰트 대책
웹폰트 요청
3s
다운로드 실패
다운로드 완료
webfont
CSS의 font-display 속성 : auto
fallback
FOIT / FOUT
# 웹폰트 대책
웹폰트 요청
3s
다운로드 실패
다운로드 완료
webfont
fallback
FOIT
CSS의 font-display 속성 : block
3초간 block기간, 무한정 웹폰트 응답 대기 (=FOIT)
# 웹폰트 대책
웹폰트 요청
다운로드 완료
CSS의 font-display 속성 : swap
webfont
fallback
즉시 대체 폰트 랜더링(block기간 없음)
무한정 웹폰트 응답 대기 (=FOUT)
# 웹폰트 대책
웹폰트 요청
3s
fallback
다운로드 완료
webfont
100ms
CSS의 font-display 속성 : fallback
FOIT
아주 짧은 시간(100ms) block 후, 대체폰트 랜더링
swap기간(1~2s) 내 다운로드 완료시 렌더링 / 경과시 통신하지 않음
# 웹폰트 대책
웹폰트 요청
3s
다운로드 완료
100ms
아주 짧은 시간(100ms) block 후, 대체폰트 랜더링
swap기간 내 다운로드 완료시 렌더링 / 경과시 통신하지 않음
CSS의 font-display 속성 : fallback
fallback
webfont
FOIT
# 웹폰트 대책
웹폰트 요청
100ms
CSS의 font-display 속성 : optional
FOIT
fallback / webfont
아주 짧은 시간(100ms) block 후, 대체폰트 랜더링
사용자 네트워크 상태에 따라 브라우저가 다운받을지 말지 결정
# 웹폰트 대책
CSS의 font-display 속성 :
# 웹폰트 대책
CSS의 font-display 속성
😨...
# 웹폰트 대책
CSS의 font-display 속성 이용
Font-Loader 라이브러리 이용
FontFaceObserver
# 웹폰트 대책
CSS의 font-display 속성 이용
Font-Loader 라이브러리 이용
FontFaceObserver
Be Less Diff
# 웹폰트 대책
webfont 적용전
webfont 적용후
Be Less Diff
# 웹폰트 대책
Be Less Diff
# Web Animation
# Web Animation
# Web Animation
# Web Animation
GIF 이미지 포맷은?
png, bmp, jpg 등과 같은 이미지 포맷 중 하나
gif이미지를 여러개 이어 붙이는 Animated 기능
# Web Animation
시퀀스
# Web Animation
# Web Animation
# Web Animation
시안 : mp4
GIF
# Web Animation
# Web Animation
# Web Animation
# Web Animation
# Web Animation
# Web Animation
1s에 30장 x 8s = 240장 (30 프레임)
compression
# Web Animation
# Web Animation
# Web Animation
# Web Animation
# Web Animation
# Web Animation
# Web Animation
스프라이트 이미지
# Web Animation
스프라이트 이미지
# Web Animation
스프라이트 이미지
# Web Animation
스프라이트 이미지
# Web Animation
스프라이트 이미지
# Web Animation
스프라이트 이미지
# Web Animation
# Web Animation
# Web Animation
CSS로 DOM의 속성 상태를 시간 경과에 따라 정의
이를 순차적으로 표현하는 방식
# Web Animation
# Web Animation
# Web Animation
# Web Animation
# Web Animation
로딩 인디케이터
# Web Animation
Looping 애니메이션
# Web Animation
간단한 움직임의 모션
# Web Animation
hover, focus 인터렉션 애니메이션
# Web Animation
1. 네트워크 요청 불필요
# Web Animation
1. 네트워크 요청 불필요
2. js없이 간단한 이벤트 처리 가능 (hover, focus)
# Web Animation
1. 네트워크 요청 불필요
2. js없이 간단한 이벤트 처리 가능 (hover, focus)
# Web Animation
1. 네트워크 요청 불필요
2. js없이 간단한 이벤트 처리 가능 (hover, focus)
3. GPU사용으로 js에 비해 performance가 좋음
# Web Animation
1. 네트워크 요청 불필요
2. js없이 간단한 이벤트 처리 가능 (hover, focus)
3. GPU사용으로 js에 비해 performance가 좋음
4. @keyframe 재사용 가능
# Web Animation
# Web Animation
1. 크로스 브라우징 (IE10부터 지원)
# Web Animation
1. 크로스 브라우징 (IE10부터 지원)
# Web Animation
1. 크로스 브라우징 (IE10부터 지원)
2. 이벤트 동작의 제한 (hover, focus)
# Web Animation
1. 크로스 브라우징 (IE10부터 지원)
2. 이벤트 동작의 제한 (hover, focus)
3. @keyframe에 정해진 상태로만 변경가능
# Web Animation
시작 상태
끝 상태
}
중간 상태
# Web Animation
1. 크로스 브라우징 (IE10부터 지원)
2. 이벤트 동작의 제한 (hover, focus)
3. @keyframe에 정해진 상태로만 변경가능
4. 복잡한 움직임의 경우, CSS로 표현 불가
# Web Animation
1. 크로스 브라우징 (IE10부터 지원)
2. 이벤트 동작의 제한 (hover, focus)
3. @keyframe에 정해진 상태로만 변경가능
4. 복잡한 움직임의 경우, CSS로 표현 불가
5. 제한된 Timing function
# Web Animation
# Web Animation
1. 크로스 브라우징 (IE10부터 지원)
2. 이벤트 동작의 제한 (hover, focus)
3. @keyframe에 정해진 상태로만 변경가능
4. 복잡한 움직임의 경우, 표현 불가
5. 제한된 Timing function
# Web Animation
# Web Animation
# Web Animation
# Web Animation
1. drag, 키보드 등 css만으로 인식할 수 없는 이벤트 인터렉션
2. 복잡하게 움직이는 인터렉션
3. 다이나믹한 transition 상태
# Web Animation
# Web Animation
# Web Animation
Vanilla JS
Animation Library
vs
# Web Animation
# Web Animation
# Web Animation
Vanilla JS
GreenSock
vs
# Web Animation
1. 다양한 motion 메서드 제공
# Web Animation
# Web Animation
1. 다양한 motion 메서드 제공
2. 다양한 easingFunction 제공
# Web Animation
1. 다양한 motion 메서드 제공
2. 다양한 easingFunction 제공
3. 크로스 브라우징 / IE브라우저 대응
# Web Animation
1. 다양한 motion 메서드 제공
2. 다양한 easingFunction 제공
3. 크로스 브라우징 / IE브라우저 대응
4. CSS나 jQuery animation보다 성능이 좋을 수 있음
라이브러리 자체적 성능 최적화
# Web Animation
1. 다양한 motion 메서드 제공
2. 다양한 easingFunction 제공
3. 크로스 브라우징 / IE브라우저 대응
4. CSS나 jQuery animation보다 성능이 좋을 수 있음
setInterval() vs requestAnimationFrame()
https://davidwalsh.name/css-js-animation
# Web Animation
CSS or Javascript ?
# Web Animation
CSS
# Web Animation
CSS
JS
# Web Animation
CSS
JS
# Web Animation
CSS
JS
애니메이션이 실행되는 동안에 사용자의 인터렉션에 따라
상태가 다이나믹하게 변경되어야 할 때
한 시퀀스에서 애니메이션이 3번 이상 변경될 때
CSS의 transform 속성에 부분적 애니메이션을 줘야 할 때
다양한 형태의 easing그래프가 필요할 때
# Web Animation
# Web Animation
# Web Animation
# Web Animation
디자인 시안.mov
COPY
IMITATE
- GIF 이미지
- PNG SpriteSheet
- CSS animation
- JS animation
용량/품질 문제
표현의 제한
# Web Animation
AfterEffect : 모션그래픽 제작 툴
# Web Animation
AfterEffect
data.json
bodymovin.js
index.html
index.js
346 KB
# Web Animation
# Web Animation
# Web Animation
# Web Animation
# Web Animation
1. 네트워크 요청 발생
2. edge브라우저 : 투명 마스트 적용되지 않음
3. blur 적용 문제
4. glow effect 미지원
5. 3d카메라 적용 버그
6. repeater Effect 미지원 (추후 적용예정)