버퍼와 스트림은 데이터를 처리하는 핵심 개념이다.
데이터를 효율적으로 전송하고 처리하는데 도움이 된다
버퍼 : 버퍼는 일시적으로 메모리에 데이터를 저장하는 구조다.
주로 크기가 고정되어 있으며 바이너리 데이터를 저장할 수 있다.
버퍼의 주요 목적은 데이터를 적절한 속도로 전송하고 처리하는 것이다.
예를 들어 소켓이나 파일 등의 입출력 작업에서 데이터를 버퍼에 저장하여 한 번에 읽거나 쓰는 작업을 수행할 수 있다.
이를 통해 비동기식 처리를 지원하며 성능 향상을 도모한다.
스트림 : 스트림은 데이터의 흐름을 나타내는 객체로 버퍼와 함께 작동하여 데이터를 청크(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 |