/* 본 게시물은 ' ' 의 내용을 토대로 작성되었습니다. */
1. 참고 자료
[위키백과 - 버퍼] : https://ko.wikipedia.org/wiki/%EB%B2%84%ED%8D%BC_(%EC%BB%B4%ED%93%A8%ED%84%B0_%EA%B3%BC%ED%95%99)
[버퍼란?] : https://medium.com/@yeon22/term-%EB%B2%84%ED%8D%BC-buffer-%EB%9E%80-662de1e6ac5b
컴뷰팅에서, 버퍼는 데이터를 한 곳에서 다른 한 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 메모리의 영역이다. 버퍼링(buffering)이란 버퍼를 활용하는 방식 또는 버퍼를 채우는 동작을 말한다. 다른 말로 '큐(Queue)'라고도 표현한다. 즉, 버퍼는 속도 차이가 있는 장치 사이에서 데이터를 전송할 때 데이터의 손실을 방지하고 효율적으로 사용하기 위한 임시 저장공간이다.
버퍼는 컴퓨터 안의 프로세스 사이에서 데이터를 이동시킬 때 사용된다. 보통 데이터는 키보드와 같은 입력 장치로부터 받거나 프린터와 같은 출력 장치로 내보낼 때 버퍼 안에 저장된다. 이는 전자 통신의 버퍼와 비유할 수 있다. 버퍼는 하드웨어나 소프트웨어에 추가될 수 있지만 버퍼는 상당수가 소프트웨어에 추가된다. 버퍼는 보통 속도가 계속 바뀔 수 있으므로 데이터 수신, 처리 속도에 차이가 있다.
왜 버퍼를 사용할까?
유튜브로 예시를 들어보자. 유튜브와 같은 동영상 사이트에서 동영상을 볼 때 현재 진행되는 부분과 동영상을 내려받은 부분(회색)과 앞으로 다운로드가 남은 부분이 나타나는데 여기서 회색부분이 버퍼라고 할 수 있다.
동영상을 내려받는 속도와 우리가 동영상을 시청하는 속도에서 차이가 나기 때문에 버퍼를 이용해서 최대한 빠르게 동영상을 내려받는 것이다. 중간에 끊기지 않도록 미리 데이터를 받아와 사용자가 동영상을 보는데 불편함을 줄여준다. 흔히 우리가 말하는 '버퍼링 걸렸다' 는 버퍼를 채우는 동작이다(받은 데이터를 저장)