버퍼(Buffer)와 캐시(Cache)는 모두 데이터를 임시로 저장하는 메모리 공간이라는 공통점이 있습니다. 하지만 목적과 동작 방식은 전혀 다릅니다.
이 글에서는 버퍼와 캐시의 개념, 차이점, 그리고 딥러닝에서의 버퍼 활용 사례까지 차근차근 정리해보겠습니다.
버퍼는 데이터를 일시적으로 저장하여 서로 다른 속도로 동작하는 장치나 프로세스 사이의 속도 차이를 완화하고 데이터 흐름을 보장하는 메모리 공간입니다.
속도 차이 완화
데이터 임시 저장
데이터 변환/처리 중간 저장
torch.nn.Module 버퍼: 학습되지 않는 파라미터(running_mean, running_var 등)를 저장캐시는 자주 사용하는 데이터를 더 빠른 저장소에 복사해 두어 접근 속도를 향상시키는 구조입니다.
| 구분 | 버퍼(Buffer) | 캐시(Cache) |
|---|---|---|
| 목적 | 속도 차이 완화, 순차적 데이터 흐름 보장 | 접근 속도 향상, 데이터 재사용 |
| 방식 | 임시 저장 후 전달 | 자주 쓰는 데이터 복사본 유지 |
| 사례 | 동영상 버퍼링, 프린터 버퍼 | CPU 캐시, 브라우저 캐시 |
| 데이터 수명 | 한 번 쓰고 사라짐 | 반복 사용될 때까지 유지 |
💡 한 문장 요약
버퍼는 흐름을 위한 대기실, 캐시는 단골 손님을 위한 VIP 룸.
운영체제에서는 버퍼와 캐시 개념을 결합해 버퍼 캐시를 사용합니다.
예: 리눅스의 디스크 I/O 성능 최적화 — 데이터를 모아 두고, 자주 쓰면 재사용.
버퍼와 캐시는 비슷해 보이지만, 목적과 접근 방식에서 확실히 다릅니다.
이 차이를 이해하면, 시스템 성능 최적화나 딥러닝 메모리 관리에도 훨씬 전략적으로 접근할 수 있습니다.