Stream
(명사) 1. 개울, 시내 2. (액체 기체의) 줄기
(동사) 1. 줄줄[계속] 흐르다. 2. 줄을 지어[줄줄이] 이어지다.
Stream의 뜻 중 "줄줄이 이어지다"의 뜻이 일반적으로 컴퓨팅에서 사용하는 스트림의 언어와 비슷하다. 즉, 스트림이란 일련의 연속성이 갖는 흐름을 의미한다.
스트림의 동작에 대해 더 쉽게 이해하기 위해 동영상을 예로 들어보자.

우리가 유튜브와 같은 사이트에서 영상을 클릭하면 서버에서 그 영상에 해당하는 영상 파일을 우리 컴퓨터로 보낼 것이다. 이때 서버에서 영상 파일을 통째로 보내게 된다면 파일이 모두 보내질 때까지 우리는 그저 까만 화면만 봐야 할 것이다. 이런 답답한 상황을 해결하기 위해 영상 파일을 잘게 쪼개 연속적으로 줄지어 우리 컴퓨터로 보내는 것이다. 그러면 우리는 먼저 도착한 쪼개진 영상 파일을 통해 기다림 없이 바로 영상을 볼 수 있게 된다. 이것이 스트림의 동작 방식이다.
영상 파일을 잘게 쪼개 연속적으로 줄지어 우리 컴퓨터로 보내는 것; 이것을 chunk(청크)라고 한다.
Buffer
(명사) 1. 완충제 2. 완충 장치
(동사) 1. 완화하다. 2. ~를 보호하다.
완충 장치라는 말만 보고선 쉽게 버퍼의 뜻을 이해하기는 어렵지만, 버퍼의 사용 목적은 무엇인가를 완화하는 것임은 예측할 수 있다.
이어 정보통신용어사전 을 통해서 Buffer를 검색해보았다.
Buffer
: 하나의 장치에서 다른 장치로 데이터를 전송할 경우에 양자간의 데이터의 전송 속도나 처리 속도의 차를 보상하여 양호하게 결합할 목적으로 사용하는 기억 영역
결국 버퍼는 두 개의 장치 사이에서 데이터 전송을 할 때 데이터의 전송 속도나 처리 속도의 차이를 완화하는 목적으로 사용하는 기억 장치인 것이다. 즉, 임시 저장 공간.
앞서 동영상을 예시로 든 스트림의 동작 방식에 덧붙여 버퍼를 설명할 수 있다. 영상 스트리밍이란 서버에서 영상 파일을 여러 조각으로 쪼개 연속적으로 데이터를 보내는 것을 말한다. 여기서 버퍼는 서버로부터 보내지는 영상 파일 데이터들을 순서대로 차곡차곡 쌓는 임시 데이터 공간이다.
위 그림에서 볼 수 있듯이 동영상을 볼 때 하단의 재생바의 짙은 회색으로 표시된 부분이 버퍼를 나타낸다.
즉, 영상 스트리밍은 사용자가 영상을 클릭한 순간 서버로부터 여러 조각으로 나눠진 영상 파일들(chunk)이 순서대로 버퍼에 쌓이기 시작하며, 쌓인 데이터만큼 영상을 시청할 수 있으므로 사용자는 영상을 클릭함과 동시에 시청할 수 있는 것이다. 버퍼에는 계속해서 데이터가 쌓이기 때문에 영상을 끊김 없이 시청할 수 있다.