Dlog

CSS animation vs JS animation

#Front-End  

πŸ€” 각각 μ–΄λ–€ 속성을 μ‚¬μš©ν•˜λŠ”κ°€?

CSS :Β transitionΒ Β  animation
JS : setInterval()Β Β  requestAnimationFrame()Β 


CSS μ• λ‹ˆλ©”μ΄μ…˜ μž₯점

  1. λ―Έλ””μ–΄ 쿼리둜 μ• λ‹ˆλ©”μ΄μ…˜μ„ μ μš©ν•΄ λ°˜μ‘ν˜•μœΌλ‘œ μ• λ‹ˆλ©”μ΄μ…˜μ„ κ΅¬ν˜„ν•˜κΈ° 유용
  2. μ™ΈλΆ€ 라이브러리 ν•„μš” μ—†μŒ
  3. CSS μžμ²΄κ°€ μ„ μ–Έν˜•(declarative)이라 μ–΄λ–€ μš”μ†Œκ°€ μ• λ‹ˆλ©”μ΄μ…˜μ„ κ°€μ Έμ•Ό ν•œλ‹€λŠ” 직관적인 ν‘œν˜„μ΄ κ°€λŠ₯
  4. 메인 *μ“°λ ˆλ“œκ°€ μ•„λ‹Œ λ³„λ„μ˜ 컴포지터 μ“°λ ˆλ“œ(Compositor Thread)μ—μ„œ 그렀지기에 효율적

πŸ’‘ *μ“°λ ˆλ“œ(Thread)λž€?
ν”„λ‘œμ„ΈμŠ€κ°€ 할당받은 μžμ›μ„ μ΄μš©ν•˜λŠ” μ‹€ν–‰ λ‹¨μœ„
μŠ€μΌ€μ€„λŸ¬μ— μ˜ν•΄ CPUλ₯Ό 할당받을 수 μžˆλŠ” μΈμŠ€νŠΈλŸ­μ…˜μ˜ λ‚˜μ—΄
ν”„λ‘œμ„ΈμŠ€μ˜ λ©”λͺ¨λ¦¬, μžμ› 등을 κ³΅μœ ν•˜λ―€λ‘œ μ»€λ„μ˜ 도움 없이 μŠ€λ ˆλ“œκ°„μ— 톡신 κ°€λŠ₯

+ν”„λ‘œμ„ΈμŠ€λž€?
μš΄μ˜μ²΄μ œλ‘œλΆ€ν„° μžμ›μ„ ν• λ‹Ήλ°›λŠ” μž‘μ—… λ‹¨μœ„
λ©”λͺ¨λ¦¬ μƒμ—μ„œ 싀행쀑인 ν”„λ‘œκ·Έλž¨, μŠ€λ ˆλ“œλŠ” 이 ν”„λ‘œμ„ΈμŠ€ μ•ˆμ—μ„œ μ‹€ν–‰λ˜λŠ” 흐름 λ‹¨μœ„

+μΈμŠ€νŠΈλŸ­μ…˜(Instruction)μ΄λž€?
μ»΄ν“¨ν„°μ—κ²Œ 일을 μ‹œν‚€λŠ” λ‹¨μœ„, 컴퓨터가 μ•Œμ•„λ“€μ„ 수 μžˆλŠ” κΈ°κ³„μ–΄λ‘œ 이루어져 μžˆλŠ” λͺ…λ Ή

+컀널(kernel)μ΄λž€?
컴퓨터 운영 체제의 핡심이 λ˜λŠ” 컴퓨터 ν”„λ‘œκ·Έλž¨, μ‹œμŠ€ν…œμ˜ λͺ¨λ“  것을 μ™„μ „νžˆ ν†΅μ œ


JS μ• λ‹ˆλ©”μ΄μ…˜ μž₯점

  1. μš”μ†Œμ˜ μŠ€νƒ€μΌμ΄ λ³€ν•˜λŠ” μˆœκ°„λ§ˆλ‹€ μ œμ–΄ν•  수 μžˆμ–΄ μ„Έλ°€ν•˜κ²Œ μ• λ‹ˆλ©”μ΄μ…˜ ꡬ성 κ°€λŠ₯
  2. *GPUλ₯Ό ν†΅ν•œ ν•˜λ“œμ›¨μ–΄ 가속 μ œμ–΄ κ°€λŠ₯ β‡’ CSS의 νŠΉμ • μ†μ„±μœΌλ‘œ μΈν•œ 가속을 λ§‰μ•„μ€Œ

    μ™œ μž₯점인가? ν•˜λ“œμ›¨μ–΄ 가속이 λͺ¨λ°”μΌμ—μ„œ μ„±λŠ₯ μ €ν•˜λ₯Ό λ°œμƒμ‹œν‚¬ 수 있기 λ•Œλ¬Έ

  3. λΈŒλΌμš°μ € ν˜Έν™˜μ„±μ΄ CSS νŠΈλ Œμ§€μ…˜, μ• λ‹ˆλ©”μ΄μ…˜ 속성보닀 μ’‹λ‹€.

πŸ’‘ *GPUλž€?
Graphic Processing Unit(κ·Έλž˜ν”½ 처리 μž₯치)
νŠΉμ • λ‹¨μˆœ 계산을 λΉ λ₯΄κ²Œ 함
CPU에 λΉ„ν•΄ μ—°μ‚° μž₯치(ALU)의 ꡬ쑰가 λ‹¨μˆœ, μž‘μ€ μ œμ–΄/μΊμ‹œ μ˜μ—­μ„ 가짐

vs CPUλž€?
Core Processing Unit(쀑앙 처리 μž₯치)
μ»΄ν“¨ν„°μ—μ„œ μ‚¬λžŒμ˜ λ‡Œμ²˜λŸΌ 데이터 μ—°μ‚°, μ£Όλ³€ μž₯치 μ œμ–΄, λͺ…령을 λ‚΄λ¦¬λŠ” μž₯치
μ‚°μˆ λ…Όλ¦¬ μž₯치 + μ œμ–΄ μž₯치 + λ ˆμ§€μŠ€ν„° μ„ΈνŠΈ + CPU λ‚΄λΆ€ λ²„μŠ€ λ“±μœΌλ‘œ ꡬ성
5단계 μž‘μ—… 반볡 : 1) λͺ…λ Ήμ–΄ 인좜 2) λͺ…λ Ήμ–΄ 해독 3) 데이터 인좜 4) 데이터 처리 5) 데이터 μ €μž₯
Instruction fetch β†’ Instruction decode β†’ Data fetch β†’ Data process β†’ Data store

-μ°Έκ³