> 웹 프론트엔드 > JS 튜토리얼 > NODE 면접 질문...

NODE 면접 질문...

WBOY
풀어 주다: 2024-09-11 16:30:32
원래의
975명이 탐색했습니다.

NODE Interview Questions...

1. Node.js란 무엇인가요?

답변: Node.js는 개발자가 서버 측에서 JavaScript 코드를 실행할 수 있도록 해주는 Chrome의 V8 JavaScript 엔진을 기반으로 구축된 런타임 환경입니다. 확장 가능한 네트워크 애플리케이션을 구축하도록 설계되었으며 비차단 이벤트 기반 아키텍처를 지원합니다.

2. Node.js와 JavaScript의 차이점은 무엇입니까?

답변: JavaScript는 브라우저에서 실행되는 프로그래밍 언어입니다.
Node.js는 서버 측에서 JavaScript를 실행할 수 있게 해주는 런타임 환경입니다.

3. Node.js의 이벤트 중심 프로그래밍이란 무엇입니까?

답변: 이벤트 중심 프로그래밍은 프로그램의 흐름이 사용자 작업, 센서 출력 또는 다른 프로그램의 메시지와 같은 이벤트에 의해 결정되는 프로그래밍 패러다임입니다. Node.js에서 이벤트 기반 프로그래밍은 이벤트 이미터와 리스너를 사용하여 비동기 작업을 처리하는 데 핵심입니다.

4. process.nextTick()과 setImmediate()의 차이점은 무엇입니까?

답변: process.nextTick()은 현재 작업이 완료된 후 이벤트 루프가 계속되기 전에 실행되도록 콜백을 예약합니다.
setImmediate()는 I/O 이벤트 후에 이벤트 루프에 배치되도록 콜백을 예약합니다.

5. Node.js는 비동기 작업을 어떻게 처리합니까?

답변: Node.js는 이벤트 중심 아키텍처를 갖춘 단일 스레드, 비차단 I/O 모델을 사용합니다. 콜백, Promise 및 async/await를 활용하여 비동기 작업을 처리하므로 서버가 메인 스레드를 차단하지 않고 동시에 많은 요청을 처리할 수 있습니다.

6. Node.js의 스트림이란 무엇입니까?

답변: 스트림은 데이터를 청크로 읽거나 쓸 수 있게 해주는 Node.js의 객체입니다. 대용량 데이터를 더 작고 관리 가능한 청크로 처리하여 메모리 사용량을 줄이는 데 사용됩니다. 스트림에는 네 가지 유형이 있습니다.

읽기 가능(예: fs.createReadStream())
쓰기 가능(예: fs.createWriteStream())
이중(읽기 및 쓰기 가능)
변환(출력이 입력의 변환인 이중 스트림 유형)

7. Node.js의 동기 코드와 비동기 코드의 차이점은 무엇입니까?

정답: 동기 코드가 차단됩니다. 다음 작업으로 이동하기 전에 각 작업이 완료될 때까지 기다립니다.
비동기 코드는 비차단형입니다. 이를 통해 작업이 완료될 때까지 기다리지 않고 프로그램이 계속 실행될 수 있습니다(콜백, 약속 또는 비동기/대기를 통해 처리됨).

8. Express.js의 미들웨어 기능은 무엇입니까?

답변: Express.js의 미들웨어 기능은 요청-응답 주기 동안 실행되는 기능입니다. 다음 미들웨어 기능으로 제어를 전달하기 전에 요청, 응답을 수정하거나 일부 논리를 실행할 수 있습니다. 일반적인 유형은 다음과 같습니다.

애플리케이션 수준 미들웨어: express() 인스턴스에 바인딩
라우터 수준 미들웨어: express.Router() 인스턴스에 바인딩
오류 처리 미들웨어

9. Node.js에서 이벤트 루프는 어떻게 작동하나요?

*답변: * 이벤트 루프는 Node.js에서 비동기 콜백을 처리하는 역할을 합니다. 호출 스택, 작업 대기열 및 I/O 작업을 지속적으로 모니터링합니다. 호출 스택이 비어 있으면 이벤트 큐의 작업을 처리하여 과도한 작업을 연기하여 비차단 I/O를 보장합니다.

10. Node.js에서 클러스터 모듈의 용도는 무엇입니까?

답변: Node.js는 클러스터 모듈을 사용하여 동일한 서버 포트를 공유하는 하위 프로세스(작업자)를 생성할 수 있습니다. 이는 Node.js의 여러 인스턴스를 실행하여 더 많은 요청을 동시에 처리함으로써 로드 밸런싱과 멀티 코어 시스템을 최대한 활용하는 데 도움이 됩니다.

11. Node.js에서 require()와 import의 차이점은 무엇입니까?

답변: require()는 CommonJS 모듈 시스템의 일부이며 동기식입니다. ES6 이전의 Node.js 버전에서 모듈을 로드하는 데 사용됩니다.
import는 ES6 모듈 시스템의 일부이며 JavaScript의 기본 모듈 시스템과 함께 작동하여 트리 쉐이킹 및 정적 분석을 지원합니다. ECMAScript 모듈이 포함된 최신 버전의 Node.js에서 사용됩니다.

12. Node.js에서 오류를 어떻게 처리합니까?

답변: 오류 처리는 여러 가지 방법으로 수행할 수 있습니다.

오류 우선 패턴의 콜백 사용(callback(err, result))
거부된 Promise에 대해 .catch()와 함께 Promise 사용
async/await와 함께 try...catch 블록 사용
오류 처리를 위해 Express.js의 미들웨어 사용

13. package.json 파일의 목적은 무엇입니까?

답변: package.json은 프로젝트 및 해당 종속성에 대한 메타데이터가 포함된 Node.js 프로젝트의 매니페스트 파일입니다. 프로젝트의 이름, 버전, 기본 진입점, 스크립트, 종속성, devDependency 및 기타 구성을 정의합니다.

  1. Node.js 애플리케이션을 어떻게 보호하나요? 답변: 보안 통신을 위해 HTTPS를 사용하세요. SQL 주입 및 XSS(교차 사이트 스크립팅)를 방지하기 위해 데이터 유효성 검사 및 삭제를 구현합니다. 강력한 인증 및 승인 메커니즘(예: JWT)을 사용합니다. 환경 변수와 보안 스토리지를 사용하여 민감한 데이터를 보호하세요. 속도 제한 및 시간 초과로 DOS 공격을 방지합니다. 패키지를 최신 상태로 유지하고 npm audit과 같은 감사 도구를 사용하세요.

15. fs.readFile()과 fs.createReadStream()의 차이점은 무엇입니까?

*정답: * fs.readFile()은 전체 파일을 메모리로 읽어온 다음 파일 내용으로 콜백을 실행합니다.
fs.createReadStream()은 파일을 청크로 읽어 데이터를 한 번에 로드하는 대신 데이터를 스트리밍하므로 대용량 파일의 경우 메모리 효율성이 더 높습니다.

위 내용은 NODE 면접 질문...의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