카테고리 없음

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, 이벤트 기반 아키텍처 등
  • 실무에서 에러 핸들링과 코드 구조화를 어떻게 하는지