CS
-
Javascript의 런타임 꼬꼬무 1편 (Heap과 GC)CS 2025. 5. 12. 20:40
이 글은 해당 주제에 대해 기초적인 개념에서 더 나아가 한 단계 더 깊이 있는 이해를 시도 해보고자 작성되었습니다. 잘 아시다시피 JavaScript는 기본적으로 싱글 스레드 언어입니다.한 번에 하나의 작업만을 순차적으로 처리하는 실행 모델입니다. 브라우저에서 AJAX, fetch, setTimeout 등의 비동기 작업은 브라우저의 Web API 영역에서 처리하며,이 작업들은 메인 스레드(자바스크립트 엔진)와는 별도의 브라우저 내부 스레드에서 실행됩니다. 이 과정에서 JavaScript Runtime과 관련된 보다 상세한 내용과 궁금증에 대한 해결을 작성합니다. Heap - 세분화와 V8 엔진 구조, 그리고 가비지 컬렉션(Garbage Collection)1) V8 엔진 메모리 구조와 메모리 사용V8엔..
-
[ko.react.dev - v18] useState의 기본 동작과 hook이 최상단에서 호출되어야 하는 이유CS 2024. 7. 15. 23:33
useState의 동작에 대한 아이디어 다음은 useState의 동작을 이해하는 데 도움을 받을 수 있도록 간소화한 코드입니다.let componentHooks = [];let currentHookIndex = 0;function useState(initialState) { // 현재 인덱스의 훅 쌍(상태와 설정자 함수)을 가져옴 let pair = componentHooks[currentHookIndex]; if (pair) { // 이미 존재하는 훅이면 인덱스를 증가시키고 해당 쌍을 반환 currentHookIndex++; return pair; } // 상태 설정자 함수 정의 // closure: setState 함수는 pair 변수를 capture하여 closure를 형..