이벤트루프(3)
-
Web API 이벤트루프(2) [ TIL ] [ Javascript ]
Problem Web API 에 대해서 알아보장 Try Web API 는 브라우저에서 제공하는 API 로 DOM, Ajax, TimeOut 등이 있다. CallStack 에서 실행된 비동기 함수는 Web API 를 호출하고, Web API 는 콜백 함수를 테스크 큐에 넣는다. 코드 작성 console.time("첫번째 setTimeout"); console.time("두번째 setTimeout"); setTimeout(function timer() { console.log("2초가 걸릴까요?"); console.timeEnd("첫번째 setTimeout"); }, 2000); console.log("안녕하심니까"); setTimeout(function timeout() { console.log("5초가..
2023.06.20 -
호출 스택 이벤트 루프(1) [ TIL ] [ Javascript ]
Problem 호출 스택의 간단한 동작원리를 알아보장 Try 말 그대로 스택(LIFO)은 자료구조인데 호출 스택(call stack) 은 함수 호출의 실행 순서를 기록하는 스택 자료구조 이다. 함수가 호출되면 해당 함수의 실행 컨텍스트가 호출 스택의 맨 위에 추가된다고 한다. 그리고 함수 실행이 완료되면 스택에서 제거된다고한다. 호출 스택은 여러 함수들을 호출하는 스크립트에서 해당 위치를 추적하는 인터프리터(웹 브라우저의 자바스크립트 인터프리터같은) 를 위한 메커니즘입니다. 현재 어떤 함수가 동작하고 있는지, 그 함수 내에서 어떤 함수가 동작하는지, 다음에 어떤 함수가 호출되어야 하는지 등을 제어합니다. - MDN Web Docs - 실행 코드 function a() { console.log("함수 a..
2023.06.19 -
이벤트루프
코드의 실행, 이벤트의 수집과 처리, 큐에 대기 중인 하위 작업을 처리하는 이벤트 루프에 기반하고 있다. 스택 - 함수의 호출들은 프레임 스택을 형성한다. - 호출할 때 함수의 인수와 지역변수를 포함하는 첫번째 프레임이 생성된다. - 인수와 지역변수는 스택 바깥에 저장되므로 바깥 함수가 반환한 후에도 계속 존재할 수 있다. 중첩 함수에서 지역 변수에 접근할 수 있는 이유가 이것이다. 힙 - 객체는 힙에 할당된다. 힙은 단순히 메모리의 큰 ( 대부분 구조화되지 않은 ) 영역을 지칭하는 용어이다. 큐 - 메시지 큐, 즉 처리할 메시지의 대기열을 사용한다. 각각의 메시지는 메시지를 처리하기 위한 함수가 연결되어 있다. - 이벤트 루프의 임의 시점에 런타임은 대기열에서 가장 오래된 메시지부터 큐에서 꺼내 처리한..
2023.04.08