최고의 온라인 프로그래밍 과정 및 자습서 찾기 - Hackr.io (2023)

Node.js는 브라우저 외부에서 JavaScript 코드를 실행하는 데 사용되는 JavaScript 환경입니다. Chrome의 V8 엔진을 기반으로언제 어디서나 자바스크립트프로그래밍 패러다임, 웹앱 개발을 서버 및 클라이언트 측 스크립팅을 위한 다른 언어가 아닌 단일 언어로 통합합니다.

LinkedIn, IBM, GoDaddy, Groupon, Netflix, Paypal 모두 사용Node.js. 인기가 높아짐에 따라 Node.js 개발자에 대한 수요가 촉발되었고 이는 수많은 직업 기회를 의미합니다!

하지만 면접이 두렵다면 걱정하지 마세요. 이러한 Node.js 인터뷰 질문을 준비하도록 도와드리겠습니다. 엔트리 레벨 역할에 대한 몇 가지 기본 Node js 질문부터 시작하겠습니다.

Node.js 인터뷰 질문 및 답변

신입생을 위한 Node.js 면접 질문

이 초보자 Node 인터뷰 질문은 기본 개념을 다루지만 이를 철저히 아는 것이 중요합니다.

1. Node.js란 무엇입니까?

Node.js는 Chrome의 V8 JavaScript 엔진을 플랫폼으로 사용하여 구축된 JavaScript 런타임 환경입니다. 이벤트 기반 및 비 차단 I/O 모델로 인해 가볍고 효율적이기 때문에 인기가 있습니다. 성능에 중점을 두고 구축된 Node.js는 JavaScript 코드를 컴퓨터가 프로세스를 실행하는 데 사용할 수 있는 기본 기계 코드로 처리합니다.

Node.js는 Chrome의 V8 엔진을 기반으로 하지만 브라우저 자체에서 실행되지는 않습니다. 개발 과정에서 파일 시스템 API, HTTP 라이브러리 및 OS 유틸리티 메서드와 같은 다양한 기능이 엔진에 추가되어 Node.js가 컴퓨터에서 프로그램으로 실행될 수 있었습니다.

2. Node.js에서 "하위 스레드"는 어떻게 처리됩니까?

기본적으로 Node.js는 단일 스레드 프로세스입니다. 자식 스레드와 스레드 관리 모드를 개발자에게 노출하지 않습니다. 그러나 자식 스레드는 비동기 I/O와 같은 다양한 프로세스에서 Node.js에서 생성될 수 있습니다. 이러한 프로세스를 통해 생성된 하위 스레드는 백그라운드에서 실행되지만 메인 코드를 차단하거나 애플리케이션 코드를 실행하지 않습니다. 그러나 Node.js로 구동되는 애플리케이션에서 스레딩 지원이 필요한 경우 여러 도구를 활용할 수 있습니다.

3. Angular JS와 Node.js의 차이점은 무엇입니까?

다음은 Angular JS와 Node.js의 몇 가지 차이점입니다.

AngularJS

Node.js

TypeScript로 작성

C, C++ 및 JavaScript와 같은 다양한 언어로 작성됨

대화형 웹 페이지를 만드는 데 적합합니다.

소규모 프로젝트 및 애플리케이션에 적합

오픈 소스 프레임워크웹 애플리케이션 개발

다중 플랫폼 기반 런타임 환경

클라이언트 측을 위한 단일 페이지 애플리케이션을 만드는 데 사용됩니다.

서버 측 네트워킹 응용 프로그램을 만드는 데 사용됩니다.

애플리케이션을 모델-뷰-컨트롤러(MVC) 구성 요소로 분할하는 데 도움이 됩니다.

데이터베이스에 대한 쿼리 생성 지원

실시간 어플리케이션 개발에 적합

빠른 조치와 스케일링이 필요한 상황에 적합

Angular 자체는 웹 애플리케이션 프레임워크입니다.

Node.js에는 Express.js, Partial.js 등을 비롯한 많은 프레임워크가 있습니다.

4. Node.js의 주요 용도를 기술하십시오.

