백엔드
1. 이벤트 루프 (Event Loop)에 대해 설명해보세요.
2. 콜백 함수 (Callback Function)가 무엇인지, 어떻게 사용되는지 설명해보세요.
1. 이벤트 루프 (Event Loop)에 대해 설명해보세요.
자바스크립트는 싱글 스레드 기반 언어이기 때문에, 한번에 하나씩 작업을 진행한다.
그러나 실제 사용을 해보면 많은 작업이 동시에 처리되고 있는 것을 알 수 있다.
이는 자바스크립트가 이벤트루프를 이용해서 비동기 처리를 하고 있기 때문이다.
즉 이벤트 루프를 이용해서 비동기 방식으로 동시성을 지원한다.
하지만 비동기로 동작하는 핵심 요소는 자바스크립트가 아닌 브라우저가 가지고 있다.
(Node의 경우 libuv 라이브러리)
[JavaScript] 이벤트 루프란? (velog.io)
이벤트 루프는 자바스크립트 엔진이 비동기 처리를 위해 콜백 함수를 백그라운드로 보내서 처리하고,
해당 작업이 완료되면 콜백 함수를 태스크 큐(Task Queue)에 추가한다.
태스크 큐에는 실행 가능한 작업들이 들어있으며, 이벤트 루프는 콜 스택(Call Stack)이 비어있는지 확인한 후,
콜 스택이 비어있다면 태스크 큐에서 콜백 함수를 꺼내와 콜 스택에 추가한다.
이후 콜 스택에서 실행되어 처리된다.
그리하여 이벤트 루프는 콜백함수를 비동기적으로 처리하고, 처리된 콜백을 적절한 시점에 콜스택으로 이동시켜
실행되게한다.
이를 통해 js는 비동기 처리를 하면서도 싱글스레드로 동작한다
2. 콜백 함수 (Callback Function)가 무엇인지, 어떻게 사용되는지 설명해보세요.
콜백 함수는 함수에 파라미터로 들어가는 함수다
js에서 순차적으로 코드를 실행할 때 쓴다. 이벤트 리스너 쓸때 겪었다
예시로는 .addEventListener를 쓰면 .addEventListener('ㅁㄴㅇ', function(){
}) 이런식으로 썼는데 function()이 콜백이라 할 수 있다
'이력서 스터디' 카테고리의 다른 글
4/17(월) 데일리 과제 (0) | 2023.04.17 |
---|---|
4/14(금) 데일리 과제 (0) | 2023.04.14 |