requestAnimationFrame 사용법
Source
Evernote/Technote scraps/Using requestAnimationFrame.md
Summary
JavaScript 애니메이션 루프에서 setInterval 대신 requestAnimationFrame(rAF) 을 사용하는 것이 더 효율적입니다. rAF 는 브라우저 최적화를 통해 더 부드러운 애니메이션을 제공하며, 비활성 탭에서 실행을 중단하여 CPU 사용량과 배터리 소모를 줄입니다. 사용법은 함수를 재귀적으로 호출하는 방식으로 구현하며, cancelAnimationFrame 을 통해 실행을 중지할 수 있습니다. 구형 브라우저 지원을 위해 폴리필(Polyfill) 을 적용하면 모든 환경에서 사용 가능합니다.
Key Points
setInterval(1000/60) 보다 requestAnimationFrame 이 애니메이션 성능과 효율성에서 우수함
장점: 브라우저 최적화(부드러운 렌더링), 비활성 탭 자동 정지(CPU/배터리 절약)
구현: 함수 내부에서 requestAnimationFrame 을 재귀 호출하여 루프 생성
제어: 반환된 ID 를 사용하여 cancelAnimationFrame 으로 실행 중지 가능
호환성: IE9 이하 등 구형 브라우저는 폴리필 적용 필요
Web Animations API: element.animate() (Chrome 36)
자바스크립트 동작 원리: 엔진, 런타임, 호출 스택
웹 브라우저 동작 원리 (2) - 레이아웃 리플로우 최적화
HTML5 Canvas 실시간 드로잉 성능 최적화 가이드
비동기적 JavaScript
브라우저 동작의 이해 - 리플로우와 리페인트 및 그 최적화
풀스택 JavaScript 프레임워크 학습 조언 (Quora)
Route-Saver: 위치 기반 서비스의 효율적 쿼리 처리
Web Workers API 개요 및 기본 사용법
닭 알 부화 가이드: 인큐베이터 사용법
Immutable Caching 을 통한 웹 성능 최적화
자바스크립트에서의 Continuation-passing style (CPS) 소개
LoRA Block Weight 확장기능 사용법
HTML에서 Javascript와 CSS 기반으로 애니메이션을 구현하는 방법
JavaScript this 키워드 동작 원리
Android ListView 커스터마이징 및 성능 최적화
AJAX 기본 원리 및 XMLHttpRequest 구현
DevTools Continuous Painting Mode를 활용한 페인팅 성능 프로파일링
Three.js 시작 가이드 (Aerotwist)
8bit.js: Web Audio API 기반 8비트 사운드 라이브러리
ML 기반 번들링: JavaScript 툴링의 미래
Chromecast 에서 Game Boy 에뮬레이터 실행 방법 (개념 증명)
List.js: HTML 리스트의 검색, 정렬, 필터링을 위한 경량 JavaScript 라이브러리
웹의 병목 현상: JavaScript
D3.js를 활용한 한국 지도 시각화 가이드
Web Workers: JavaScript 멀티스레딩
JavaScript 의 현대적 활용 분야 (2019)
VueJS 프로젝트에 Prettier + ES6 Lint 적용
Prototype용 선택 상자 플러그인
Distributed Electronic Rights in JavaScript
CSS를 이용한 클라이언트 측 전체 텍스트 검색
JavaScript Promises: 개념, 용어 및 표준화
Design Patterns in JavaScript (tcorral)
Web Framework Benchmark Inspired
JavaScript 엔진의 동작 원리 (V8 기준)
JavaScript 성능 향상을 위한 Thread-level Speculation (TLS)
CSS :scope 가상 클래스의 용도 및 동작 방식
HTTP Archive: jQuery 호스팅 및 버전 분산 분석 (2013)
리눅스 환경 HLS 스트리밍 참조 링크 모음
JavaScript 기반 분산 컴퓨팅 고려사항
북마클릿(Bookmarklet) 정의
Requirify: 브라우저 콘솔에서 동적 라이브러리 로딩
종성 분리 알고리즘
웹의 불안전한 JavaScript 사용 관행에 대한 측정 연구
grunt-usemin을 사용한 프론트엔드 자산 패키징
awesome-javascript (스크랩 실패)
2017 년 JavaScript 테스트 개요 (Powtoon Engineering)
JSWhiz: JavaScript 메모리 누수 정적 분석 도구
JavaScript 과잉 조직화 (Over-Organizing) 의 적절성
jQuery 이벤트 핸들링: .on() 사용 권장
PC 게임 실행 가능 여부 확인 방법
대시보드 장착 Nexus 7 및 KITT 테마 커스텀 런처
JavaScript 패키지 매니저의 간략한 역사 (npm, Yarn, pnpm)
자바스크립트 객체 더하기 연산의 타입 변환 규칙
HTTP 클라이언트 라이브러리의 리다이렉트 지원 방식 제안
Distributed Web Worker 개발 중 Promise 및 이벤트 처리 이슈
Freemarker 템플릿 상속을 통한 레이아웃 관리
HTML5 게임 오프라인 지원 가이드
웹 기반 연산 오프로딩 및 상태 시리얼라이제이션 연구 동향
Scala + Play Framework 2 Server 성능 향상 시키기
자바스크립트 프로토타입(Prototype) 개념 정리
Godot 엔진을 활용한 Spine(SD) 애니메이션 실행 가이드
The “When Can I Use” Web Widget
텍스트 교체하기: 5가지 방법 (Swapping Out Text, Five Different Ways)
자바스크립트 디자인 패턴 - 프록시(Proxy)
Bower: 웹 프론트엔드 패키지 관리자
The Web Ahead: Jen Simmons 인터뷰 요약
CSS 최신 동향 파악을 위한 Adobe Web Platform 블로그
자바스크립트 메모리 관리 및 4가지 흔한 메모리 누수 대처법
HTML5 Video Player Comparison (2011)
Sitespeed.io를 사용한 웹사이트 성능 테스트
Simple Ajax 예제
파이썬 urllib를 이용한 웹 소스 출력 스크립트
임베디드 웹 서버: 제한된 리소스에서의 효율적 포맷팅
자바스크립트 배열 메소드 5가지 (indexOf, filter, forEach, map, reduce)
CSRF)
31 CSS Web Design Galleries You’ll Love
s 목표)
Hiding Native HTML5 Video Controls in Full-Screen Mode
더글라스 크록포드의 작업 철학 및 JavaScript 관점
Polaris: MIT 의 웹 페이지 로딩 속도 개선 기술
Play Framework 2.2 기반 Facebook Canvas 게임 개발 일지
Web Fundamentals 및 Web Starter Kit 리소스
Resource Timing API 를 통한 네트워크 성능 측정
JavaScript 학습 자료 (2013)
미래형 반응형 웹 디자인 (Warpspire)
자바스크립트 아키텍처 v0.4
실시간 투표 애플리케이션 구축 (Node.js, Express, AngularJS, MongoDB)
High Performance Browser Networking (O’Reilly)
대규모 JavaScript 애플리케이션 설계 및 엔지니어 성장
2012년 비즈니스 및 마케팅 트렌드 예측 자료 12선 (슬라이드쉐어)
게임 개발팀 A의 정기 회의 매뉴얼
ECMAScript 6 Generator 개요 및 Node.js 활용
Objective-C 함수 포인터와 코드 블럭
Velocity 2014: PageSpeed 인사이트 및 QuickBooks Online 클라이언트 사이드 아키텍처
NDC 2012 강연 자료 링크 모음
Yeoman: 도구를 활용한 더 나은 웹 개발
2011년 3분기 웹 성능 최적화 핵심 링크 및 동향
API 하이퍼미디어 형식 선택 가이드 (HAL, JSON-LD, Collection+JSON, SIREN)
2020 년 웹 성능에 영향을 줄 6 가지 기술 (Simon Hearne)
배경이 함께 슬라이드하는 웹 슬라이더 구현
넷플릭스 성능 케이스스터디 (NHN FE.JS Wiki #184)
Git remote-tracking branch 개념 및 동작 원리
jQuery 애플리케이션 아키텍처 도구 (Addy Osmani)
웹 성능 크래시 코스 (Ilya Grigorik)