자바스크립트 동작 원리: 엔진, 런타임, 호출 스택
Source
Evernote/Inbox/자바스크립트의 동작원리 엔진, 런타임, 호출 스택 • Captain Pangyo.md
Summary
자바스크립트는 V8 엔진과 같은 JS 엔진(Memory Heap, Call Stack)과 브라우저가 제공하는 Web API(DOM, setTimeout 등), 그리고 Event Loop 및 Callback Queue로 구성된 런타임 환경에서 동작합니다. JS는 단일 스레드(Single-threaded)이며, Call Stack 은 함수 호출 순서를 관리합니다. Call Stack 이 가득 차면 Stack Overflow 가 발생하며, 장시간 실행되는 동기 작업은 UI 렌더링을 차단하여 브라우저 응답 불가 상태를 유발할 수 있습니다. 이를 해결하기 위해 비동기 처리와 이벤트 루프가 필요합니다.
Key Points
자바스크립트 엔진(V8 등)은 Memory Heap(메모리 할당)과 Call Stack(코드 실행 순서 관리)으로 구성됨
setTimeout, DOM 등 브라우저 내장 API 는 JS 엔진이 아닌 Web API 로 제공됨
JS 는 단일 스레드 언어로 한 번에 하나의 작업만 처리하며, Call Stack 은 현재 실행 위치를 추적함
재귀 호출 등 Call Stack 한계 초과 시 ‘Maximum call stack size exceeded’ 에러 발생
Call Stack 에서 장시간 작업 실행 시 브라우저 UI 렌더링 및 사용자 입력이 차단됨 (Blocking)
비동기 처리와 이벤트 루프(Event Loop) 는 UI 블로킹 없이 동시성(Concurrency)을 구현하는 핵심 메커니즘임
JavaScript 엔진의 동작 원리 (V8 기준)
자바스크립트 아키텍처 v0.4
자바스크립트 메모리 관리 및 4가지 흔한 메모리 누수 대처법
JavaScript Promises: 개념, 용어 및 표준화
Node.js 란? (IBM developerWorks)
JavaScript this 키워드 동작 원리
비동기적 JavaScript
Cycle.js
JavaScript 의 현대적 활용 분야 (2019)
자바스크립트 메모리 누수 4가지 형태 (외부 링크)
AJAX 기본 원리 및 XMLHttpRequest 구현
종성 분리 알고리즘
자바스크립트 객체 더하기 연산의 타입 변환 규칙
자바스크립트 학습 방법론 (2017)
자바스크립트 프로토타입(Prototype) 개념 정리
자바스크립트 배열 메소드 5가지 (indexOf, filter, forEach, map, reduce)
자바스크립트에서의 Continuation-passing style (CPS) 소개
자바스크립트 디자인 패턴 - 프록시(Proxy)
Web Workers API 개요 및 기본 사용법
GPU 동작 원리 및 아키텍처 개요
자바스크립트 기반 콘텐츠 숨김의 접근성 처리
jQuery 이벤트 핸들링: .on() 사용 권장
웹 브라우저 동작 원리 (2) - 레이아웃 리플로우 최적화
Git remote-tracking branch 개념 및 동작 원리
Objective-C 함수 포인터와 코드 블럭
텍스트 교체하기: 5가지 방법 (Swapping Out Text, Five Different Ways)
Freemarker 템플릿 상속을 통한 레이아웃 관리
이펙티브 자바스크립트 소개
인터넷 동작 원리: WLAN 연결부터 DHCP, DNS 쿼리까지
인터넷 동작 원리: WLAN 연결 및 DHCP 프로세스
배경이 함께 슬라이드하는 웹 슬라이더 구현
Simple Ajax 예제
Distributed Web Worker 개발 중 Promise 및 이벤트 처리 이슈
CSS :scope 가상 클래스의 용도 및 동작 방식
requestAnimationFrame 사용법
웹의 병목 현상: JavaScript
NaiveChain: 200 줄 자바스크립트로 구현한 블록체인 기본 구조
JavaScript 성능 향상을 위한 Thread-level Speculation (TLS)
List.js: HTML 리스트의 검색, 정렬, 필터링을 위한 경량 JavaScript 라이브러리
Design Patterns in JavaScript (tcorral)
Distributed Electronic Rights in JavaScript
JavaScript 기반 분산 컴퓨팅 고려사항
Web Workers: JavaScript 멀티스레딩
ML 기반 번들링: JavaScript 툴링의 미래
Quora 기술 스택 및 아키텍처 분석
웹의 불안전한 JavaScript 사용 관행에 대한 측정 연구
북마클릿(Bookmarklet) 정의
C++ Coroutine 의 개념 및 구현 특성
JavaScript 과잉 조직화 (Over-Organizing) 의 적절성
2017 년 JavaScript 테스트 개요 (Powtoon Engineering)
JSWhiz: JavaScript 메모리 누수 정적 분석 도구
JavaScript 패키지 매니저의 간략한 역사 (npm, Yarn, pnpm)
풀스택 JavaScript 프레임워크 학습 조언 (Quora)
HTTP Archive: jQuery 호스팅 및 버전 분산 분석 (2013)
Didact: 리액트 원리 학습을 위한 DIY 가이드 시리즈 소개
Prototype용 선택 상자 플러그인