- 이벤트 루프
task 큐와 call 스택을 수시로 감시하여 call 스택에 처리할 함수가 없고, task 큐에 처리할 함수가 존재하면 task 큐에 있는 함수를 call 스택으로 전달하는 역할
자바스크립트는 싱글 스레드로 그 자체로는 비동기 작업을 할 수 없지만, 웹 브라우저의 도움을 받아서 구현이 가능함
ex) 비동기 함수를 호출 → WebAPI에서 처리 → 개발자가 지정한 작업(콜백 함수)이 task큐에 등록 → 이벤트 루프에 의해 call 스택으로 전달 → 처리
- 프로토타입(Prototype)
자바스크립트는 프로토타입 기반의 객체 지향 프로그래밍을 지원하며, 자바스크립트의 대부분은 객체이고, 모든 객체는 부모 객체와 연결되어 있음
이때 부모 객체를 프로토타입이라고 함
프로토타입 체인을 이용하여 상속을 구현함
인스턴스의 프로퍼티, 메서드를 호출한 경우 인스턴스에 해당 프로퍼티, 메서드가 존재하지 않으면 프로토타입 내부 슬롯을 참조함
- 호이스팅(Hoisting)
변수 선언/함수 선언이 해당 스코프의 최상단으로 끌어올려진 것 같은 현상
변수 선언문의 경우 선언과 초기화가 동시에 이루어지며, 함수 선언문은 함수 객체로 등록함
단, var의 경우만 선언 및 초기화가 동시에 진행되어 undefined로 접근 가능하며,
let, const의 경우 선언과 초기화가 따로 진행되기 때문에 호이스팅되지만, 호이스팅이 이루어지지 않은 것처럼 보임
- Promise
ES6에서 추가된 비동기 처리에 사용되는 객체
기존 콜백 함수 사용 시 콜백 지옥, 가독성 문제, 예외처리가 어려움 점을 보완하기 위해 사용함
- 동기 비동기
동기
A함수 작업이 끝난 뒤 B함수가 실행됨
요청을 보낸 뒤 응답을 받아야지 다음 동작이 이루어짐
시간 순서를 중요시하고, 작업을 직렬적으로 처리함
설계가 간단하고 직관적이지만 시스템 전체적인 효율이 저하됨
비동기
A함수를 수행하면서 B함수를 같이 수행
여러 작업을 동시에 수행하는 방식
작업을 병렬적으로 처리하여 시간적 효율성이 높음
동기 방식보다 복잡하지만, 자원을 효율적으로 사용할 수 있음
- 콜백 함수
어떤 특정 함수가 실행을 마친 뒤에 실행되는 함수
비동기 데이터를 처리하기 위해 사용함
A함수의 파라미터로 B함수를 넣어 표현
A함수의 작업이 종료된 후 B함수를 실행함
코드 가독성이 좋지 않아 콜백 함수를 많이 사용하면 콜백 지옥에 빠질 수 있음
'면접 요약 정리' 카테고리의 다른 글
기술 면접 준비 - 기초 CS 지식 (0) | 2022.11.17 |
---|---|
기술 면접 준비 - 데이터베이스 (1) | 2022.11.16 |
socket.io 정리 (0) | 2022.10.28 |
쿠키, 세션, JWT 정리 (0) | 2022.10.27 |
HTTP와 HTTPS 정리 (1) | 2022.10.23 |