302호 컴퓨터실/QnA
스트림에서 연속적인 흐름이라는 것은 무슨 뜻인가요?
삼층거주자
2024. 4. 12. 19:20
728x90
반응형
Q. 스트림은 데이터를 연속적인 흐름으로 처리하는 개념이라고 하는데 실제로 구현해보면 청크단위로 쪼개져서 전송되는 것을 확인할 수 있습니다.
여기서 연속적인 흐름이라는 것은 무슨 뜻인가요?
const fs = require('fs');
const stream = fs.createReadStream('./example.txt', { encoding: 'utf8' });
stream.on('data', (chunk) => { // chunk 단위로 처리되는 것을 볼 수 있다.
console.log('New data chunk:', chunk);
});
----
스트림이 데이터를 연속적인 흐름으로 처리한다고 할 때, 이는 데이터가 전체적으로 한 번에 전송되는 것이 아니라 시간에 따라 연속적으로 처리되고 전송된다는 의미입니다.
청크를 사용함으로써의 이점
1. 데이터 관리의 용이성 (메모리 최적화)
- 한 번에 너무 많은 데이터를 로드하면 시스템 리소스에 부담을 줄 수 있으며, 청크 단위로 처리하면 각 청크가 처리된 후 메모리에서 해제될 수 있습니다.
2. 응답성 향상
- 사용자가 데이터의 일부만 필요로 할 때 전체 데이터를 로드하지 않고 필요한 부분만 빠르게 전송받을 수 있습니다. 예를 들어, 동영상 스트리밍 서비스에서는 사용자가 동영상의 특정 부분을 빠르게 접근할 수 있도록 청크 단위로 데이터를 전송합니다.
3. 신뢰성 있는 데이터 전송
- 네트워크 오류가 발생할 경우 전체 데이터를 처음부터 다시 전송하는 것이 아니라, 오류가 발생한 청크만 재전송할 수 있습니다. 이는 특히 네트워크 연결이 불안정한 환경에서 매우 유용합니다. (와이파이)
반응형