다음은 Node.js 함수 중 일부입니다.

  • 복잡한 단일 페이지 애플리케이션:Node.js는 온라인 그리기 도구, 메일 솔루션, 소셜 네트워킹과 같은 복잡한 단일 페이지 애플리케이션을 만드는 데 이상적입니다. 이러한 유형의 애플리케이션은 한 페이지로 제한되며 UX는 데스크톱 애플리케이션과 유사합니다. 백엔드의 비동기 데이터 흐름으로 인해 여기에서 Node.js를 사용할 수 있습니다.
  • 실시간 애플리케이션(RTA):우리는 일상 생활에서 Google Docs, Slack, Skype, WhatsApp 등과 같은 여러 실시간 애플리케이션을 사용합니다. Node.js의 이벤트 API, WebSockets 및 비동기 데이터 흐름은 데이터를 즉시 업데이트하는 완벽한 서버 운영을 보장합니다.
  • 대화방:이것은 RTA에 속할 수 있지만 인스턴트 메시징과 채팅이 최고의 실시간 애플리케이션 모델 중 하나로 부상했기 때문에 특별한 초점이 필요합니다. 채팅방 제품이 있는 경우 경량, 높은 트래픽 용량 및 상당한 데이터 흐름과 같은 요구 사항을 살펴보고 있습니다. Node.js 및 일부자바스크립트 프레임워크백엔드에서 이러한 모든 요구 사항을 충족합니다. 앞서 언급한 웹 소켓은 대화방 환경에서 메시지를 주고받는 데 유용합니다.
  • 브라우저 기반 게임:위에서 언급한 대화방은 Node.js가 완벽한 선택인 브라우저 기반 게임에도 통합될 수 있습니다. Node.js 기술을 HTML5 및 JS 도구와 결합하면 실시간 브라우저 기반 게임을 만드는 데 도움이 됩니다.
  • 데이터 스트리밍 애플리케이션:이러한 애플리케이션의 핵심 판매 포인트는 언로드 단계에서 데이터를 처리한다는 것입니다. 이를 통해 일부 부분은 미리 다운로드하여 연결을 유지하고 다른 부분은 나중에 다운로드할 수 있습니다. 이 컨텍스트에서 Node.js 스트리밍 애플리케이션은 오디오 및 비디오 데이터를 모두 처리합니다.
  • REST(Representational State Transfer) 애플리케이션 프로그래밍 인터페이스(API):REST 기반 API는 HTTP(HyperText Transfer Protocol)의 광범위한 사용으로 인해 최신 상용 소프트웨어 아키텍처 구축에서 핵심적인 위치를 차지합니다. Node.js 생태계의 Express.js 프레임워크는 빠르고 가벼운 REST API를 구축하는 데 도움이 될 수 있습니다.
  • 서버측 웹 애플리케이션:Node.js와 그 프레임워크는 서버 측 웹 애플리케이션을 만드는 데 도움이 될 수 있지만 CPU를 많이 사용하는 작업을 기대할 수는 없습니다.
  • 명령줄 도구:Node.js의 광범위한 생태계는 CLT를 구축하는 데 도움이 됩니다. 온라인 자습서를 확인하여 직접 구축하세요.

최고의 온라인 프로그래밍 과정 및 자습서 찾기 - Hackr.io (1)

5. 이벤트 기반 프로그래밍이란 무엇입니까?

이벤트 기반 프로그래밍 접근 방식은 이벤트를 사용하여 다양한 기능을 트리거합니다. 이 시나리오에서 이벤트는 키를 누르거나 마우스 버튼을 클릭하는 것과 같은 모든 것이 될 수 있습니다. 이벤트가 발생할 때마다 "publish-subscribe" 패턴에 따라 요소에 이미 등록된 콜백 함수가 실행됩니다. 이 프로그래밍 접근 방식으로 인해 Node.js는 다른 비슷한 기술보다 빠릅니다.

6. Node.js에서 REPL이란 무엇입니까?

REPL은 읽기, 평가, 인쇄 및 루프입니다. REPL은 입력된 명령이 시스템 응답 출력과 만나는 컴퓨터 환경(Windows 콘솔 또는 Linux 셸과 유사)입니다. REPL 환경은 기본적으로 Node.js와 함께 번들로 제공되며 다음 작업을 수행합니다.

  • 읽다사용자 입력을 JavaScript 데이터 구조로 변환하고 저장합니다.
  • 평가하다데이터 구조.
  • 인쇄물최종 출력
  • 루프CTRL + C를 두 번 누를 때까지 제공된 명령.

7. Node.js의 테스트 피라미드는 무엇입니까?

테스트 피라미드는 프로젝트를 성공적으로 개발하는 데 필요한 단위 테스트, 통합 테스트 및 엔드 투 엔드 테스트의 비율을 설명하는 그림입니다.

  • 단위 테스트:개별 코드 단위를 격리된 상태에서 빠르게 테스트합니다.
  • 통합 테스트:서로 다른 단위 간의 통합을 테스트합니다.
  • 종단간(E2E) 테스트:그들은 사용자 인터페이스에서 데이터 저장소까지 시스템 전체를 테스트합니다.

8. libuv는 무엇입니까?

Libuv는 비동기 입력/출력에 사용되는 Node.js의 지원 라이브러리입니다. 처음에는 Node.js용으로만 개발되었지만 이제는 Luvit, Julia, Pyuv 등과 같은 다른 시스템에서도 사용됩니다. 일부 기능은 다음과 같습니다.

  • 파일 시스템 이벤트
  • 하위 프로세스
  • 모든 기능을 갖춘 이벤트 루프 지원
  • 비동기 TCP 및 UDP 소켓

