CS

[Web] 캐시(Cache)

ayeongjin 2025. 2. 26. 00:21

1. 캐시(Cache)란?

자주 사용하는 데이터를 저장하여 빠르게 접근할 수 있도록 하는 고속 메모리 또는 저장소를 의미한다.
컴퓨터에서는 CPU와 메모리(RAM) 사이의 속도 차이를 보완하기 위해 캐시를 사용한다.
캐시는
보다 빠른 데이터 접근을 가능하게 하여 시스템 성능을 크게 향상시킨다.

 

 

캐시가 필요한 이유

  • 시는 데이터나 값을 미리 복사해 놓은 임시 저장소이다.
  • 데이터를 접근하는 시간이 오래 걸리거나 계산 시간이 오래 걸리는 로직에서 사용된다.
  • 캐시가 없다면
    • 변경되지 않는 고정 데이터조차 매번 네트워크를 통해 다운받아야 하므로 비용과 성능 문제가 발생한다.
    • 불필요한 데이터 요청이 반복되면 이터 비용이 증가하고 사용자의 로딩 속도가 느려지는 경험을 초래한다.
  • 캐시를 사용하면
    • 새로고침 시 반복되는 데이터를 네트워크를 통하지 않고 활용 가능 → 네트워크 사용량 감소
    • 브라우저 로딩 속도가 빨라짐 → 사용자 경험 향상
  • 컴퓨터에서는 CPU와 메모리(RAM) 사이의 속도 차이를 보완하기 위해 캐시를 사용한다. 캐시는 보다 빠른 데이터 접근을 가능하게 하여 시스템 성능을 크게 향상시킨다.

 


 

2. 캐시 동작 방식

캐시는 자주 사용되는 데이터를 저장하는 역할을 한다.
데이터 접근 시, CPU가 먼저 캐시에 데이터를 요청하고, 캐시에 데이터가 없으면 메모리(RAM)에서 불러온다.

 

캐시 동작 과정

  1. CPU가 데이터를 요청하면 캐시에서 해당 데이터를 먼저 찾는다.
  2. 캐시에 데이터가 있으면(CACHE HIT) → CPU는 빠르게 데이터를 가져온다.
  3. 캐시에 데이터가 없으면(CACHE MISS) → RAM에서 데이터를 읽어오고, 캐시에 저장한다.
  4. 다음에 같은 데이터가 필요할 경우 → 캐시에서 바로 가져와 속도를 높인다.

 

캐시 적중률(Cache Hit Rate)

  • 캐시 히트(Cache Hit) → 캐시에 데이터가 있을 경우 (빠른 응답 가능)
  • 캐시 미스(Cache Miss) → 캐시에 데이터가 없을 경우 (RAM에서 불러옴 → 속도 저하)
💡 캐시 적중률 (캐시 히트율)
캐시 히트율 = (캐시 히트 횟수) / (캐시 히트 + 캐시 미스 횟수)

캐시 히트율이 높을수록 성능이 향상되며, CPU의 대기 시간이 줄어든다.

 


 

3. 캐시의 종류

캐시는 하드웨어와 소프트웨어에서 모두 사용된다. 대표적으로 CPU 캐시, 웹 브라우저 캐시, 데이터베이스 캐시 등이 있다.

 

CPU 캐시

CPU 캐시는 프로세서 내부에 존재하는 고속 메모리로, 데이터를 빠르게 불러오는 역할을 한다.

  • L1 캐시 → CPU와 가장 가까운 캐시 (작지만 가장 빠름)
  • L2 캐시 → L1보다 크지만 속도는 조금 느림
  • L3 캐시 → 여러 코어가 공유하는 캐시 (L2보다 느림, 하지만 용량이 큼)

CPU 캐시의 계층 구조

캐시 레벨 크기 속도 역할
L1 Cache 가장 작음 가장 빠름 코어별로 존재, 즉시 데이터 제공
L2 Cache 중간 크기 빠름 보조 캐시 역할 수행
L3 Cache 가장 큼 상대적으로 느림 여러 코어가 공유하는 캐시

CPU가 L1 → L2 → L3 순서로 캐시를 탐색하며, 없을 경우 RAM에서 데이터를 가져옴

 

웹 브라우저 캐시

웹 브라우저는 방문한 웹사이트의 데이터를 저장하여, 다시 방문할 때 로딩 속도를 높인다.

  • 이미지, CSS, JavaScript 파일 등을 저장하여 페이지 로딩 속도를 향상시킴
  • 캐시된 데이터가 오래될 경우 → 브라우저 캐시를 지워야 최신 데이터 반영 가능

웹 브라우저 캐시의 동작 방식

  1. 사용자가 웹사이트를 방문하면, 브라우저는 해당 데이터를 캐시에 저장한다.
  2. 사용자가 다시 방문하면, 캐시된 데이터를 사용하여 빠르게 웹페이지를 로드한다.
  3. 만약 새로운 변경 사항이 있다면, 브라우저는 최신 데이터를 다시 다운로드하여 캐시를 업데이트한다.

 

데이터베이스 캐시

데이터베이스는 자주 조회되는 데이터를 캐시에 저장하여 성능을 최적화한다.

  • 예: Redis, Memcached 같은 기술을 활용하여 데이터베이스 캐싱을 적용
  • 효과: 서버 부하를 줄이고, 데이터 조회 속도를 크게 향상

데이터베이스 캐시의 동작 방식

  1. 애플리케이션이 데이터를 요청하면, 먼저 캐시에서 확인한다.
  2. 캐시에 데이터가 있으면 빠르게 반환 (Cache Hit)
  3. 캐시에 없으면 데이터베이스에서 조회한 후, 캐시에 저장 (Cache Miss)

이렇게 하면 데이터베이스 부하를 줄이고 빠른 응답이 가능해진다

 

 

4. 캐시의 장점과 단점

 

 캐시의 장점

  • 빠른 데이터 접근 → CPU 및 애플리케이션 성능 향상
  • 서버 부하 감소 → 데이터베이스 및 네트워크 요청 최소화
  • 웹사이트 로딩 속도 향상 → 브라우저 캐시 활용으로 페이지 빠르게 로딩 가능

 

❗️ 캐시의 단점

  • 최신 데이터 반영 지연 → 캐시된 데이터가 오래된 경우 업데이트 필요
  • 메모리 사용량 증가 → 캐시를 저장하는 공간이 필요하여 추가적인 메모리 소모
  • 복잡한 캐시 무효화 정책 → 오래된 캐시를 제거하는 과정이 필요함 (예: Cache Invalidation)


 

마무리

  • CPU, 웹 브라우저, 데이터베이스 등 다양한 환경에서 캐시가 활용됨
  • 캐시를 잘 활용하면 성능을 크게 향상시킬 수 있지만, 최신 데이터 유지 및 메모리 관리도 중요하다.