Streams API는 데이터 스트림을 처리하는 방법을 제공하는 JavaScript의 비교적 새로운 기능으로, 모든 것을 한 번에 메모리에 로드하지 않고 더 작은 청크의 데이터로 작업할 수 있습니다. 이는 오디오 또는 비디오 파일에서 발견되는 것과 같은 대용량 데이터 세트로 작업할 때 특히 유용합니다.
다음은 Streams API를 사용하여 파일을 읽는 방법의 예입니다.
const fs = require('fs');
// Create a readable stream from a file
const readableStream = fs.createReadStream('file.txt', 'utf8');
// Read the file in chunks
readableStream.on('data', (chunk) => {
console.log(chunk);
});
// Handle any errors that occur while reading the file
readableStream.on('error', (err) => {
console.error(err);
});
이 예제에서는 Node.js `fs` 모듈의 `createReadStream` 메서드를 사용하여 파일에서 읽을 수 있는 스트림을 만듭니다. 우리는 파일을 `utf8`로 인코딩된 텍스트 청크로 읽고 싶다고 지정하고 있습니다.
다음으로, 새로운 데이터 청크를 읽을 수 있을 때 발생하는 `'data'` 이벤트를 수신하기 위해 `on` 메서드를 사용하고 있습니다. 이벤트 핸들러에서 우리는 단순히 청크를 콘솔에 기록합니다.
마지막으로 파일을 읽는 데 문제가 있는 경우를 대비하여 `'error'` 이벤트도 수신합니다.
다음은 Streams API를 사용하여 파일에 데이터를 쓰는 방법의 예입니다.
const fs = require('fs');
// Create a writable stream to a file
const writableStream = fs.createWriteStream('output.txt', { flags: 'a' });
// Write data to the file in chunks
writableStream.write('Hello, ');
writableStream.write('world!');
writableStream.end();
// Handle any errors that occur while writing to the file
writableStream.on('error', (err) => {
console.error(err);
});
이 예제에서는 Node.js `fs` 모듈의 `createWriteStream` 메서드를 사용하여 파일에 쓰기 가능한 스트림을 만듭니다. `'a'` 플래그를 사용하여 파일에 추가하도록 지정하고 있습니다.
다음으로 `write` 메소드를 사용하여 `'Hello,'` 및 `'world!'`라는 두 개의 데이터 청크를 파일에 씁니다. 마지막으로 `end` 메서드를 호출하여 파일 쓰기가 완료되었음을 나타냅니다.
다시 말하지만 파일에 쓰는 데 문제가 있는 경우를 대비하여 `'error'` 이벤트도 수신합니다.
이는 JavaScript에서 Streams API를 사용하는 방법에 대한 몇 가지 예일 뿐입니다. API에는 변환 스트림 및 이중 스트림과 같은 다른 유형의 스트림도 포함되어 있어 데이터를 읽거나 쓸 때 데이터 스트림을 수정하거나 결합할 수 있습니다.
'IT' 카테고리의 다른 글
자바스크립트 "Storage API" (0) | 2023.03.11 |
---|---|
자바스크립트 "Storage Access API" (0) | 2023.03.11 |
자바스크립트 "Touch Events API" (0) | 2023.03.11 |
자바스크립트 "Trusted Types API" (0) | 2023.03.11 |
자바스크립트 "UI Events API" (0) | 2023.03.11 |