이것저것 개발기록

"서버가 빨라지는 마법" 상황별 캐시(Cache) 전략 총정리 본문

IT 이야기

"서버가 빨라지는 마법" 상황별 캐시(Cache) 전략 총정리

Garam Kim 2026. 1. 2. 12:00

"똑같은 데이터를 왜 매번 DB에서 가져와야 할까요?"
사용자가 늘어날수록 DB는 비명을 지릅니다. 서버의 부담을 줄이고 응답 속도를 10배 이상 높여주는 캐시(Cache) 활용 전략을 정리했습니다.

1. 캐시를 써야 하는 이유

데이터베이스(DB)는 디스크에서 데이터를 읽어오기 때문에 속도에 한계가 있습니다. 반면 캐시는 메모리(RAM)에 데이터를 저장하므로 접근 속도가 압도적으로 빠릅니다. 자주 조회되지만 수정은 적은 데이터(공지사항, 베스트셀러 목록 등)가 캐시의 일순위 타겟입니다.

2. 대표적인 캐시 읽기 전략 (Look-Aside)

가장 흔히 쓰이는 Look-Aside(Cache-Aside) 패턴의 흐름은 다음과 같습니다.

  1. 애플리케이션이 캐시에 데이터가 있는지 먼저 확인합니다.
  2. Cache Hit: 데이터가 있다면 바로 반환합니다.
  3. Cache Miss: 데이터가 없다면 DB에서 조회해와서 캐시에 저장한 후 반환합니다.

💡 실무 노트

캐시에서 가장 조심해야 할 것은 데이터 정합성입니다. DB의 데이터는 바뀌었는데 캐시는 옛날 데이터를 들고 있다면 사용자에게 잘못된 정보를 주게 되죠.

팁: 모든 캐시 데이터에는 반드시 TTL(Time To Live, 만료 시간)을 설정하세요. 또한, 데이터가 업데이트될 때 캐시를 지워버리는(Evict) 로직을 잊지 마세요. 만약 캐시 서버가 죽었을 때 서비스가 완전히 멈추지 않도록 DB로 바로 연결되는 'Fallback' 구조를 짜는 것도 실무에서는 매우 중요합니다.

"캐시는 공짜가 아닙니다. 메모리 비용과 관리 복잡도를 대가로 속도를 얻는 것입니다."