Stay Hungry Stay Foolish

javascript 3

[JavaScript] Event Loop

브라우저 이벤트 루프(Event Loop) 정리목차1. 이벤트 루프란?2. 브라우저 환경의 구조 (런타임)3. 태스크 큐의 종류와 우선순위4. 이벤트 루프의 동작 과정1. 이벤트 루프란?자바스크립트는 싱글 스레드(Single Thread) 언어입니다. 한 번에 하나의 작업만 처리할 수 있음에도 불구하고, 브라우저에서 여러 작업을 동시에 처리하는 것처럼 느껴지는 이유는 바로 이벤트 루프 덕분입니다. 이벤트 루프는 호출 스택이 비어있는지 확인하고, 기다리고 있는 비동기 작업들을 적절한 시점에 실행해주는 역할을 합니다.2. 브라우저 환경의 구조Call Stack: 현재 실행 중인 함수들이 쌓이는 공간 (LIFO 구조)Web APIs: 브라우저에서 제공하는 API (setTimeout, DOM, AJAX 등)...

[JavaScript] 메모리 관리

JavaScript 메모리 관리 정리목차1. 메모리 생명 주기2. 스택(Stack) vs 힙(Heap)3. 가비지 컬렉션 (GC)4. V8 엔진의 가비지 컬렉션 최적화1. 메모리 생명 주기할당 → 사용 → 해제JavaScript는 엔진이 메모리를 자동 관리합니다.참고: C언어는 malloc(), free()를 통해 개발자가 직접 할당과 해제를 수행해야 합니다.2. 스택(Stack) vs 힙(Heap)스택 (Stack)원시값, 참조 주소 저장고정 크기 (정적 메모리)속도가 매우 빠름실행 컨텍스트, 렉시컬 환경과 관련됨힙 (Heap)객체, 배열 저장가변 크기 (동적 메모리)스택에 비해 상대적으로 느림3. 가비지 컬렉션 (GC)Reference Counting (참조 횟수 계산)참조 횟수를 세서 0이 되면 메..

[JavaScript] 비동기 처리

JavaScript 비동기 처리 정리 목차 1. 동기 vs 비동기 2. 비동기 처리 방식의 진화 (Callback, Promise, Async/Await) 3. Promise 유틸리티 메서드 4. 핵심 정리 및 요약 1. 동기 vs 비동기 동기(Synchronous) 코드가 순차적으로 실행되며, 하나의 작업이 완료될 때까지 다음 작업이 대기 이전 작업이 끝나야 다음 작업 시작 비동기(Asynchronous) 특정 코드의 완료를 기다리지 않고 다음 코드를 즉시 실행 블로킹(Blocking) 없음: 실행 흐름이 멈추지 않음 실행 순서 보장 안 됨: 코드 작성 순서와 실행 완료 순서가 다를 수 있음 ..