9. Node.js는 CPU 사용량이 많은 애플리케이션을 위한 최고의 플랫폼입니까?

CPU 인센티브 애플리케이션은 Node.js의 장점이 아닙니다. CPU 사용량이 많은 작업은 들어오는 요청을 차단하고 스레드를 중요한 상황으로 밀어 넣습니다.

10. Express JS 패키지의 목적은 무엇입니까?

Node.js 위에 구축된 ExpressJS는 서버 측 앱에서 경로와 서버 간의 정보 흐름을 관리하는 JS 프레임워크입니다. 가볍고 유연하며 관련 기능이 풍부하여 모바일 및 웹 애플리케이션 개발에 적합합니다.

11. Node.js와 Javascript의 주요 차이점은 무엇입니까?

Node.js

자바스크립트

크로스 플랫폼 오픈 소스 JS 런타임 엔진.

OOPS 개념을 기반으로 하는 고급 스크립팅 언어입니다.

코드는 브라우저 외부에서 실행할 수 있습니다.

코드는 브라우저에서만 실행할 수 있습니다.

서버 측에서 사용됩니다.

클라이언트 측에서 사용됩니다.

HTML 태그를 추가하는 기능이 없습니다.

HTML 태그를 추가할 수 있습니다.

Google 크롬의 V8 엔진에서만 실행할 수 있습니다.

모든 브라우저에서 실행할 수 있습니다.

C++ 및 JavaScript로 작성되었습니다.

C++로 작성된 ECMA 스크립트의 업그레이드 버전입니다.

12. Node.js의 주요 이점은 무엇입니까?

Node.js의 이점은 다음과 같습니다.

  • 배우기 쉽고 거대한 커뮤니티 지원.
  • 손쉬운 확장성과 고성능.
  • 확장된 지원으로 확장성이 뛰어납니다.
  • 풀스택 자바스크립트를 지원합니다.
  • 캐싱 메커니즘을 사용하면 웹 페이지를 더 빠르게 로드할 수 있습니다.
  • 논블로킹 I/O 시스템.

13. 비동기식과 비차단식의 차이점은 무엇입니까?

비동기식 또는 비동기식은 메시지에 대한 응답을 즉시 받지 않는다는 의미입니다. 종속성이나 실행 순서가 없습니다. 서버는 정보를 저장하고 작업이 수행되면 확인합니다. 이렇게 하면 성능과 효율성이 향상됩니다.

비 차단 작업은 작업을 중지하거나 차단하지 않습니다. 차이점은 비차단 작업은 사용 가능한 데이터가 무엇이든 즉시 응답을 받는다는 것입니다. 데이터를 사용할 수 없으면 오류를 반환합니다. 주로 I/O와 함께 사용됩니다.

14. package.json이 무엇인가요?

npm 패키지에는 프로젝트와 관련된 메타데이터가 포함된 프로젝트 루트 폴더에 package.json 파일이 포함되어 있습니다. npm이 프로젝트와 해당 종속성을 식별하는 정보를 npm에 제공합니다. 이 외에도 프로젝트 설명, 버전, 라이센스 정보 및 구성 데이터와 같은 기타 메타데이터가 포함되어 있습니다.

15. Node.js의 오류 우선 콜백을 설명하십시오.

errorback이라고도 하는 error-first 콜백은 오류와 데이터를 제공합니다. 몇 가지 인수가 필요합니다. 첫 번째 인수는 오류 개체이고 다른 인수는 데이터입니다. 오류 우선 콜백 패턴에는 많은 이점이 있습니다. 일관성이 있기 때문에 더 많은 채택이 이루어지고 데이터에 대한 참조가 없으면 처리할 필요가 없습니다. 오류가 없으면 첫 번째 인수로 null을 사용하여 콜백이 호출됩니다.

숙련된 전문가를 위한 고급 Node.js 면접 질문

이제 고급 노드 인터뷰 질문으로 이동합니다. 이러한 개념을 실제로 적용할 수 있다는 점을 기억하십시오.

16. module.exports의 목적을 설명하십시오.

객체, 함수, 문자열 등과 같은 코드 부분을 다른 파일이 액세스할 수 있도록 지정된 파일에서 내보내야 할 때 Node.js에 알려줍니다. 다음 모듈이 있다고 가정합니다.

{id: '.',exports: {},parent: null,filename: '/modtest.js',loaded: false,children: [],paths:['/node_modules','/Users/node_modules',' /Users/mycomp/projects/node_modules','/node_modules']}

