1. 스트림 API란 무엇입니까?
Node.js에서 Stream API는 데이터를 읽고 쓰는 데 유용한 기능을 제공합니다.
스트림은 데이터를 작은 조각으로 나누어 처리할 수 있습니다.
대용량 파일이나 네트워크 통신 등에 유용합니다.
하다.
2. 스트림 API의 종류
Node.js Stream API는 크게 네 가지 유형으로 나뉩니다.
- 읽을 수 있는 스트림: 데이터를 읽는 데 사용됩니다.
예를 들어 파일 시스템에서 파일을 읽거나 HTTP 요청에서 데이터를 검색하는 데 사용됩니다. - 쓰기 가능한 스트림: 데이터 쓰기에 사용됩니다.
예를 들어 파일 시스템에 파일을 쓰거나 HTTP 응답에 데이터를 쓰는 데 사용됩니다. - 이중 스트림: 데이터 읽기 및 쓰기에 모두 사용됩니다.
예를 들어 TCP 소켓에서 데이터를 읽고 쓰는 데 사용됩니다. - 변환 스트림: 입력 스트림을 변환하여 출력 스트림으로 보내는 데 사용됩니다.
예를 들어 데이터를 압축하는 데 사용됩니다.
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
스트림에 씁니다.
이와 같이 스트림을 연결하여 데이터를 읽고 쓰는 과정을 수행할 수 있습니다.