버퍼(buffer)란 수행능력에 있어 차이가 큰 두 대상이 입출력을 수행할 때, 효율성을 위해 사용하는 임시저장공간을 의미한다.
동영상 데이터가 내려 받아지는 속도에 비해 우리가 동영상을 1초씩 진행되며 보는 속도에는 큰 차이가 있다.
효율성의 측면에서 우리가 동영상을 보는 속도와 데이터를 내려받는 속도가 같다면, 매우 비효율적일 것이다.
(동영상 뒤로 넘어가려면 곧바로 버퍼링이 걸릴 것이다!)
보통 데이터를 내려받는 속도가 더 빠르니, 버퍼라는 임시저장공간을 두고 동영상 데이터를 버퍼에 최대한 빠른 시간안에 내려받아 저장해 둔다.
우리가 흔히 쓰는 버퍼링(buffering) 걸린다는 말의 의미는 데이터를 내려받는 속도가 동영상을 보는 속도를 따라가지 못하면서 생겨나는 멈춤 현상을 의미한다.
유튜브를 예로 들어, 동영상이 진행되는 빨간 bar와 빨간 바를 앞지르는 회색 bar가 있는데, 그 회색 bar가 바로 buffer이다.
프로그래밍에서의 버퍼란 보통 CPU와 보조기억장치 사이에서 사용되는 임시저장공간이다.
보조기억장치가 CPU의 처리속도를 따라가지 못하니, CPU는 보조기억장치가 데이터를 쌓아놓는 동안 다른 일을 하다가 일정 수준 쌓이면 한 번에 처리함으로써 효율성을 높인다.