Node.js Streams를 활용한 데이터 처리의 신세계 🌊
Node.js Streams는 데이터 처리의 신세계를 여는 열쇠입니다. 이들은 데이터를 조각으로 나누어 처리하게 해주어, 메모리를 효율적으로 사용하면서 큰 파일이나 데이터를 다룰 때의 부담을 줄여줍니다. 이해하기 쉽게 말하자면, 스트림은 데이터의 '흐름'을 만들어내어, 데이터를 조금씩, 필요한 만큼만 처리할 수 있게 해줍니다.
스트림의 기본
Node.js에서 스트림을 사용하는 것은 큰 데이터를 다루거나, 데이터를 전송할 때 정말 유용합니다. 예를 들어, 파일을 읽거나 쓸 때, 스트림을 사용하면 파일의 전체 내용을 한 번에 메모리로 불러오지 않고, 조금씩 처리할 수 있습니다.
예제: 파일 읽기
const fs = require('fs');
// 파일 스트림 생성
const readStream = fs.createReadStream('./bigfile.txt', 'utf8');
readStream.on('data', (chunk) => {
console.log('새로운 데이터 조각 도착:', chunk);
});
readStream.on('end', () => {
console.log('파일 읽기 완료');
});
이 코드는 bigfile.txt
라는 큰 파일을 조각으로 나누어 읽는 방법을 보여줍니다. data
이벤트는 새로운 데이터 조각이 도착할 때마다 발생하며, end
이벤트는 파일의 끝에 도달했을 때 발생합니다.
예제: 파일 쓰기
const fs = require('fs');
// 파일 스트림 생성
const writeStream = fs.createWriteStream('./output.txt', 'utf8');
writeStream.write('안녕하세요!\n');
writeStream.write('Node.js 스트림을 사용하고 있습니다.\n');
writeStream.end('마지막 메시지입니다.');
이 코드는 output.txt
파일에 메시지를 쓰는 방법을 보여줍니다. write()
메소드를 사용하여 데이터를 스트림에 쓸 수 있으며, end()
메소드로 스트림의 끝을 알릴 수 있습니다.
스트림의 장점
- 효율성: 큰 데이터를 조각으로 나누어 처리하기 때문에, 메모리 사용량을 줄일 수 있습니다.
- 속도: 데이터를 조금씩 처리할 수 있기 때문에, 전체 데이터를 처리하기 전에 사용자에게 결과를 보여줄 수 있습니다.
Node.js 스트림을 활용하면, 데이터 처리를 더 빠르고 효율적으로 할 수 있습니다. 주니어 개발자 여러분도 이 흥미로운 기술을 활용해 보세요! 🚀