더북(TheBook)

pipeline의 마지막 인수로 { signal }을 추가하면 됩니다. 원하는 시점에 ac.abort()를 호출하면 중단됩니다.

이렇게 전체 파일을 모두 버퍼에 저장하는 readFile 메서드와 부분으로 나눠 읽는 createRead Stream 메서드를 알아봤습니다. 그럼 이 두 메서드 간의 메모리 사용량 차이를 실제로 확인해보겠습니다.

다음은 1GB 용량의 텍스트 파일을 만드는 코드입니다. 실행 전에 현재 드라이브의 여유 용량이 충분한지 확인하고 실행해야 합니다. 시간이 조금 많이 소요될 수 있습니다.

createBigFile.js

const fs = require('fs');
const file = fs.createWriteStream('./big.txt');

for (let i = 0; i <= 10000000; i++) {
  file.write('안녕하세요. 엄청나게 큰 파일을 만들어 볼 것입니다. 각오 단단히 하세요!
');
}
file.end();

콘솔

$ node createBigFile
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.