아직 면접을 준비하고 있는 것은 아니고 친구와 만드는 어플리케이션이 면접을 대비할 때 사용하는 것이라 테스트용으로 DB를 채우기 위해 몇 개 가져왔다.
npm
(Node Package Manager)입니다. npm
을 사용해 외부 라이브러리나 패키지를 설치하고 관리할 수 있습니다. 예를 들어, npm install express
로 Express 프레임워크를 설치하고, npm init
으로 프로젝트의 package.json
파일을 생성합니다. yarn
도 대안으로 사용될 수 있습니다.require()
와 import
의 차이점은 무엇인가요?require()
는 CommonJS 모듈 시스템에서 사용되는 함수로, 동기적으로 모듈을 불러옵니다. 반면, import
는 ES6 모듈 시스템에서 사용하는 구문으로, 비동기적으로 모듈을 불러옵니다. import
는 최신 JavaScript 표준을 따르며, require()
는 Node.js에서 주로 사용됩니다.cluster.fork()
를 사용해 워커 프로세스를 생성하고, 이를 통해 병렬 처리가 가능해집니다.callback hell
이란 무엇이며, 이를 피하는 방법은 무엇인가요?callback hell
은 여러 개의 중첩된 콜백 함수들이 코드의 가독성을 떨어뜨리는 현상입니다. 이를 피하기 위해 Promise
나 async/await
을 사용하여 비동기 코드를 더 읽기 쉽게 작성할 수 있습니다. 예를 들어, async/await
는 비동기 코드의 동기적인 흐름을 구현할 수 있어 가독성을 높입니다.process.nextTick()
과 setImmediate()
의 차이점은 무엇인가요?process.nextTick()
은 현재 실행 중인 이벤트 루프의 작업이 끝난 후, 즉시 콜백을 실행합니다. setImmediate()
는 이벤트 루프의 현재 단계가 끝난 후 콜백을 실행합니다. 즉, process.nextTick()
은 더 높은 우선순위를 가지며, setImmediate()
는 I/O 작업 후 실행됩니다.fs
모듈의 비동기적 파일 시스템 작업을 사용하는 예시를 들어주세요.fs.readFile()
은 비동기적으로 파일을 읽는 함수입니다. 예를 들어, fs.readFile('example.txt', 'utf8', (err, data) => { console.log(data); });
처럼 파일을 비동기적으로 읽고, 완료 후 콜백을 실행할 수 있습니다. 파일 작업 중 다른 작업을 처리할 수 있도록 비동기 방식을 사용합니다.Readable
, Writable
, Duplex
, Transform
이 있으며, 각각 입력과 출력이 가능한 스트림을 다룹니다. 예를 들어, 파일을 읽는 Readable
스트림, 데이터를 보내는 Writable
스트림 등이 있습니다.EventEmitter
클래스는 무엇인가요?EventEmitter
는 이벤트 기반 프로그래밍을 위한 클래스로, 객체가 이벤트를 발생시키고 이를 리스닝할 수 있게 도와줍니다. 예를 들어, emitter.on('event', callback)
을 사용해 이벤트 리스너를 등록하고, emitter.emit('event')
로 이벤트를 발생시킬 수 있습니다.process
객체의 주요 속성과 사용 방법을 설명해주세요.process
객체는 현재 프로세스의 정보를 담고 있는 객체입니다. process.argv
는 명령줄 인자를, process.env
는 환경 변수를, process.exit()
은 프로세스를 종료하는데 사용됩니다. 예를 들어, process.env.NODE_ENV
를 사용하여 환경 변수를 읽어올 수 있습니다.