Development/BackEnd
Node.js | Stream API 개념과 4가지 유형
유후(yufu)
2023. 2. 16. 02:47
반응형
1. Stream API란?
Node.js에서 Stream API는 데이터를 읽고 쓰는 데 사용되는 유용한 기능을 제공합니다. 스트림은 데이터를 작은 조각으로 나누어 처리할 수 있으며, 이는 큰 파일이나 네트워크 통신 등에서 유용합니다.
2. Stream API의 유형
Node.js의 Stream API는 크게 4가지 유형으로 구분됩니다.
- Readable Streams: 데이터를 읽는 데 사용됩니다. 예를 들어, 파일 시스템에서 파일을 읽거나, HTTP 요청에서 데이터를 가져오는 데 사용됩니다.
- Writable Streams: 데이터를 쓰는 데 사용됩니다. 예를 들어, 파일 시스템에 파일을 쓰거나, HTTP 응답에 데이터를 쓰는 데 사용됩니다.
- Duplex Streams: 데이터를 읽고 쓰는 데 모두 사용됩니다. 예를 들어, TCP 소켓에서 데이터를 읽고 쓰는 데 사용됩니다.
- 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
스트림에 씁니다. 이렇게 스트림을 연결하여 데이터를 읽고 쓰는 과정을 수행할 수 있습니다.
반응형