내보내기 속성이 비어 있습니다. 이 속성에 코드를 적용하면 모듈 내보내기가 됩니다. 다른 파일에 모듈이 필요한 경우 내보내기 속성 값이 됩니다.

module.exports.stringProperty = "안녕하세요, 환영합니다";console.log(module);{id: '.',exports: { stringProperty: '안녕하세요, 환영합니다' }...}

17. Node.js의 리액터 패턴은 무엇입니까?

최고의 온라인 프로그래밍 과정 및 자습서 찾기 - Hackr.io (2)

리액터 패턴은 Node.js의 비차단 I/O 작업 개념입니다. 이 패턴을 통해 각 I/O 작업에 대한 핸들러(또는 콜백 함수)를 얻습니다. 각 I/O 요청은 동시성을 처리하고 요청/이벤트를 대기시키는 디멀티플렉서에 제출됩니다. 리소스, 이벤트 알리미/디멀티플렉서, 이벤트 루프, 이벤트 큐, 요청 핸들러 등으로 구성됩니다.

18. Node.js의 LTS 릴리스에 대해 설명하세요.

LTS 또는 장기 지원은 연장된 기간 동안 Node.js 프로젝트에서 지원하고 유지 관리하는 릴리스 라인에 적용됩니다. LTS에는 두 가지 유형이 있습니다.

  1. 능동적으로 유지 및 업그레이드되는 Active, 그리고
  2. 라인의 끝부분에 근접하고 짧은 기간 동안 유지되는 유지보수 라인.

19. URL 모듈이란 무엇입니까?

URL 모듈은 URL 작업을 위한 API를 제공합니다.

  • Node.js 전용 레거시 API.
  • WHATWG URL(웹 브라우저에서 사용되는 표준)을 구현하는 최신 API입니다.

몇 가지 예제 메서드는 URL 클래스 아래의 URL.port, URL.password, URL.host, url.toString()입니다. 전체 문서는 공식을 확인하십시오.URL 모듈 페이지.

20. 제어 흐름 기능을 설명하십시오.

제어 흐름 함수는 명령문 또는 함수가 실행되는 순서입니다. I/O 작업은 Node.js에서 비차단이므로 제어 흐름은 선형일 수 없습니다. 따라서 이벤트 루프에 콜백을 등록하고 제어를 다시 노드로 전달하여 다음 코드 라인이 중단 없이 실행될 수 있도록 합니다. 예를 들어:

[code language="javascript"]fs.readFile('/root/text.txt', func(err, data){console.log(data);});console.log("먼저 표시됩니다."); [/암호]

여기에서 readFile 작업은 다소 시간이 걸립니다. 그러나 다음 console.log는 차단되지 않습니다. 작업이 완료되면 표시된 데이터가 표시됩니다.

21. Node.js에서 spawn() 및 fork() 메소드의 주요 차이점은 무엇입니까?

포크

시스템 명령을 실행하도록 설계되었습니다.

V8의 새 인스턴스를 실행하는 spawn()의 특수 인스턴스입니다.

노드 프로세스 내에서 다른 코드를 실행하지 않습니다.

동일한 노드 코드베이스에서 실행되는 여러 작업자를 만들 수 있습니다.

child_process.spawn(command[, args][, options]) 주어진 명령으로 새 프로세스를 만듭니다.

다음을 사용하여 하위 프로세스를 생성하는 spawn()의 특수한 경우입니다. child_process.fork(modulePath[, 인수][, 옵션])

상위 및 하위 프로세스 간에 스트리밍 인터페이스(바이너리 형식의 데이터 버퍼링)를 생성합니다.

상위 프로세스와 하위 프로세스 간의 통신(메시징) 채널을 만듭니다.

데이터 스트리밍(읽기/쓰기)과 같은 연속 작업에 더 유용합니다. 예를 들어 생성 프로세스에서 상위 프로세스로 이미지/파일을 스트리밍합니다.

메시징에 더 유용합니다. 예를 들어 JSON 또는 XML 데이터 메시징입니다.

22. Node.js에서 ExpressJS 패키지의 목적은 무엇입니까?

ExpressJS 패키지 또는 프레임워크는 Node.js 위에 구축되어 단일 페이지, 다중 페이지 및 하이브리드 서버 기반 애플리케이션의 개발을 빠르게 추적합니다. Express는 MEAN 스택의 백엔드 부분이라고 합니다.

23. process.nextTick()과 setImmediate()의 차이점을 강조 표시합니다.

let execseq = function() { setImmediate(() => console.log("immediate")); process.nextTick(() => console.log("nextTick")); console.log("이벤트 루프");}

이렇게 하면 "이벤트 루프", "nextTick" 및 "즉시"가 실행됩니다.

24. Node.js와 Ajax의 차이점은 무엇입니까?

