본문 바로가기
JavaScript

Node JS - 버퍼와 스트림

by 달보드레. 2021. 12. 13.

#버퍼 : 일정한 크기로 모아두는 데이터

 - 일정한 크기가 되면 한 번에 처리

 - 버퍼링: 버퍼에 데이터가 찰 때까지 모으는 작업

 

스트림: 데이터의 흐름

 - 일정한 크기로 나눠서 여러 번에 걸쳐서 처리

 - 버퍼의 크기를 작게 만들어서 주기적으로 데이터를 전달

 - 스트리밍: 일정한 크기의 데이터를 지속적으로 전달하는 작업

 

#스트림방식 : 대용량 파일을 전송할 때 이점이 있음

const fs = require("fs");
const readStream = fs.createReadStream("./readme.txt", { highWaterMark: 16 });

//highWaterMark : 16바이트씩 전송한다는 의미

const data = [];
readStream.on("data", (chunk) => {
  data.push(chunk);
  console.log("data: ", chunk, chunk.length);
});

readStream.on("end", () => {
  console.log("end: ", Buffer.concat(data).toString());
});

readStream.on("error", (err) => {
  console.log("error: ", err);
});

이렇게 나눠서 전송된다

 

'JavaScript' 카테고리의 다른 글

Node JS - export  (0) 2021.12.13
JS - 이벤트 루프 (Event Loop)  (0) 2021.12.09
Node JS의 특성  (0) 2021.12.09
React - Redux  (0) 2021.12.09
React - react 시작하기  (0) 2021.12.09