NodeJS 기술면접(2)

cptkuk91·2022년 6월 14일
1

Algorithm

목록 보기
12/161

이벤트 루프란?

NodeJS의 이벤트 루프는 JavaScript의 싱글 스레드 약점을 개선하는 방식으로 사용됩니다. Task를 Offloading함으로써 약점을 개선합니다.

var, let, const의 차이점에 대해서 설명하세요.

  • var: 함수 스코프를 갖습니다. 변수를 한 번 더 선언해도 에러가 발생하지 않습니다.
  • let: 블록 스코프를 갖습니다. 재할당이 가능합니다.
  • const: 블록 스코프, 상수를 선언 할 때 사용됩니다. 선언과 동시에 할당되어야 하고, 재할당이 불가능합니다.

ES6 업데이트 이후 let, const를 사용합니다. 기본적인 변수 선언은 const를 사용해 재할당을 방지하고 재할당이 필요한 경우 let을 사용합니다.

hoisting이란?

호이스트란 변수의 정의가 범위에 따라 선언/초기화/할당/분리되는 것을 의미합니다.

함수 실행 전 필요한 변수값들을 모아 유효 범위 최상단에 선언하거나 함수 내에서 아래쪽에 존재하는 내용 중 필요한 값들을 끌어올리는 것입니다.

TDZ (Temporal Daed Zone)

const, let은 범위가 지정된 변수를 갖습니다.

호이스팅이 실행 되기전 까지 엑세스 할 수 없는 것을 TDZ라 한다.

let, const가 무조건 호이스팅이 안된다는 뜻이 아닙니다. 스코프 진입할 때 변수가 만들어지고 TDZ가 생성됩니다. 변수가 실제 있는 위치에 엑세스 할 수 없는 곳이다.

NodeJS란

Chrome V8엔진을 이용해 브라우저에서 JavaScript를 해석하듯이 서버에서 JavaScript를 동작할 수 있도록 하는 환경(플랫폼)입니다.

서버 웹 응용프로그램을 만들 때 사용됩니다. NodeJS는 비동기식 이벤트 기반 모델을 사용해 데이터 집약적인 애플리케이션에 적합합니다.

동기와 비동기의 차이점

  • 동기: 요청과 결과가 동시에 일어납니다.
  • 비동기: 요청과 결과가 동시에 일어나지 않습니다.

동기와 비동기는 상황에 따라 장단점이 있습니다. 동기방식은 설계가 직관적이고 간단하지만 결과가 나올 때 까지 대기해야 합니다. 비동기 방식은 동기보다 복잡하지만 결과가 주어지는데 시간이 걸리더라도 그 시간 동안 다른 작업을 진행할 수 있습니다.

클로저 함수의 장점

  • 데이터를 보존할 수 있습니다. (특정 데이터를 스코프 안에 가두어 폐쇄성을 갖습니다.)
  • 캡슐화를 통해 정보의 접근 제한을 합니다.

profile
메일은 매일 확인하고 있습니다. 궁금하신 부분이나 틀린 부분에 대한 지적사항이 있으시다면 언제든 편하게 연락 부탁드려요 :)

0개의 댓글