Ajax는 페이지를 새로 고치지 않고 페이지 콘텐츠를 업데이트하는 클라이언트 측 기술입니다. Node.js는 서버 소프트웨어를 개발하는 데 사용되는 서버 측 JavaScript입니다. 또한 Node.js는 완전한 개발 환경인 반면 Ajax는 데이터를 얻거나 스크립트를 실행합니다.

25. 왜 "앱"과 "서버"를 분리해야 합니까?

앱과 서버 기능을 분리하면 코드를 여러 모듈로 나눌 수 있으므로 모듈 간의 종속성이 줄어듭니다. 각 모듈은 단일 작업을 수행합니다. 마지막으로 논리 분리는 중복 코드를 방지하는 데 도움이 됩니다.

26. setImmediate()와 setTimeout()의 차이점을 설명하십시오.

즉시라는 단어는 약간 오해의 소지가 있지만 콜백은 I/O 이벤트 콜백 후에만 발생합니다. setImmediate()를 호출할 때 setTimeout()은 일회성 콜백 실행을 위한 지연(밀리초 단위)을 설정하는 데 사용됩니다. 실행하면:

setImmediate(function() {console.log('setImmediate')})setTimeout(function() {console.log('setTimeout')}, 0)

출력은 "setTimeOut"과 "setImmediate"로 표시됩니다.

27. Node.js의 인기 있는 모듈을 나열하고 설명하십시오.

다음은 Node.js의 핵심 모듈입니다.

http

Node.js http 서버를 만들기 위한 클래스, 메서드 및 이벤트를 포함합니다.

URL

URL 확인 및 구문 분석을 위한 메서드를 포함합니다.

쿼리스트링

쿼리 문자열을 처리합니다.

파일 경로 작업을 위한 메서드를 포함합니다.

fs

파일 I/O를 처리하기 위한 클래스, 메서드 및 이벤트로 구성됩니다.

유틸리티

개발자에게 유용한 유틸리티 기능이 포함되어 있습니다.

28. 스트림 읽기 및 쓰기의 예는 무엇입니까?

다음은 읽기 스트림의 예입니다.

var readStream = fs.createReadStream('data.txt');readStream.on('data', function(chunk) {data += chunk;}); 다음은 스트림으로 읽는 예입니다. var writeStream = fs.createWriteStream( 'dataout.txt');writeStream.write(data,'UTF8');writeStream.end();

29. Node.js의 crypto 모듈은 무엇입니까? 어떻게 사용됩니까?

Node.js의 crypto 모듈은 암호화에 사용됩니다. 즉, 개방형 SSL의 해시, HMAC, 서명, 해독, 암호화 및 확인 기능에 대한 래퍼 세트가 포함되어 있습니다.

다음은 암호화에 암호를 사용하는 예입니다.

const crypto = require('crypto'); const cipher = crypto.createCipher('usrnm', 'pwdd'); var encryptd = cipher.update('해커에 오신 것을 환영합니다', 'utf8', 'hex'); 암호화 += cipher.final('hex'); console.log(encryptd);

해독을 사용하여 위의 내용을 해독하여 동일한 텍스트가 반환되는지 확인합니다.

const crypto = require('crypto'); const decipher = crypto.createDecipher('usrnm', 'pwdd'); var encryptd = '<여기에 이전 출력 암호화 코드 입력>'; var decryptd = decipher.update(encryptd, 'hex', 'utf8'); 복호화 += decipher.final('utf8'); console.log(복호화);

30. DNS 모듈에 대해 설명하십시오.

DNS 모듈은 이름과 실제 DNS 조회를 확인하는 데 사용됩니다. 이 모듈을 사용하면 DNS 서버가 도메인/서브도메인을 IP 주소로 변환하므로 IP 주소를 기억할 필요가 없습니다.

31. Node.js의 보안 메커니즘을 설명하세요.

보안 메커니즘은 다음과 같습니다.

  • 승인 코드:인증 코드는 승인되지 않은 제3자로부터 Node.js를 보호하는 데 도움이 됩니다. Node.js에 액세스하려는 사람은 누구나 리소스 공급자 네트워크의 GET 요청을 거칩니다.
  • 인증된 모듈:인증 모듈은 타사 코드가 있는지 여부를 식별하기 위해 Node.js 라이브러리를 스캔하는 필터와 같습니다. 모든 해킹은 인증서를 사용하여 감지할 수 있습니다.
  • 선별된 스크리닝 레지스터:이것은 모든 패키지(코드 및 소프트웨어)의 안전성을 확인하는 품질 관리 시스템입니다. 이 스캔은 확인되지 않았거나 신뢰할 수 없는 라이브러리가 애플리케이션에 들어가는 것을 제거하는 데 도움이 됩니다.
  • 정기 업데이트:최신 버전의 Node.js를 다운로드하면 잠재적인 해커와 공격을 방지할 수 있습니다.

