Node.js | Stream API


1. 스트림 API란 무엇입니까?

Node.js에서 Stream API는 데이터를 읽고 쓰는 데 유용한 기능을 제공합니다.

스트림은 데이터를 작은 조각으로 나누어 처리할 수 있습니다.

대용량 파일이나 네트워크 통신 등에 유용합니다.

하다.

2. 스트림 API의 종류

Node.js Stream API는 크게 네 가지 유형으로 나뉩니다.

  1. 읽을 수 있는 스트림: 데이터를 읽는 데 사용됩니다.

    예를 들어 파일 시스템에서 파일을 읽거나 HTTP 요청에서 데이터를 검색하는 데 사용됩니다.

  2. 쓰기 가능한 스트림: 데이터 쓰기에 사용됩니다.

    예를 들어 파일 시스템에 파일을 쓰거나 HTTP 응답에 데이터를 쓰는 데 사용됩니다.

  3. 이중 스트림: 데이터 읽기 및 쓰기에 모두 사용됩니다.

    예를 들어 TCP 소켓에서 데이터를 읽고 쓰는 데 사용됩니다.

  4. 변환 스트림: 입력 스트림을 변환하여 출력 스트림으로 보내는 데 사용됩니다.

    예를 들어 데이터를 압축하는 데 사용됩니다.

3. 스트림 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 스트림에 씁니다.

이와 같이 스트림을 연결하여 데이터를 읽고 쓰는 과정을 수행할 수 있습니다.