백엔드/Node.js
[Do it! Node.js 입문] 04. 버퍼와 스트림
JYUN(sia)
2024. 3. 25. 13:57
버퍼(buffer)와 스트림(stream)은 파일을 읽거나 쓸 때 한 덩어리로 처리하지 않고 작은 단위로 나눠서 시간을 절약하는 방법이다.
버퍼
컴퓨터 공학에서 버퍼는 임시 데이터를 저장하는 물리적인 메모리 공간을 가리킨다.
파일을 읽어올 때, 한 번에 버퍼 하나 크기 만큼만 가져오고 버퍼가 가득 차면 그 내용을 전달해 주는 것이다.
노드의 버퍼는 처음부터 크기가 고정되어 있고 내용이 이진값으로 저장된다.
스트림
사용자가 화면을 보는 동안 또 다른 파일이 버퍼에 다운로드되고 버퍼가 가득 차면 다시 화면에 재생된다. 이런 서비스를 스트리밍(streaming)이라 한다.
→ 실제로 우리가 영화를 볼 때는 영화 파이리을 조금씩 나눠서 내려받으면서 화면에서 재생된다.
스트림이란 한 곳에서 다른 곳으로 데이터가 이동하는 것, 즉 데이터의 흐름을 가리킨다.
백엔드 프로그래밍에서 스트림은 서버 > 클라이언트, 혹은 클라이언트 > 서버로 데이터를 보낼 때 사용하는 방식이다.
노드에서 스트림은
- readable stream
- writable stream
- duplex stream
으로 나눌 수 있다.