오늘은 배민 tech 큰곰님의 cache 강의를 들으면서 정리했습니다.
캐싱은 메모리의 효율을 높이는 기술이기 때문에 메모리에 대한 간략한 이해가 필요합니다. 메모리는 크게 하드 드라이브, RAM, 캐시, 레지스터(연산을 처리하는 CPU)로 구성되어 있습니다. CPU로 갈 수록 속도는 빨라지고 용량은 작아지는 경향이 있습니다. 캐시는 CPU와 RAM 사이에 L1, L2, L3 단계로 존재합니다.
그런데 모든 데이터가 골고루 사용되는 것이 아니라 일부 데이터가 자주 쓰이기 때문에 이러한 데이터를 금방 가져다 쓸 수 있는 곳에 두면 효율이 높아집니다.
한 가지 예를 들어보면 다음과 같습니다. 매번 물건을 챙기고 사용한다음에 가져다 두고 다시 가져와서 반복한다면 엄청난 비효율이겠죠.
마찬가지로 캐시는 CPU가 지금 바로 사용할 수 있는 책상 역할을 해줍니다. 캐시에 원하는 데이터가 있으면 바로 가져다쓰고 그렇지 않으면 데이터 메모리에 접근해서 찾아가지고 와야합니다.
캐시는 컴퓨터의 효율을 높여주기 때문에 다양한 사례들이 있습니다. 첫번째로 캐시의 용량을 크게 늘려서 바로바로 가져다 쓰기 좋은 컴퓨터로 만들 수 있습니다.
두번째로 하드디스크 자체에서도 이러한 캐시의 기능을 사용할 수 있습니다. 데이터를 불러올 때에도 자주 쓰이는 데이터는 캐싱을 해두고 빠르게 응답을 하는 것이죠.
유튜브의 영상도 인기있는 (자주 요청되는) 데이터는 캐싱을 해두었다가 재생해 효율을 높입니다.
웹서비스의 곳곳에도 캐싱 기술이 사용됩니다.
데이터베이스도 캐싱 기술을 적용시킬 수 있습니다.
전체적인 그림을 보면 다음과 같이 다양한 서비스 곳곳에 Cache기술을 넣어 응답속도를 줄이고 연산과정도 줄여 효율을 높이는 것을 확인할 수 있습니다.
Cache.pdf
0.81MB
https://www.youtube.com/watch?v=c33ojJ7kE7M
출처: https://joey09.tistory.com/8?category=949773 [joie de vivre]
'OS_Linux' 카테고리의 다른 글
#010. Process vs Thread (0) | 2021.10.22 |
---|