더북(TheBook)

이번에는 스트림을 사용해 파일을 big3.txt로 복사해보겠습니다.

stream-memory.js

const fs = require('fs');

console.log('before: ', process.memoryUsage().rss);

const readStream = fs.createReadStream('./big.txt');
const writeStream = fs.createWriteStream('./big3.txt');
readStream.pipe(writeStream);
readStream.on('end', () => {
  console.log('stream: ', process.memoryUsage().rss);
});

콘솔

$ node stream-memory
before:  18087936
stream: 62472192

스트림을 사용해서 파일을 복사했더니 메모리를 62MB밖에 차지하지 않습니다. 이전 방식이 1GB 용량을 차지했던 것에 비하면 엄청난 개선 효과입니다. 큰 파일을 조각내어 작은 버퍼 단위로 옮겼기 때문입니다. 이렇게 스트림을 사용하면 효과적으로 데이터를 전송할 수 있습니다. 동영상 같은 큰 파일들을 전송할 때 이러한 이유로 스트림을 사용합니다.

이제 나머지 fs 메서드를 배워보겠습니다.

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