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. 신뢰성 있는 데이터 전송

- 네트워크 오류가 발생할 경우 전체 데이터를 처음부터 다시 전송하는 것이 아니라, 오류가 발생한 청크만 재전송할 수 있습니다. 이는 특히 네트워크 연결이 불안정한 환경에서 매우 유용합니다. (와이파이)

반응형