logo

Week 7

Redis 실전 활용

2026-07-18 (토) · 미션 공개 + 주간 방향

엄마는 다 해놨어 🍱

지난 주 돌아보기 — Week 6

항목 결과
제출률 {{N}}/{{M}} 명
잘된 점 핫스팟 1 개 수치 로 잡은 학생 다수
아쉬운 점 우선순위 근거 가 약함
이번 주 가져갈 것 기억 으로 풀 수 있는 것은 캐시로

08-week7-redis

  • type: code
  • 마감: 2026-07-24 (금) 23:59
  • 검증: PR → mission-guard CI → AI 리뷰
  • 통과 조건: 캐시 hit rate 리포트 + 팀 프로젝트 설계 초안

"DB 가 계산기 라면, Redis 는 포스트잇 메모."

비유 — 카페 주문

매번 레시피 보고 만들기 (= DB) → 느림. 자주 메뉴 미리 만들기 (= 캐시) → 즉시.

  • 너무 많이 → 식어버림 (TTL 초과)
  • 안 팔림 → 메모리 낭비
  • 레시피 바뀜 → 폐기 (invalidation)

이번 주 목표 🎯

  1. 캐시 키 설계 — 무엇을 키로 잡고 TTL 얼마인지 근거
  2. hit rate 측정 — Spring Actuator metrics/cache.gets 또는 Redis INFO stats
  3. invalidation 전략 — 데이터 바뀌면 캐시 어떻게 비우는지

캐시 hit rate — 무엇을 측정하나

hit  = 캐시에서 가져옴 (DB 안 감)
miss = 캐시 없어서 DB 갔다 옴

hit rate = hits / (hits + misses) × 100
hit rate 90%+  = 매우 좋음
hit rate 50%   = 캐시 무용지물
hit rate 10%   = 캐시 _빼는_ 게 나음

Spring 캐시 적용

@Cacheable(value="post", key="#id")
public Post findById(Long id) { ... }

@CacheEvict(value="post", key="#post.id")
public void update(Post post) { ... }
어노테이션 동작
@Cacheable 결과 캐시 저장
@CacheEvict 캐시 제거 (수정)

invalidation — 캐시 폐기 전략

1. TTL 만료 — 시간 지나면 자동 (가장 단순)
2. 변경 감지 — 데이터 수정 시 즉시 (@CacheEvict)
3. Write-Through — 캐시·DB 동시 갱신
4. Refresh-Ahead — TTL 끝나기 전 미리 갱신

첫 PR 은 TTL + @CacheEvict 조합. 나머지는 필요할 때.

함정 — 흔한 실수

  • ❌ TTL 너무 길게 → 데이터 낡음 (예: 24시간 — 사용자가 본 글 안 보임)
  • ❌ TTL 너무 짧게 → 캐시 효과 X
  • ❌ 키에 가변 객체 사용 → 매번 다른 키 → miss
  • ❌ DB 변경 시 캐시 안 비움 → stale 데이터
  • ❌ hit rate 측정 안 함 → 캐시 효과 으로

이번 주 제출할 것 📦

08-week7-redis/
├── report.md
├── project/                      # Spring Boot baseline + Redis
└── evidence/
    ├── cache-key-notes.md        # 키 설계 + TTL 근거
    ├── hit-rate-report.md        # 측정 결과
    ├── db-load-comparison.md     # DB 호출 수 before/after
    └── measure-cache.md          # 측정 명령 + Actuator 설정

팀 프로젝트 진입 — 설계 초안

이번 주는 개인 미션 + 팀 프로젝트 설계 초안 동시.

  • 본인 팀 도메인 1 개 결정 (예: 재고 / 알림 / 검색)
  • 6 공통 필수 기능 중 이번 팀 PR 에서 다룰 것 매핑
  • evidence/team-project-draft.md 1 장

Week 8 에서 팀 프로젝트 진입 점검, Week 9 부터 팀 본격 가동.

평가는 어떻게 (5축) 📊

가중 핵심
요구사항 충족 ★★ 캐시 + hit rate 모두
구조 ★★ 캐시 위치 / 책임 분리
기술 적용 ★★ TTL / invalidation 근거
검증 근거 ★★★ hit rate + DB 호출 비교
설명력 ★★ 캐시 전략 본인 말로

이번 주 일정 📅

  • 제출 마감: 2026-07-24 (금) 23:59
  • 토 15:00–16:30: 학생 내부 발표 (강의 슬롯 아님)
  • 오피스아워: 화·목 21:00 {cohort}-질문 스레드
  • 팀 매칭: Week 8 종료 시점 공식 발표

질문 ㄱㄱ ❓

이번 주 = "DB 한 번 → 100 번 응답 가능?"
다음 면접 = "캐시 hit rate 어떻게 측정?" 답할 수 있게

다음 주: Week 8 — AI Native + 격주 강의.