TIL- cache란 무엇인가

kyoungyeon·2025년 8월 22일
0

TIL

목록 보기
128/129

inquiry

cache

  1. cache가 종류가 많았네? 에서 시작한 의문으로 시작함
    • queue에도 캐시가 붙고 (kafka)
    • db에도 캐시가 붙고
    • 각 서버에도 cache를 쓰고 (proxy (예: middleware에서) cache 도 있고 해서)
    • caching 이라는 기술도 있고
    • 정처기/정보기에도 캐싱 관련 문제가 나옴
자주 접하는 개념인데, 시나리오 상 다른 기능으로 작동함.

Cache 란 ? 빠른 접근을 위한 임시 저장 공간

  • 원리: 자주 사용하는 데이터를 가까운 곳에 복사해두기
    • Cache 는 개념이라고 한다 (기술이 아님)
    • 각 레벨별로 구현을 다르게 함

그렇다고 한다

분류

HW - CPU

CPU L1/L2/L3 Cache (가장 빠름)
├── L1: CPU 코어 내부 (수 나노초)
├── L2: CPU 내부 (수십 나노초)  
└── L3: CPU 간 공유 (수백 나노초)

OS

Page Cache (Kafka가 사용하는 것!)
├── 디스크 → 메모리 캐싱
├── OS가 자동 관리
└── Zero-copy 최적화

application level(7)

Redis/Memcached (분산 캐시)
├── 네트워크 캐시
├── 세션 저장
└── DB 쿼리 결과 캐싱

NETWORK LEVEL

CDN, Proxy Cache
├── Cloudflare (당신이 써본 것!)
├── Nginx 캐시
└── 브라우저 캐시
  1. 메모리인가? 하고 알아봄. - 이건 맞음 (하지만 메모리만은 아니다)
  • 주로 메모리 기반이지만 예외도 있음:
    ✅ CPU L1/L2 Cache: SRAM 메모리
    ✅ Page Cache: RAM
    ✅ Redis: RAM
    ❌ SSD Cache: 디스크이지만 빠른 저장소
    ❌ Disk Buffer: 하드디스크 내부 캐시
  1. OS의 process 의 하나인가 - 이건 아님.
  • Cache ≠ Process
  • Cache = 메커니즘/저장공간

예시:

  • Page Cache: OS 커널의 기능 (프로세스 아님)
  • CPU Cache: 하드웨어 (OS보다 더 아래 레벨)
  • Redis Cache: Redis 프로세스가 관리하는 저장공간
    (Cache 자체가 프로세스가 아니라, 프로세스가 Cache를 관리)
  1. 프로세스는 아니고 런타임 같은건가?
    ❌ 프로세스 아님 / ⭕ 런타임과 관련 있음
프로세스 = 실행 중인 프로그램 (독립적 메모리 공간)
Cache = 데이터 저장 메커니즘/공간

하지만 런타임에 작동:
- CPU Cache: 런타임에 자동 동작
- Page Cache: OS가 런타임에 관리
- Redis Cache: 런타임에 애플리케이션이 사용
  1. 라이브리리 기능 중 하나인가 - 아님 (하지만 라이브러리로 구현되기도 함)
Cache = 개념/메커니즘
Library = 구현체

예시:
❌ CPU Cache: 하드웨어 (라이브러리 없음)
❌ Page Cache: OS 커널 기능 (라이브러리 아님)
⭕ Redis: redis-py 라이브러리로 접근
⭕ Memcached: 라이브러리로 사용

결론: Cache는 라이브러리가 아니지만, 
      라이브러리를 통해 Cache를 사용할 수 있음
  1. 보안 공격과 관련이 있는건가? - 있음

Cache Poisoning ATTK

악성 데이터를 캐시에 삽입 → 다른 사용자가 악성 데이터 받음

Side-Channel Attack

CPU Cache 타이밍 분석 → 비밀 정보 유추
(Spectre, Meltdown 같은 공격)

기타

Kafka Page Cache

# Kafka가 OS Page Cache 활용
disk_write → page_cache → 메모리
consumer_read → page_cache → 빠른 응답

Redis DLQ (Cache)

# 애플리케이션 레벨 캐시
failed_message → Redis → 재처리 대기

Cloudflare CDN Cache

사용자 → Cloudflare Edge → Origin Server
      ↗️ (캐시 히트 시 Origin 안 감)
profile
🏠TECH & GOSSIP

0개의 댓글