본문 바로가기
  • 시 쓰는 개발자
1일 1개념정리 (24년 8월~12월)/운영체제 , 하드웨어

1일1개 (81) - 컴퓨터에 캐시 지르기

by poetDeveloper 2024. 11. 14.

1일 1개념정리 24.08.09.금 ~ 

 

큰 결정에 큰 동기가 따르지 않을 때도 있다. 하지만 큰 결심이 따라야 이뤄낼 수 있다.

무조건 무조건 1일 1개의 개념 정리하기 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!


#81. 캐시

어렸을 때 "캐시지른다"를 참 많이 썼는데 ... 컴퓨터쪽 공부를 하다보면 캐시 캐시 자주 접한다. 근데 SW에서 말하는 캐시와, HW에서 말하는 캐시가 서로 좀 다른 맥락이다 !!! 약간 혼용하는 것 같기도 해서 혼란이 온다 .... 정리해보자.

 

캐시 - 하드웨어 관점

개인적인 생각인데.... 캐시라는 용어 자체는 HW의 캐시가 먼저인 것 같다. 애당초 빠른 접근을 위해 HW에서 먼저 설계했을 것이고, 이를 웹개발에서 개념을 빌려간 것이라는 느낌이 좀 든다. 근데 중요한 건 아닌듯하다.

 

하드웨어에서 말하는 캐시는 CPU와 메모리 사이에 위치하여, 전송 속도 차이를 줄이기 위해 설계된 매우 빠른 임시 저장 소이다. 주로 SRAM을 캐시라고 말하고, 매우 빠른 속도를 지원한다.

 

아래 사진을 보면, 메모리 계층구조를 볼 수 있고 (1)위로갈수록 빠르고, 비싸고, 용량이 작다. (2)아래로 갈수록 느리고, 싸고, 용량이 크다. 그래서 레지스터가 가장 빠르고 그 다음으로 캐시, RAM, HDD 이런 순서로 내려간다.

출처 : 위키피디아

 

 

캐시도 L1캐시, L2캐시, L3캐시 이런식으로 나뉘는데 이를 CPU 캐시라고 부른다. 캐시중에서도 L1이 가장 빠르고 L3이 가장 느리다.

 

CPU 캐시 (L1, L2, L3 캐시) → CPU와 가까운 정도, 그리고 속도에 따라 나눈다.

  • L1 캐시 : CPU 내부에 있는 가장 빠른 캐시로, 캐시중에서 용량이 가장 작고 가장 빠르다. CPU가 자주 쓰는 데이터, 명령어들을 저장하는 용도로 쓴다.
  • L2 캐시 : L1 캐시보다 용량이 크고, 속도는 약간 느린 캐시다.
  • L3 캐시 : 여러 CPU 코어가 공유하는 캐시로, 가장 용량이 크고 속도는 상대적으로 느리다.

캐시의 특징

  • SRAM을 사용하여 빠르게 데이터에 접근할 수 있다.
  • 데이터를 주기적으로 갱신하고 안쓰는 데이터를 지우면서 자주 접근하는 데이터만 유지한다.

 

캐시 - SW 웹개발 관점

웹개발에서 말하는 캐시는 살짝 다르다. 개념 자체는 중간에 위치하여 정보 저장하고, 접근 속도 향상시키는 맥락은 거의 똑같다. 그러나 웹개발에서 말하는 캐시는 브라우저에 저장하기도 하고, 디스크에 저장하기도 하고 다양하다.

 

다음 사진은 크롬에서 제주도를 검색하고 새로고침 했을 때 저장되는 캐시 형태이다. 60개 정도 캐시가 저장됐고, 타입을 보니깐 이미지와 폰트가 대부분이었다. 이런식으로 웹브라우저에서 반복되는 리소스를 저장해놓고 나중에 같은 리소스를 반환해야될 때 빠르게 로드해주는 역할을 캐시가 해준다.

 

  1. 웹 브라우저 캐시 : 웹 브라우저가 방문한 웹사이트의 리소스(보통 이미지, css, js파일)를 저장해 다음에 웹사이트를 불러올 때 더 빠르게 로드할 수 있게 한다.
  2. 프록시 및 CDN 캐시 : 네트워크 상의 프록시 서버나 CDN(Content Delivery Network) 서버가 데이터를 캐싱하여 요청을 빠르게 전달한다.
  3. 서버 측 캐시 : 서버에서는 Redis같이 인메모리 캐시 시스템을 사용해 DB에 자주 요청되는 데이터를 메모리에 저장해 응답 속도를 높인다.

 

정리

  HW 캐시 SW 캐시
위치 CPU와 메모리 사이, 혹은 CPU 내부에 놓임 메모리, 디스크, 네트워크 등 다양한 위치
저장 대상 CPU가 자주 접근하는 데이터와 명령어 사용자가 자주 요청하는 데이터
속도 매우 빠름 (SRAM 사용) 상대적으로 느림 (메모리나 디스크 사용)
크기 매우 작음 (몇 MB 수준) 상대적으로 큼 (작으면 MB, 크면 GB 수준)
목적 CPU와 메모리 속도 차이 완화, CPU 성능 최적화 애플리케이션 성능 향상, 요청 응답 속도 향상

 

반응형