32. Node.js의 다양한 유형의 API 기능을 설명하십시오.

Node.js의 두 가지 유형의 API 함수는 다음과 같습니다.

  • 비동기식/비차단:이러한 요청은 서버가 응답할 때까지 기다리지 않습니다. 그들은 계속해서 다음 요청을 처리하고 응답이 수신되면 동일하게 수신합니다.
  • 동기/차단:다른 요청을 차단하는 요청입니다. 요청이 완료된 후에야 다음 요청이 처리됩니다.

33. Node.js의 LTS 버전은 무엇입니까?

장기 지원 또는 LTS 버전은 중요한 수정 사항, 성능 향상 및 보안 업데이트를 호출하는 Node.js 릴리스입니다. 이러한 버전은 최소 1.5년 동안 지원을 받으며 애플리케이션의 보안 및 안정성에 중점을 둡니다.

34. 주장이 어떻게 작동하는지 설명하십시오.

Assert는 Node.js에서 테스트를 작성하는 데 사용됩니다. 피드백은 실행 중인 테스트 사례 중 하나라도 실패하는 경우에만 제공됩니다. 불변성을 테스트하기 위해 모듈은 어설션 테스트 세트를 제공합니다. Node.js에서 내부적으로 사용하지만 require('assert') 코드를 사용하면 다른 애플리케이션에서도 사용할 수 있습니다.

35. 콜백지옥이란?

Node.js에서 콜백 지옥은 Pyramid of Doom이라고도 합니다. 집중적으로 중첩되고 읽을 수 없고 관리할 수 없는 콜백으로 인해 코드를 읽고 디버그하기가 더 어려워집니다. 비동기 로직의 부적절한 실행으로 인해 발생합니다.

36. Node.js에서 스텁이란 무엇입니까?

스텁은 구성 요소 동작을 자극하는 데 사용되는 프로그램 또는 기능입니다. 스텁은 테스트 사례 중에 기능에 대한 답변을 제공합니다.

37. 이벤트 루프란 무엇입니까?

Node.js는 비동기 콜백을 처리합니다. 이는 Node.js의 비차단 입력/출력의 기초이며 가장 중요한 기능 중 하나입니다. Node.js는 이벤트 기반이라는 점을 기억하세요. 이벤트 기반 Node.js의 특성으로 인해 리스너는 이벤트가 발생할 때 전자에 의해 실행될 콜백에 대한 이벤트에 첨부될 수 있습니다.

Node.js는 이벤트 루프를 실행한 다음 출력을 기다릴 필요 없이 나머지 코드로 이동합니다. 전체 작업이 완료되면 출력을 수신하고 콜백 함수가 실행됩니다. 응답을 받으면 기능이 하나씩 실행됩니다.

38. Node.js에서 스트림이란 무엇입니까? 유형은 무엇입니까?

Node.js에서 스트림은 문자열 및 배열과 유사한 데이터 모음입니다. 또한 스트림은 소스 데이터를 읽거나 대상 데이터를 연속적으로 쓸 수 있는 개체입니다. 이러한 스트림은 많은 양의 정보를 읽고 처리하는 데 특히 유용합니다. Node.js에는 다음과 같은 네 가지 유형의 스트림이 있습니다.

  • 읽기 가능: 소스에서 많은 양의 데이터를 읽을 때 사용
  • 쓰기 가능: 대상에 데이터를 쓸 때 사용
  • 듀플렉스: 읽기와 쓰기 모두에 사용
  • 변환: 데이터 수정에 사용되는 이중 스트림

39. Node.js의 타이밍 기능을 나열하고 설명하십시오.

Node.js는 특정 시간 이후에 코드를 실행하기 위한 여러 기능을 포함하는 타이머 모듈을 제공합니다. 이 모듈에서 제공하는 일부 기능은 다음과 같습니다.

  • process.nextTick:이 함수는 이벤트 루프의 다음 반복에서 호출해야 하는 콜백 함수를 예약합니다.
  • setTimeout/clearTimeout:이 함수는 할당된 시간(밀리초) 후에 코드 실행을 예약합니다.
  • setImmediate/clearImmediate:이 함수는 기존 이벤트 루프 주기가 끝날 때 코드를 실행합니다.
  • setInterval/clearInterval:이 함수는 코드 블록을 여러 번 실행하는 데 사용됩니다.

40. process.nextTick()과 setImmediate()의 차이점을 강조 표시합니다.

