상세 컨텐츠

본문 제목

Node.js | Stream API 개념과 4가지 유형

Development/BackEnd

by 유후(yufu) 2023. 2. 16. 02:47

본문

반응형

1. Stream API란?

Node.js에서 Stream API는 데이터를 읽고 쓰는 데 사용되는 유용한 기능을 제공합니다. 스트림은 데이터를 작은 조각으로 나누어 처리할 수 있으며, 이는 큰 파일이나 네트워크 통신 등에서 유용합니다.

2. Stream API의 유형

Node.js의 Stream API는 크게 4가지 유형으로 구분됩니다.

  1. Readable Streams: 데이터를 읽는 데 사용됩니다. 예를 들어, 파일 시스템에서 파일을 읽거나, HTTP 요청에서 데이터를 가져오는 데 사용됩니다.
  2. Writable Streams: 데이터를 쓰는 데 사용됩니다. 예를 들어, 파일 시스템에 파일을 쓰거나, HTTP 응답에 데이터를 쓰는 데 사용됩니다.
  3. Duplex Streams: 데이터를 읽고 쓰는 데 모두 사용됩니다. 예를 들어, TCP 소켓에서 데이터를 읽고 쓰는 데 사용됩니다.
  4. Transform Streams: 입력 스트림을 변경하여 출력 스트림으로 보내는 데 사용됩니다. 예를 들어, 데이터를 압축하는 데 사용됩니다.

3. Stream API의 함수와 이벤트

Node.js의 Stream API는 다양한 유틸리티 함수와 이벤트를 제공합니다. 예를 들어, pipe() 함수를 사용하여 스트림을 연결하거나, data, end, error 이벤트를 사용하여 스트림에서 데이터를 읽거나 스트림의 끝을 처리할 수 있습니다.

아래는 간단한 예제 코드입니다.

const fs = require('fs');

// Readable Stream을 생성하여 파일에서 데이터를 읽기 시작합니다.
const readable = fs.createReadStream('input.txt');

// Writable Stream을 생성하여 파일에 데이터를 씁니다.
const writable = fs.createWriteStream('output.txt');

// 데이터를 읽고 쓰는 과정에서 발생하는 에러를 처리합니다.
readable.on('error', (error) => {
  console.error(`Error: ${error.message}`);
});

writable.on('error', (error) => {
  console.error(`Error: ${error.message}`);
});

// 데이터를 읽고 쓰는 과정을 시작합니다.
readable.pipe(writable);

참고 : 위의 예제 코드에서 createReadStream() 함수를 사용하여 input.txt 파일에서 데이터를 읽고, createWriteStream() 함수를 사용하여 output.txt 파일에 데이터를 씁니다. 그리고 pipe() 함수를 사용하여 readable 스트림에서 읽은 데이터를 writable 스트림에 씁니다. 이렇게 스트림을 연결하여 데이터를 읽고 쓰는 과정을 수행할 수 있습니다.

 

반응형

'Development > BackEnd' 카테고리의 다른 글

Node.js | EventEmitter란? (feat. Promise와의 차이점)  (0) 2023.02.16

관련글 더보기