이번에는 검색 API와 인기 검색어 조회 API를 Redis를 활용해 구현해보자. ✅ 구현 방법 인기 검색어 조회 API에서는 인기순으로 검색어를 정렬해야 하기 때문에, 자동 정렬을 해주는 자료구조인 Sorted Set을 활용한다. 검색을 할 때마다
✅ Redis의 수많은 자료 구조를 실전에서 써먹을 수 있게 배우는 방법 ‘비전공자를 위한 Redis 입문/실전 (조회 성능 최적화편)’ 강의에서는 가장 기본적이고 많이 쓰이는 String 타입 딱 한 가지를 배웠다. 하지만 Redis는 String
✅ 문제 상황 100명의 사용자가 하나의 상품을 1개씩 구매하면, 이 상품의 재고는 정확하게 100개가 차감되는 게 당연하다. 그런데 실제 코드를 실행시켜보면 오차가 발생하는 경우가 많다. 한 마디로, 재고가 100개가 차감되어야 하는데 95개, 92
✅ List (리스트) Redis에서 List(리스트)는 순서대로 데이터를 저장할 수 있는 자료구조이다. 이런 특성 때문에 실제 서비스에서 스택(stack)과 큐(queue)로 자주 사용된다. ✅ 자주 사용하는 명령어 # RPUSH [key] [val
✅ 문제 원인 누군가 좋아요를 한 번 누를 때마다 DB에 계속해서 요청을 보낸다. 만약 1000명의 사용자가 글을 보고 좋아요를 누르면 1000번의 DB 쓰기 작업을 해야 한다. DB 부하의 원인은 크게 2가지이다. 한 번의 요청이 일어날 때마다 매번
이번 강의에서는 Redis로 Lock을 구현해 동시성 이슈를 해결해보자. ✅ 문제 해결 코드 작성하기 서버 실행시키기 테스트를 위해 DB에 데이터 넣어주기 부하 테스트 스크립트 살펴보기 부하테스트 진행하기
✅ 원인 파악 이전 강의에서 실제 테스트를 해보니 원래 차감되어야 하는 개수보다 적게 차감이 됐다. 한 마디로 재고를 차감할 때 오차가 발생했다. 실제 서비스에서는 이런 문제가 절대 발생하면 안 된다. 이 문제를 해결하기 위해 문제의 원인을 살펴보자.
✅ 문제 상황 ‘비전공자를 위한 Redis 입문/실전 (조회 성능 최적화편)’ 강의에서는 데이터 조회(Read) 작업을 빠르게 만드는 가장 기초적이면서도 강력한 전략인 Cache Aside 전략을 배웠다. 하지만 데이터 쓰기(Write) 작업이 미친
✅ 캐싱을 적용시키기 전의 Throughput 측정 캐싱 코드 주석처리하기 Spring Boot 서버 빌드 및 백그라운드 실행 로컬 환경에서 K6로 성능 테스트 해보기 ✅ 캐싱을 적용시킨 후에 Throughput 측정 캐싱 코드 주석 해제하기 Spri
Docker에 초점을 맞춘 강의가 아니기 때문에 Docker에 대한 디테일한 설명은 생략할 예정이다. 혹시 Docker에 대한 기본기를 다지고 싶다면 아래 강의를 추천한다. 비전공자도 이해할 수 있는 Docker 입문/실전 (https://inf.