웹 개발 시 캐시를 2가지로 나눌 수 있다.
클라이언트 측 / 서버측을 활용한 캐시 사용
클라이언트는 브라우저 캐시이고,
서버를 통한 캐시 활용은 예로 CDN 서버를 들 수 있다.
브라우저 캐시는 크게 메모리 캐시와 디스크 캐시로 나뉜다.(크롬 기준)
F12 개발자 모드에서 Network 탭으로 들어가면 Size 항목에서
from memory cache / from disk cache를 볼 수 있다.
우선, 브라우저 측면이 아닌 하드웨어 측면에서 바라본 캐시 구조를 보면
디스크 캐시는 하드디스크에 접근하는 시간을 개선하기 위해 RAM에 저장하는 기법이다.
하드디스크에 접근하는 것보다 RAM에 접근하는 것이 더 빠르기 때문
캐시 메모리는 램에 접근하지 않고 더 빠른 시간으로 접근할 수 있는 CPU 칩 안에 있는 작지만 빠른 메모리이다.
(L1, L2, L3)
캐시를 가져오는 것이 2가지로 나뉘는 이유는 단순히 성능 측면이다.
더 빨리 데이터를 가져오기 위함.
그림과 같이 HDD까지 접근하는 것보다 L1, L2, L3 같은 캐시 메모리에 접근하는 것이 훨씬 빠르다.
하지만 용량이 L1~L3는 8KB ~ 8MB 으로 작은 용량을 가지고 있기 때문에 모든 것을 캐시 메모리부터 가져올 수는 없다.
다시 브라우저 측면으로 돌아와서,
일반적으로 캐시 데이터는 하드디스크(HDD)에 저장된다.
저장되는 경로는 하나의 폴더(User data) 안에 저장된다.
파일드은 디스크 캐시의 구조로 볼 수 있고,
재사용 및 I/O 최소화 등 많은 이점이 있지만, 결국 파일 I/O시간으로 인해, 처리가 빠르지 않다.
그래서 더 빠른 처리를 위해 I/O가 없이 웹코어 내부로 바로 접근할 수 있는 메모리 캐시를 이용할 수 있다.
이것을 하드웨어 측면에서 굳이 말하자면 다음과 같다.
from disk cache 는 램(RAM) 으로부터 가져온다.
from memory cache 는 더 빨리 가져오기 위해 L1, L2, L3 와 같은 캐시 메모리부터 가져온다.
결국 단순히 더 빠른 속도를 내기 위해서이다.
그로 인해, Time 항목을 보면 메모리 캐시로부터 가져온 데이터들은 시간이 0인 것을 알 수 있듯이 빠르다는 것을 느낄 수 있다.
참고사이트
https://mygumi.tistory.com/275