23.1.12[JS와 싱글스레드]

커피 내리는 그냥 사람·2023년 1월 12일
0

항해99

목록 보기
94/108

실전 면접 중 괜찮았던 질문 정리 - JS와 싱글스레드

실전 면접 중 목터뷰에 없는 내용에서 받고 괜찮았던, 알면 좋은 면접 질문이 있어서 정리해본다. 실제로 코딩애플 영상을 보면서 익혔던 구조인데 면접에서 나와서 다행히 반절은 대답할 수 있었다. 부디 좋은 결과 있길.. 이번에는 제발..

질문

  • 자바스크립트는 싱글스레드로 작동하는 것으로 알고 있다. 자바스크립트의 싱글스레드 작동 원리를 아는데까지 이야기해줄 수 있는가?

정리할 수 있는 대답 :

  • 웹 상에서 멀티스레드가 가지는 동시성(공유된 자원을 여러 스레드가 동시에 접하는 것) 문제를 해결하기 위해 싱글스레드인 자바스크립트를 채택했다.

  • 싱글스레드라 한 가지 일만 하는 것 같지만 자바스크립트는 동시성을 지원하는데 이는 브라우저에 내장된 "이벤트 루프"가 있기 때문에 가능하다.

  • 자바스크립트 자체가 비동기를 지원하는 것은 아니지만 콜스택을 통해 요청 작업을 순차적으로 실행하면서 그렇게 보일 뿐이다.(콜스택 : 한 번에 한 줄씩밖에 해석을 못 해서 싱글스레드일 수밖에 없다.)

(참고) 힙 : 콜스택에서 사용하는 변수들의 모임이 있는 곳이라 생각하면 됨

  • WebAPI(DOM API, Timer Funtion, HTTP requeset)가 대기중이다가 대기가 끝난 후 이벤트 루프 안에 태스크 큐로 들어가고 -> 태스크 큐에 내용이 비어있는 콜스택에 푸쉬되면 하나씩 처리

  • setTimeout, 이벤트리스너, ajax 함수 쓰면 비동기 처리도 가능하다.

참고 블로그

코딩애플 강좌
참고 블로그

profile
커피 내리고 향 맡는거 좋아해요. 이것 저것 공부합니다.

0개의 댓글