Jay's Cookbook
Menu
  • Tags
  • Categories
  • Projects
Computer Science
OS
Network
Data Structure
Algorithm
Language
Code Architecture
Python
Javascript
Typescript
Java
Backend
Backend Theory
TypeORM
Node.js
NestJS
FastAPI
Frontend
HTML/CSS
React
Next.js
Data Engineering
DE Theory
MySQL
MongoDB
Elastic
Redis
Kafka
Spark
Airflow
AI
Basic
Pytorch
NLP
Computer Vision
Data Analytics
Statistics
Pandas
Matplotlib
DevOps
Git
Docker
Kubernetes
AWS
[Node.js] 버퍼와 스트림
backend
nodejs

[Node.js] 버퍼와 스트림

Jay Kim
Jay Kim 24 Feb 2024
[Node.js] 내부 들여다 보기 끝

Table of Contents

  • Buffer
  • Stream
  • 참고

Buffer

  • 버퍼는 데이터를 어딘가로 이동시키기 전에 잠시 모아두는 바구니 같은 역할을 한다
  • Node.js의 Buffer 클래스는 바이너리 데이터 스트림을 다루는데 유용한 기능을 제공한다
  • 바이너리 데이터 스트림은 데이터의 끝이 정해져 있지 않은 0과 1로 이루어진 데이터 집합을 말한다
  • 데이터의 끝이 정해져 있지 않기 때문에, 데이터를 일정 양만큼 나눠서 보내야 한다
  • 데이터를 스트림 방식으로 처리하는 것은, 메모리 크기를 초과하는 큰 파일도 오류없이 빠르게 읽을 수 있도록 해준다
  • 버퍼에 데이터 청크들이 충분히 쌓이면, 해당 버퍼 안의 데이터로 작업을 수행하고,버퍼를 비운 후, 다시 데이터 청크를 받는다
  • Node.js의 버퍼는 크기를 중간에 수정할 수 없으며, 1바이트 단위로 요소에 접근할 수 있도록 해준다

Stream

  • 스트림은 끝이 정해지지 않은 일련의 데이터를 말한다
  • Node.js에서는 파일을 읽거나 쓸 때, 스트림 방식으로 작업을 수행할 수 있다
  • 스트림 방식은, 엄청나게 큰 용량의 데이터를 읽거나 쓸 때에도 메모리 초과 오류 없이 작업을 처리하도록 해준다
  • 스트림 방식은 해당 스트림을 위해 임시로 만든 버퍼 안에 데이터를 담아 작업을 수행하기 때문에, 해당 작업을 수행하는데 결과적으로 버퍼의 크기만큼의 메모리만 있으면 된다
  • 또한 스트림 방식은 작은 용량을 반복하는 작업의 경우, 버퍼에 담아 작업을 수행하기 때문에 훨씬 빠르고 효율적이다
  • 스트림 방식은 결론적으로 큰 용량의 데이터를 처리하는 경우, 그리고 작은 용량의 데이터를 반복 처리하는 경우 모두에 적합한 솔루션이다

참고

  • Node.js의 Buffer를 제대로 이해해보자
  • Node.js Stream 개념을 익혀보자
  • Node.js Stream 당신이 알아야할 모든 것 1편
[Node.js] 내부 들여다 보기 끝

You may also like

See all nodejs
23 Feb 2024 [Node.js] 내부 들여다 보기
backend
nodejs

[Node.js] 내부 들여다 보기

22 Feb 2024 [Node.js] NPM
backend
nodejs

[Node.js] NPM

25 Jan 2024 [Node.js] Express 사용하기
backend
nodejs

[Node.js] Express 사용하기

Jay Kim

Jay Kim

Web development, data engineering for human for the Earth. I share posts, free resources and inspiration.

Rest
Lifestyle
Hobby
Hobby
Hobby
Hobby
2025 © Jay's Cookbook. Crafted & Designed by Artem Sheludko.