비동기적 JavaScript
Source
Evernote/Inbox/비동기적 JavaScript.md
Summary
JavaScript의 비동기적 동작 원리를 setTimeout 예시를 통해 설명하며, 순차적 실행을 위해 Callback 패턴을 소개한다. Callback의 중첩 문제(Callback Hell)를 지적하고 이를 해결하기 위한 Promise의 필요성을 언급한다.
Key Points
- JavaScript는 비동기적으로 동작하여, 특정 명령(예: setTimeout)이 완료되기 전에 다음 명령이 실행될 수 있다.
- 변수 스코프와 비동기 실행의 조합으로 인해 예상과 다른 결과(예: 변수 값의 최종 상태 출력)가 발생할 수 있다.
- 순차적 실행을 보장하기 위해 Callback 함수를 활용하여 작업 완료 후 다음 단계를 실행하도록 제어할 수 있다.
- Callback의 과도한 중첩은 가독성 저하(Callback Hell)를 초래하므로, 이를 해결하기 위해 Promise 등의 패턴이 필요하다.
-
JavaScript Promises: 개념, 용어 및 표준화
-
JavaScript this 키워드 동작 원리
-
JavaScript 기반 분산 컴퓨팅 고려사항
-
Functional-ish JavaScript: 실용적인 함수형 프로그래밍 접근법
-
자바스크립트 동작 원리: 엔진, 런타임, 호출 스택
-
Cycle.js
-
자바스크립트에서의 Continuation-passing style (CPS) 소개
-
Node.js 란? (IBM developerWorks)
-
JavaScript 성능 향상을 위한 Thread-level Speculation (TLS)
-
Distributed Electronic Rights in JavaScript
-
웹의 병목 현상: JavaScript
-
Web Workers: JavaScript 멀티스레딩
-
JavaScript 의 현대적 활용 분야 (2019)
-
Objective-C 함수 포인터와 코드 블럭
-
ML 기반 번들링: JavaScript 툴링의 미래
-
Design Patterns in JavaScript (tcorral)
-
List.js: HTML 리스트의 검색, 정렬, 필터링을 위한 경량 JavaScript 라이브러리
-
JavaScript 엔진의 동작 원리 (V8 기준)
-
JavaScript 과잉 조직화 (Over-Organizing) 의 적절성
-
웹의 불안전한 JavaScript 사용 관행에 대한 측정 연구
-
2017 년 JavaScript 테스트 개요 (Powtoon Engineering)
-
풀스택 JavaScript 프레임워크 학습 조언 (Quora)
-
CSRF)
-
HTML에서 Javascript와 CSS 기반으로 애니메이션을 구현하는 방법
-
더글라스 크록포드의 작업 철학 및 JavaScript 관점
-
JavaScript 패키지 매니저의 간략한 역사 (npm, Yarn, pnpm)
-
JSWhiz: JavaScript 메모리 누수 정적 분석 도구
-
requestAnimationFrame 사용법
-
Web Workers API 개요 및 기본 사용법
-
대규모 JavaScript 애플리케이션 설계 및 엔지니어 성장
-
HTTP Archive: jQuery 호스팅 및 버전 분산 분석 (2013)
-
북마클릿(Bookmarklet) 정의
-
종성 분리 알고리즘
-
웹 기반 연산 오프로딩 및 상태 시리얼라이제이션 연구 동향
-
AJAX 기본 원리 및 XMLHttpRequest 구현
-
Distributed Web Worker 개발 중 Promise 및 이벤트 처리 이슈
-
CSS :scope 가상 클래스의 용도 및 동작 방식
-
자바스크립트 디자인 패턴 - 프록시(Proxy)
-
jQuery 이벤트 핸들링: .on() 사용 권장
-
Prototype용 선택 상자 플러그인
-
자바스크립트 객체 더하기 연산의 타입 변환 규칙
-
자바스크립트 메모리 관리 및 4가지 흔한 메모리 누수 대처법
-
자바스크립트 프로토타입(Prototype) 개념 정리
-
Freemarker 템플릿 상속을 통한 레이아웃 관리
-
텍스트 교체하기: 5가지 방법 (Swapping Out Text, Five Different Ways)
-
자바스크립트 배열 메소드 5가지 (indexOf, filter, forEach, map, reduce)
-
자바스크립트 아키텍처 v0.4
-
8bit.js: Web Audio API 기반 8비트 사운드 라이브러리
-
Simple Ajax 예제
-
자바스크립트 기반 콘텐츠 숨김의 접근성 처리
-
Git remote-tracking branch 개념 및 동작 원리
-
배경이 함께 슬라이드하는 웹 슬라이더 구현
-
이펙티브 자바스크립트 소개
-
Web Framework Benchmark Inspired
-
Requirify: 브라우저 콘솔에서 동적 라이브러리 로딩
-
C++ Coroutine 의 개념 및 구현 특성
-
CSS를 이용한 클라이언트 측 전체 텍스트 검색
-
자바스크립트 학습 방법론 (2017)
-
자바스크립트 메모리 누수 4가지 형태 (외부 링크)
-
Web Animations API: element.animate() (Chrome 36)
-
VueJS 프로젝트에 Prettier + ES6 Lint 적용
-
NaiveChain: 200 줄 자바스크립트로 구현한 블록체인 기본 구조
-
Three.js 시작 가이드 (Aerotwist)
-
Fluent 2016 - JavaScript and IoT
-
2017년 주목할 만한 Java 라이브러리 목록
-
ECMAScript 6 Generator 개요 및 Node.js 활용
-
JavaScript 학습 자료 (2013)
-
CoffeeScript: The Beautiful Way to Write Javascript (Presentation)
-
Java 기반 웹 채팅 서버의 동시성 문제 및 아키텍처 검토
-
awesome-javascript (스크랩 실패)
-
proxyquire: Node.js require 의존성 오버라이드 라이브러리
-
GPU 동작 원리 및 아키텍처 개요
-
브라우저 앙상블을 활용한 분산 컴퓨팅 (WeevilScout)
-
grunt-usemin을 사용한 프론트엔드 자산 패키징
-
실시간 투표 애플리케이션 구축 (Node.js, Express, AngularJS, MongoDB)