process.nextTick()과 setImmediate()는 모두 Timers 모듈의 함수이지만 차이점은 실행에 있습니다.

  • process.nextTick() 함수는 이벤트 루프에서 다음 통과할 때까지 또는 이벤트 루프가 최고조에 달할 때까지 작업 실행을 대기한 다음에만 콜백 함수가 호출됩니다.
  • setImmediate() 함수는 입력/출력 작업 실행을 위해 이벤트 루프로 반환하는 이벤트 루프의 다음 주기에서 콜백 메서드 실행에 사용됩니다.

41. Node.js의 readFile과 createReadStream에 대해 설명하세요.

readFile과 createReadStream은 모두 Node.js에서 제공하는 파일을 읽고 실행하는 방법입니다.

readFile 프로세스는 전체 파일이 버퍼에 입력되고 읽을 수 있는 경우에만 응답을 반환하는 완전히 버퍼링됩니다. 이 프로세스는 메모리를 많이 사용하며 파일 크기가 큰 경우 속도가 느려질 수 있습니다.

createReadStream 프로세스는 부분적으로 버퍼링되어 전체 프로세스를 일련의 이벤트로 취급합니다. 이 과정에서 전체 파일은 청크로 분할되어 처리된 다음 개별적으로 연속적으로 응답으로 전송됩니다. readFile과 달리 createReadStream은 대용량 파일을 읽고 처리할 때 효과적입니다.

42. Node.js는 디버거를 제공합니까?

내장 TCP 프로토콜과 디버깅 클라이언트는 Node.js에서 제공합니다. 파일을 디버그하려면 디버그하려는 JS 파일의 이름 앞에 다음 인수를 사용할 수 있습니다.

노드 디버그 [script.js | -e "스크립트" | :)

43. Node.js의 종료 코드를 설명하십시오.

Node.js의 종료 코드는 전역 개체도 포함할 수 있는 프로세스를 완료하는 특정 코드 그룹입니다. Node.js의 일부 종료 코드는 다음과 같습니다.

  • 내부 JavaScript 평가 실패
  • 치명적 오류
  • 내부 예외 처리기 런타임 오류
  • 미사용
  • 잡히지 않은 치명적인 예외

44. NODE_ENV가 사용되는 이유는 무엇입니까?

Node.js 프로젝트가 생산 단계에 있을 때 Node.js는 NODE_ENV 변수를 사용하여 플래그를 지정하는 원칙을 홍보합니다. NODE-ENV가 프로덕션으로 설정되면 애플리케이션이 평소보다 2~3배 빠른 속도로 실행됩니다. 변수는 또한 프로젝트 개발 단계에서 판단력을 향상시킵니다.

45. Node.js의 EventEmitter는 무엇입니까?

Node.js에는 이벤트를 방출할 수 있는 모든 객체를 보유하는 EventEmitter 클래스가 있습니다. 이러한 객체는 여러 함수를 객체가 내보낸 이벤트에 연결할 수 있는 eventEmitter.on()이라는 함수를 보유합니다. EventEmitter 클래스의 개체가 이벤트를 발생시킬 때마다 이벤트에 연결된 모든 함수가 동기적으로 호출됩니다.

46. ​​퓨니코드란?

퓨니코드는 유니코드 문자열을 ASCII로 변환하는 데 유용한 Node.js의 인코딩 구문으로 정의할 수 있습니다. 이것은 호스트 이름이 유니코드가 아닌 ASCII 코드만 이해할 수 있기 때문에 수행됩니다. 최근 버전에서는 기본 패키지에 번들로 포함되어 있었지만 다음 코드를 사용하여 이전 버전에서 사용할 수 있습니다.

퓨니코드 = require('퓨니코드');

47. JIT의 개념을 설명하고 Node.js와의 관계를 강조하십시오.

JIT 또는 Just-in-time 컴파일러는 바이트코드(해석 가능한 명령어로 구성됨)를 명령어로 변환하여 프로세서에 보냅니다. 프로그램의 작성 부분이 완료되면 소스 언어 명령문은 대상 하드웨어 플랫폼 프로세서와 유사한 데이터를 전달하는 코드가 아니라 컴파일러에 의해 바이트코드로 컴파일됩니다.

Node.js는 코드 실행 속도를 크게 향상시키는 JIT 컴파일을 사용합니다. 소스 코드를 가져와 런타임에 기계 코드로 변환합니다. 이를 통해 정기적으로 호출되는 함수를 머신 코드로 컴파일하여 전체 코드 실행 속도를 높입니다.

48. Node.js에서 버퍼 클래스를 사용하는 이유는 무엇입니까?

Node.js에서 버퍼 클래스는 정수 배열과 유사한 방식으로 원시 데이터를 저장합니다. 그러나 V8 힙 외부에 할당된 원시 메모리 덤프와 통신합니다. Buffer 클래스는 전역 클래스이며 버퍼 모듈을 가져오지 않고도 애플리케이션에서 액세스할 수 있습니다. 일반적으로 순수한 JavaScript 코드가 바이너리 데이터와 일치하지 않기 때문에 사용됩니다.

