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
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.