카테고리 없음
16주차 (2)
jaeoun0238
2025. 2. 11. 21:27
3. async/await 이란 무엇인지 설명해주세요.
async/await는 자바스크립트(ES8)에서 비동기 코드를 보다 간결하고 직관적으로 작성할 수 있게 도와주는 문법입니다.
- async 키워드를 함수 앞에 붙이면 해당 함수는 Promise 객체를 반환합니다.
- 함수 내부에서 비동기로 처리해야 하는 부분 앞에 await 키워드를 사용합니다.
- await 키워드는 Promise가 처리(이행/거부)될 때까지 자바스크립트 엔진을 일시 정지(Blocking이 아닌, 해당 async 함수의 호출 부분만 일시 정지)시킵니다.
- Promise가 이행되면 결과 값을 반환하고, 거부되면 예외를 던집니다(try/catch 구문을 통해 에러를 잡을 수 있음).
오류 처리를 try/catch문을 사용해 보다 명확하게 할 수 있습니다.
4. Hoisting이란 무엇인지 설명해주세요.
호이스팅(Hoisting)은 자바스크립트에서 변수와 함수 선언이 해당 스코프의 최상단으로 끌어올려지는 듯한 동작을 말합니다.
자바스크립트 엔진이 코드를 해석할 때, 변수와 함수 선언을 먼저 메모리에 할당해둔 후 실행하기 때문에 발생합니다.
변수 호이스팅
- var 키워드로 선언된 변수는 선언 부분만 스코프의 최상단으로 끌어올려집니다.
- let, const 키워드는 블록 스코프 내에서 호이스팅되지만, TDZ(Temporal Dead Zone)에 의해 선언 전에 접근하면 오류가 발생합니다.
함수 호이스팅
- 함수 선언문(function foo() {})은 선언 전체가 호이스팅됩니다.
- 함수 표현식(const foo = function() {})은 변수 호이스팅 규칙을 따릅니다(var, let, const에 따라 달라짐).
<예상 면접 질문>
Event Loop(이벤트 루프)에 대해 설명해주세요.
- 자바스크립트가 단일 스레드 환경에서 비동기 작업을 처리하기 위해 사용하는 메커니즘입니다.
- 콜 스택, 메시지 큐, 마이크로태스크 큐(프로미스 처리 등)와의 관계를 설명할 수 있어야 합니다.
node.js에서 비동기 처리를 위한 방법들은 어떤 것들이 있나요?
- 콜백 함수, Promise, async/await, 이벤트 기반 아키텍처 등
- 실무에서 에러 핸들링과 코드 구조화를 어떻게 하는지
node.js에서 비동기 처리를 위한 방법들은 어떤 것들이 있나요?
- 콜백 함수, Promise, async/await, 이벤트 기반 아키텍처 등
- 실무에서 에러 핸들링과 코드 구조화를 어떻게 하는지