49. 포크 및 스폰 방법은 어떻게 작동합니까?

Node.js에서 spawn()은 사용 가능한 명령 세트로 새 프로세스를 시작합니다. 이것은 새로운 V8 인스턴스를 생성하지 않습니다. 노드 모듈의 단일 복사본만 프로세서에서 활성화됩니다. 이 방법은 자식 프로세스가 노드에 많은 양의 데이터를 반환할 때 사용할 수 있습니다.

반면에 fork()는 새로운 V8 엔진 인스턴스를 생성하는 spawn()의 특별한 경우입니다. 이 방법을 통해 여러 작업자가 여러 작업을 위해 단일 노드 코드 기반에서 실행됩니다.

50. Express JS 애플리케이션을 작성하는 단계를 설명하십시오.

ExpressJs 애플리케이션을 설정하려면 다음 단계를 거쳐야 합니다.

  • 프로젝트 이름으로 폴더 생성
  • 폴더 안에 package.json이라는 파일을 만듭니다.
  • 명령 프롬프트에서 'npm install' 명령을 실행하여 패키지 파일\에 있는 라이브러리를 설치합니다.
  • server.js라는 파일을 만듭니다.
  • index.js라는 이름의 폴더로 구성된 패키지 내에 '라우터' 파일을 만듭니다.
  • 응용 프로그램은 index.html 파일을 포함하는 패키지 내부에 생성됩니다.

보너스 팁

다음은 인터뷰를 확실히 할 수 있는 몇 가지 추가 팁입니다.

  • Node.js 프로그래밍 인터뷰 질문에 집중하세요.포괄적인 목록으로 이 부분을 쉽게 만들었습니다. Hackr을 포함하여 온라인에서 이러한 리소스 중 일부를 찾을 수 있습니다. 모든 기술 인터뷰에서와 마찬가지로
  • 관행:즉석에서 코딩하는 것은 여가 시간보다 더 긴장되지만 면접관은 귀하의 기술이 실제로 작동하는 것을 볼 필요가 있습니다. 인터뷰를 준비하기 위해 몇 가지 코딩 질문을 연습하세요.
  • 관련 도구 살펴보기:다른 관련 기술 도구에 대한 경험이 있고프레임워크. 여기에는 프론트엔드 프레임워크용 MySQL, Mongo 또는 Postgres 및 React, Angular 또는 Backbone이 포함됩니다.

결론: Node.js 인터뷰 준비 시작

이상으로 Node.js 인터뷰 질문을 마치겠습니다. Node js 인터뷰를 준비할 때 가장 좋은 것을 확인해 보세요.Node.js 튜토리얼, 커뮤니티 구성원이 큐레이팅합니다. 이것들은 모두 Node js 인터뷰에서 당신을 돕는 데 큰 도움이 될 것입니다. 장기 학습에 전념할 준비가 되셨다면?

Node.js 개발자 과정 등록

자주 묻는 질문

1. 노드 인터뷰는 어떻게 준비합니까?

위에 나열된 Node js 프로그래밍 인터뷰 질문의 포괄적인 목록을 통해 Node 인터뷰를 준비할 수 있습니다. 시간을 내어 Node.js 코딩 질문도 연습하세요!

2. Node JS에서 콜백이란 무엇입니까?

콜백은 작업이 완료되었을 때 호출되는 함수입니다. 그 동안 다른 코드가 실행되도록 허용하고 차단을 방지합니다.

사람들은 또한 읽고 있습니다:

  • NodeJS와 AngularJS의 차이점
  • PHP 대 NodeJS
  • Chrome 확장 프로그램을 만드는 방법
  • 도커 인터뷰 질문
  • DevOps 면접 질문
  • 부트스트랩 인터뷰 질문 및 답변
  • Android 인터뷰 질문 및 답변
  • Java 인터뷰 질문 및 답변
  • Jquery 인터뷰 질문
  • 데이터 구조 인터뷰 질문

References

Top Articles
Latest Posts
Article information

Author: Allyn Kozey

Last Updated: 07/10/2023

Views: 5271

Rating: 4.2 / 5 (63 voted)

Reviews: 86% of readers found this page helpful

Author information

Name: Allyn Kozey

Birthday: 1993-12-21

Address: Suite 454 40343 Larson Union, Port Melia, TX 16164

Phone: +2456904400762

Job: Investor Administrator

Hobby: Sketching, Puzzles, Pet, Mountaineering, Skydiving, Dowsing, Sports

Introduction: My name is Allyn Kozey, I am a outstanding, colorful, adventurous, encouraging, zealous, tender, helpful person who loves writing and wants to share my knowledge and understanding with you.