본문 바로가기
CE

[CE] Stream이란

by ds31x 2024. 9. 11.

Stream:

데이터가 연속적으로 흐르는 방식으로 처리한다는 개념으로,
데이터의 입출력을 일종의 bit (or byte) 들의 흐름으로 여겨서 처리하는 것으로 생각하고
이와 같은 방식으로 I/O가 이루어지는 대상 추상화하여 가르키는데 사용됨.

  • 데이터를 일정한 chunk로 나누어 순차적으로 처리
  • 대용량 데이터도 효율적으로 다룰 수 있음

https://dsaint31.me/mkdocs_site/CE/ch10/ce10_2_04_stdio/#stream-or-io-stream

 

BME228

Standard I/O Library Standard I/O Library란? 다양한 OS에서 Input/Output(입출력)을 수행할 수 있도록 구현된 라이브러리. 프로그래머는 프로그래밍 과정에서 직접 입출력을 수행하는 코드를 작성하지 않는다

dsaint31.me


1. 프로그래밍에서의 stream

  • 입력 스트림(Input Stream):
    • 데이터를 프로그램으로 가져오는 stream (예: 파일 읽기, 네트워크 수신)
    • cli sw 에서 사용하는 stdin 이 대표적인 예.
  • 출력 스트림(Output Stream):
    • 데이터를 외부로 보내는 흐름 (예: 파일 쓰기, 네트워크 전송)
    • cli sw에서 사용하는 stdout 이 대표적인 예.

stream 방식으로 데이터를 순차적으로 처리하는게 일반적임.

이 외에도 stderr로 대표되는 "표준에러 출력스트림" 도 있으나, 기본적으로 stdout과 같게 설정된다.


2. 미디어 스트리밍에서의 stream

  • 실시간 비디오/오디오 전송 및 재생
  • 데이터를 작은 청크로 나누어 전송하며, 사용자에게 실시간으로 재생 가능
  • 예시: Netflix, YouTube와 같은 미디어 스트리밍 서비스

주요 특징

  • 순차적 처리: 대용량 데이터를 한 번에 처리하지 않음
  • 실시간 처리: 실시간 데이터 전송 및 재생에 유리
    • 사실 buffer 가 사용되기 때문에 온전한 real time은 아님.
  • 입출력 효율성: 파일이나 네트워크를 통해 효율적인 데이터 처리.

같이 보면 좋은 자료들

https://dsaint31.me/mkdocs_site/CE/ch10/ce10_2_04_stdio/#standard-io-library_1

 

BME228

Standard I/O Library Standard I/O Library란? 다양한 OS에서 Input/Output(입출력)을 수행할 수 있도록 구현된 라이브러리. 프로그래머는 프로그래밍 과정에서 직접 입출력을 수행하는 코드를 작성하지 않는다

dsaint31.me

 

728x90