-
NodeJS Buffer and Stream outline개발언어/Node.js 2022. 8. 2. 14:51
Streaming
server가 사용자에게 전체 동영상 file을 보내주고, 사용자가 동영상 file을 다 받을 때까지 기다렸다가 동영상을 보게되면 번거롭고 오랜시간이 걸릴 것이다. 이 와는 반대로 server에서 동영상 전체가 아니라 잘게잘게 나눠진 데이터를 조금씩 보내 주는것을 streaming이라고 한다.
그래서 사용자가 전체적인 동영상을 다 받지 않아도 조금 조금 받은 것으로 동영상을 볼 수 가 있다. 이것을
Progressive Download 라고 한다.
Buffer and Buffering
사용자가 동영상을 보는 속도보다 조금씩 Download 받는 속도가 빠르다면 buffering을 사용해서 조금씩 더 buffer를 채워 넣을 수 있다.
그리고 반대로 Download 받는 속도 보다 사용자가 보는 속도가 더 빠르면 충분히 쌓여있는 buffer가 없기 때문에 buffering에 걸리게 된다. 이때 사용하는 것이 buffer와 stream이다.
실시간 Streaming
Twitch와 같이 실시간으로 생중계하는 서비스도 비슷한 개념을 구현이 되어있을 것이다.
사용자가 송출하고자 하는 장면을 실시간으로 녹화하면서 조그맣게 나눠진 data를 streaming하게 되고 server에서는 그 streaming되 data를 사용자에게 받은 data를 server에서 buffering 했다가
segments라고 불리는 작은 단위로 쪽개진 mp4 file을 사용자들에게 보내주게 된다. 이런 기술은 아무 player에서나 사용할 수 있는 것은 아니고 HLS player라는 기술을 이용하고 있는 player에서만 작은 단위의 동영상 file을 볼 수 있다.
컴퓨터에서도 정말 큰사이즈의 file을 한번에 다 읽는다면 ?
=> file의 data를 모두 memory에 가져오려고 해도 만약, file의 사이즈가 정말 커서 컴퓨터의 memory보다 크다면, data를 모두 memory에 가져오는 것은 불가능 해진다.
조그맣게 자른 단위의 data인 buffer를 Streaming해서 조금씩 memory로 가져오면 된다.
buffer and stream 특징
1. Memory efficiency
2.Time efficiency
'개발언어 > Node.js' 카테고리의 다른 글
Express sever만들기(Request) (0) 2022.08.03 NodeJS 서버 (0) 2022.08.02 NodeJS File의 다양한 사용법 (0) 2022.08.02 NodeJS File async와 asynchronous 그리고 promise (0) 2022.07.28 NodeJS Path 그리고 유의할 점 (0) 2022.07.27