일상생활에서는 버퍼링 걸린다 라고 할때 쓰이고, 코딩을 하다보면 여러 분야에서 사용이 되는것이 버퍼입니다.
파일 입출력을 할때 크게 신경안쓰고 사용한 "버퍼" 과연 어떤 뜻인지 궁금하여 자세히 알아보았습니다.
Buffer 의 사전적 의미
영단어 의미
1. 완충제
2. (기차나 철로의) 완충장치
3. (충격을) 완화하다
정보통신용어 의미 (네이버 지식백과 출처)
하나의 장치에서 다른 장치로 데이터를 전송할 경우에 양자간의 데이터의 전송속도나 처리속도의 차를 보상하여 양호하게 결합할 목적으로 사용하는 기억영역
즉 Buffer는 장치들 사이에서 데이터 전송할때 서로 다른 데이터 전송 및 처리 속도를 완충하기 위한 목적을 가진 장치임을 알 수 있습니다.
Buffer는 데이터 전송 및 처리 속도 차이를 완충하기 위해 임시로 데이터를 저장하여 이후 데이터를 원할 경우 빠르게 전송해 주는 저장소 역할입니다.
여기서 데이터를 저장한다는 개념은 데이터 전송 및 처리 속도가 느린 곳에서 빠른곳으로 가는 데이터들을 기존 보다 빠른 곳에 저장하는것입니다.
임시로 데이터를 저장하는 곳인 만큼, 사용 이후 데이터들은 휘발됩니다.
그러면 이 버퍼 들이 어디에서 사용되는지 예시로 알아보겠습니다.
1. 온라인 영상 재생
온라인으로 영상을 보다보면(유튜브 등) 영상 일부가 미리 로딩이 되어있는 모습을 볼 수 있습니다.
한번에 영상을 전부 다운로드를 받은 후 재생을 하게되면 비효율적이기에 조금씩 미리 다운로드를 받는 것 입니다.
여기서 데이터가 느린곳은 인터넷 혹은 서버를 의미하며, 빠른곳은 재생하는 기기입니다.
그렇기에 미리 데이터(영상)을 기기로 미리 다운로드를 받는것입니다.
그럼 일부 미리 로딩되는 이 영상들을 저장 할 임시 저장소가 필요합니다. 이것이 바로 버퍼 입니다.
영상을 조금씩 다운로드를 지속적으로 받는걸 버퍼로 생각하실 수 도 있으나, 이는 스트리밍으로 버퍼와 다른 개념입니다.
스트리밍 또한 이후 다뤄보도록 하겠습니다.
2. 키보드, 마우스 등 외부 입력
컴퓨터에서 CPU는 너무나도 많은 일들을 하고 있습니다. 그렇기에 수시로 들어오는 키보드, 마우스 등의 입력신호를 올때마다 바로바로 처리하기엔 너무 비효율적입니다.
그래서 버퍼 라는 임시 저장공간에 입력이 들어온것을 저장합니다.
이후 조건이 만족하면 버퍼에 있는 데이터들을 프로그램으로 전송합니다.
어차피 보낼 데이터인데 굳이 모아서 보내는 이유가 있냐? 라고 궁금하신다면 택배로 예시를 들면 이해가 쉽습니다.
1000원짜리 상품 주문을 위해 택배비 3500원 지불하기엔 택배비가 비효율적이니 여러개 묶어서 한번에 주문하는것과 같은 원리라고 생각하시면 됩니다.
'개발잡담 > 공부' 카테고리의 다른 글
멀티쓰레드는 쓰레드랑 어떤게 다를까 (0) | 2023.09.13 |
---|---|
쓰레드(Thread)는 무엇일까? (feat. JAVA) (0) | 2023.09.08 |
힙? 스택? 메모리란 무엇일까 (0) | 2023.09.07 |
DB에서 transaction이란 뭘까 (0) | 2023.08.10 |