JSCODE Logo
JSCODE 박재성JSCODE 제이온JSCODE 시니
과외유튜브블로그후기
완강 후기 이벤트블로그 리뷰 이벤트AWS SAA 합격 후기 이벤트
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호

서울특별시 구로구 경인로 20가길 11(오류동, 아델리아)

Copyright ⓒ 2026 JSCODE - 최상위 현업 개발자들의 프로그래밍 교육 All rights reserved.

이용약관개인정보처리방침

비전공자도 이해할 수 있는 Redis 입문/실전

Redis 기본 개념

Redis란? / Redis의 장점
Redis 주요 사용 사례
백엔드 채용 공고에 종종 등장하는 ‘대용량 트래픽 처리 경험’, ‘Redis 사용 경험’

Redis 사용법 익히기

로컬(Windows, MacOS)에서 Redis 설치하기
Redis 기본 명령어 익히기
Redis에서 Key 네이밍 컨벤션 익히기

Redis 캐싱 전략

캐시(Cache), 캐싱(Caching)이란?
데이터를 캐싱할 때 사용하는 전략 (Cache Aside, Write Around)
Cache Aside, Write Around 전략의 한계점 / 해결 방법
캐싱으로 조회 성능 개선을 하기 전 OOO을 항상 먼저해야 한다!

로컬 환경에서 Spring Boot + Redis로 구현하기

Redis를 추가하기 전 기본적인 Spring Boot 프로젝트 셋팅하기
Spring Boot 프로젝트에 Redis 셋팅 추가하기
Redis를 적용하기 전후 성능 비교해보기 (Postman)

로컬 환경에서 Nest.js + Redis로 구현하기

Redis를 추가하기 전 기본적인 Nest.js 프로젝트 셋팅하기
Nest.js 프로젝트에 Redis 셋팅 추가하기
[보충 설명] Nest.js가 v11일 경우 Redis 셋팅 방법

AWS EC2에서 Redis 활용하기

Reids를 포함한 아키텍처 구성 시 대략적으로 AWS 비용 얼마나 나오는 지
EC2, RDS, Spring Boot, Redis를 활용한 아키텍처 구성
EC2, RDS, Spring Boot, Redis 셋팅
Redis를 적용하기 전후 성능 비교해보기 (Postman)

부하 테스트를 통해 Redis 적용 전후 성능 비교하기

내가 구성한 백엔드 서버는 1초당 몇 개의 요청을 견뎌낼 수 있을까?
Redis - 부하 테스트를 위한 환경 셋팅 (k6)
Redis를 적용하기 전·후 Throughput(처리량) 비교해보기

Docker Compose로 Redis + Spring Boot 띄우기

Docker Compose로 Redis, Spring Boot 한 번에 띄울 수 있게 구성하기
AWS EC2에서 Docker Compose를 활용해 Redis, Spring Boot 띄워보기

AWS ElasticCache 활용하기

현업에서 EC2에 Redis를 설치해서 쓰지 않고 ElastiCache를 쓰는 이유
EC2, RDS, Spring Boot, ElastiCache를 활용한 아키텍처 구성
AWS ElastiCache 셋팅하기
AWS ElastiCache가 정상적으로 잘 생성됐는 지 확인하기
Spring Boot에 ElastiCache 연결하기
← 블로그 목록으로 돌아가기

Cache Aside, Write Around 전략의 한계점 / 해결 방법

JSCODE 박재성
JSCODE 박재성
2026. 02. 16.
author
JSCODE 박재성
category
Redis
createdAt
Dec 6, 2025 02:37 AM
isPublic
isPublic
series
비전공자도 이해할 수 있는 Redis 입문/실전
slug
cache-aside-write-around-limitations-and-solutions
type
post
updatedAt
Feb 16, 2026 03:00

✅ Cache Aside, Write Around 전략의 한계점

  1. 캐시된 데이터와 DB 데이터가 일치하지 않을 수 있다.
    1. Cache Aside 전략 (Cache Hit)
      Cache Aside 전략 (Cache Hit)
      Write Around 전략
      Write Around 전략
      Cache Asdie와 Write Around 전략을 같이 썼을 때의 한계점 중 하나는 캐시된 데이터와 DB 데이터가 일치하지 않을 수 있다는 점이다. 조금 어렵게 표현하자면 데이터의 일관성을 보장할 수 없다는 뜻이다.
      Write Around 전략에 따르면 데이터를 수정할 때 DB만 업데이트를 시키기 때문에 기존에 저장된 레디스의 데이터 값과 DB의 데이터 값은 다를 수 밖에 없다.
      예를 들어, 분명 프로필 수정에서 내 이름을 ‘박재성’에서 ‘박선재’로 바꿨는데, 내 프로필 조회를 해봤더니 내 이름이 여전히 ‘박재성’이라고 표시된다는 뜻이다.
 
 
  1. 캐시에 저장할 수 있는 공간이 비교적 작다.
    1. DB는 디스크(Disk)에 저장해서 많은 양을 저장하기 용이하지만, 캐시는 메모리(RAM)에 저장하기 때문에 DB에 비해 많은 양의 데이터를 저장할 수가 없다.
       
 

✅ 이 한계를 어떻게 극복할까?

  1. 캐시된 데이터와 DB 데이터가 일치하지 않을 수 있다.
    1. 캐시와 DB의 데이터를 일치시키기 위해, 데이터를 수정할 때마다 동시에 업데이트 시키면 성능적으로 느려진다. 그렇다고 성능 향상을 위해 DB의 데이터만 업데이트 시키면 캐시와 DB의 데이터가 일치하지 않게 된다.
       
      하지만 어쩔 수 없다. 어떤 선택을 하든 기회 비용(Trade Off)이 발생한다. 무언가를 얻으면 무언가를 포기해야 한다. 대부분의 개발 기술들이 장점이 있으면 단점이 있다. 따라서 데이터 조회 성능 개선 목적으로 레디스를 쓰는 경우에는 데이터의 일관성을 포기하고 성능 향상을 택한 것이다.
       
      이러한 이유로 인해 캐시를 적용시키기에 적절한 데이터는 다음과 같다.
      • 자주 조회되는 데이터
      • 잘 변하지 않는 데이터
      • 실시간으로 정확하게 일치하지 않아도 되는 데이터
       
      하지만 장기간 데이터가 일치하지 않는 건 문제가 될 수 있다. 따라서 적절한 주기로 데이터를 동기화시켜주어야 한다. 이 때 활용하는 기능이 레디스의 TTL 기능(만료 시간 설정 기능)이다.
       
      일정 시간이 지나면 데이터가 캐시에서 삭제된다. 그럼 특정 사용자가 조회를 하는 순간 Cache Miss가 발생한다. DB의 데이터를 새로 조회해와서 캐시에 데이터를 넣게 된다. 즉, 데이터가 새롭게 갱신되는 효과가 있는 것이다.
       
  1. 캐시에 저장할 수 있는 공간이 비교적 작다.
    1. 위에서 활용했던 TTL 기능(만료 시간 설정 기능)을 활용하면 캐시의 공간을 효율적으로 쓸 수 있다. 왜냐면 자주 조회하지 않는 데이터는 만료 시간에 의해 데이터가 삭제되기 때문이다.
 

✅ 요약

Cache Aside, Write Around 전략을 사용할 때 주로 TTL을 같이 활용한다.
 
 
📎
이 글은 비전공자도 이해할 수 있는 Redis 입문/실전 (조회 성능 최적화편) 강의의 수업 자료 중 일부입니다.