본문 바로가기

과거공부모음

버퍼(buffer)와 스트림(stream)

버퍼와 스트림은 데이터를 처리하는 핵심 개념이다.

데이터를 효율적으로 전송하고 처리하는데 도움이 된다

 

버퍼 : 버퍼는 일시적으로 메모리에 데이터를 저장하는 구조다.

주로 크기가 고정되어 있으며 바이너리 데이터를 저장할 수 있다.

버퍼의 주요 목적은 데이터를 적절한 속도로 전송하고 처리하는 것이다.

예를 들어 소켓이나 파일 등의 입출력 작업에서 데이터를 버퍼에 저장하여 한 번에 읽거나 쓰는 작업을 수행할 수 있다.

이를 통해 비동기식 처리를 지원하며 성능 향상을 도모한다.

 

스트림 : 스트림은 데이터의 흐름을 나타내는 객체로 버퍼와 함께 작동하여 데이터를 청크(chunk) 단위로 처리한다. 스트림은 대용량 데이터를 처리하는 데 유용하며 메모리 효율을 높이는 데 도움이 된다.

 

스트림은 네 가지 유형으로 분류된다.

  • Readable : 데이터를 읽을 수 있는 스트림이다. 예를 들어 파일에서 데이터를 읽거나 네트워크 연결을 통해 받은 데이터를 처리할 때 사용한다.
  • Writable : 데이터를 쓸 수 있는 스트림이다. 예를 들어 파일에 데이터를 쓰거나 네트워크 연결을 통해 데이터를 전송할 때 사용한다.
  • Duplex : 읽기와 쓰기가 모두 가능한 스트림이다. 예를 들어 소켓 같은 양방향 통신을 지원하는 객체에서 사용한다.
  • Transform : 데이터를 변환하는 스트림이다. 입력 데이터를 받아서 변환한 후 출력 데이터로 전달하는 데 사용한다. 예를 들어 압축 또는 암호화와 같은 작업을 수행할 수 있다.

스트림을 사용하면 데이터가 도착하는 즉시 처리를 시작할 수 있어 대용량 데이터를 처리할 때 메모리 사용량을 줄이고 성능을 향상할 수 있다. 이는 특히 파일 전송, 동영상 스트리밍 등의 작업에서 유용하게 사용된다.

'과거공부모음' 카테고리의 다른 글

호이스팅  (0) 2023.04.20
실행 컨텍스트와 스코프  (0) 2023.04.20
node.js 모듈 시스템  (0) 2023.04.20
개발 방법론  (0) 2023.04.19
웹 보안  (0) 2023.04.19