[컴퓨터메모리구조] 메모리 캐시 vs 디스크 캐시 개념
🤷♂️ 본론에 앞서 메모리란?
메모리는 '기억장치'라는 뜻을 가지고 있으며 컴퓨터의 메모리는 일반적으로 RAM을 의미하여 주기억장치 라고도 한다.
기본적인 컴퓨터의 메모리 종류
기본적인 컴퓨터는 일반적으로 레지스터, 캐시, RAM을 주기억장치라고 부른다.
왜냐하면 프로그램이 실제로 실행될때 이 세 기억장치를 사용하기 때문이다.
이 3가지의 기억장치를 알아보자.
- 레지스터: 제일 빠른 장치이며, CPU 계산과정의 일부분이다.
- 캐시 메모리: 레지스터 다음으로 빠른 메모리로 L1, L2, L3 CPU에 작은 칩으로 메모리를 저장시켜 빠르게 데이터를 제공한다.
- RAM: 주 기억장치로 매우 빠르지만 CPU > Cache > RAM > HDD 순서로 캐싱데이터를 제공한다. 하지만 HDD, SDD 보다는 월등히 빠르다.
🤷♂️ 메모리와 디스크 캐시 개념
웹/앱 개발시에 캐시에 대해서 접하게 되며 클라이언트와 서버쪽에서 캐시 활용은 다른 개념이다. 서버는 CDN을 활용한 캐싱 방법이 있다.
오늘은 클라이언트 측에서 캐시를 다루며 브라우저 캐시는 2가지로 나눠지며 메모리 캐시 vs 디스크 캐시로 나눠진다.
개발자 도구에서 Network에서 확인해 볼 수 있다.
Size 부분에서 memory cache와 disk cache를 볼 수 있다.
각각에 캐시에 time 부분에 ms 차이가 나는것도 볼 수 있다.
memory cache가 disk cache 보다 더 빠르게 데이터를 가져오는 것을 볼 수 있다.
memory cache와 disk cache는 무엇인가?
공부하기에 앞서 브라우저 측에서가 아닌 하드웨어 측면에서 구조를 보고나서 memory cache와 disk cache에 대해서 이해하기가 더 쉽다.
memory cache란?
RAM 메모리까지 가지 않고 CPU에 작은칩 안에 빠른 메모리 L1, L2, L3에서 데이터를 가져온다.
이러한 이유로 disk cache 보다 더 빠르게 데이터를 가져 온다.
disk cache란?
디스크 캐시는 하드디스크에 접근하는 시간을 개선하고자 RAM에 저장하는 기법이며
하드디스크에 접근해서 데이터를 가져오는 것보다 RAM에 접근에서 데이터를 가져오는 것이 더 빠르기 때문이다.
그림처럼 HDD까지 접근하는 것보다 L1, L2, L3 같은 캐시 메모리에 접근하는 것이 훨씬 빠르지만 L1, L2, L3 용량이 작기 때문에 모든 것을 메모리 캐시에 저장해서 가져올 수는 없다.
🤷♂️ 정리하자면
CPU - RAM - HDD 순으로 캐시 데이터를 저장하며 disk cache와 memory cache를 정리하면
- disk cache: RAM으로부터 데이터를 가져온다.
- memory cache: cache 데이터를 더 빠르게 가져오기 위해서 CPU에 L1, L2, L3 같은 메모리에서 RAM 까지 가지 않고 데이터를 더 빠르게 가져온다.
웹/앱을 개발하면서 캐시에 대해서 항상 접하게 되었고 공부를 하게 되었다. 여기에서 더 디테일하게 들어가면 공부할것이 넘쳐날꺼 같지만 하나씩하나씩 공부를 할 계획이다. 예를 들어 disk cache와 memory cache 어떤 기준으로 캐시 데이터를 나누는지…등등 공부하면서 업로드 예정이다.
URL인코딩 & 디코딩 해보기