📌 Outline
<aside>
💡 콘서트 예약 서비스 시나리오에서 성능 개선할 수 있는 로직을 분석 후 성능 개선
</aside>
🎯 Purpose
<aside>
💡 Redis를 이용한 캐싱 혹은 로직 이관을 통해 성능을 개선합니다.
</aside>
- 캐싱
- 콘서트 목록 조회 API
- 예약 가능 날짜 조회 API
- 로직 이관
🔍 테스트 환경
- 서버: 로컬 컴퓨터
- CPU: Intel Core i7-7700 @ 3.60GHz
- RAM: 16GB DDR4
- 스토리지: SSD 512GB
- 데이터베이스: h2
- Redis: Redis 7.2.5 (Docker 컨테이너)
- 부하 테스트 도구: K6
1️⃣ 캐싱
<aside>
❓ 요청 정보를 메모리에 저장해 두고 동일한 요청이 올 시 Cache Hit를 통해 DB I/O를 감소 시킴으로써 데이터베이스의 부하를 줄이고 응답 시간을 단축 시키는 방법
</aside>
🔍 전략
- 캐시 라이브러리
- Redis ⭕
- 다양한
Data Type 지원
- 빠른 응답 시간
- 확장성
- 캐시 적용 고려 대상
- 자주 조회 되는 데이터
자주 조회 되는 데이터의 경우 데이터베이스에 접근하는 대신 캐시에서 데이터를 가져오면 성능이 크게 향상
- ex) 인기 상품 목록, 자주 사용하는 설정 값, 공지사항 등
- 변경이 적은 데이터
- 데이터가 자주 변경이 되지 않으면 캐시에 저장된 데이터의
유효성이 오래 지속
- 실행 시간이 오래 걸리는
복잡한 쿼리 결과
- 복잡한 쿼리는 실행 시간이 길어질 수 있어 이러한 쿼리의 결과를 캐시 하면 애플리케이션의 응답 속도를 크게 개선 가능
- ex) 대규모 집계 데이터, 데이터 분석 결과 등
- 콘서트 시나리오에서 적합한 API
- 콘서트 목록 조회 API
- 예약 가능 날짜 조회 API