이번에는 검색 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) 작업이 미친
Cloudflare 환경변수, Supabase 키 설정 edge function을 호출할 때는 supabase API key (anon public)가 필요합니다. 복사해줍니다. cloudflare에서 환경변수로 세팅해줍니다. 변수 이름은 임의로 정하
Cursor로 최종 UI/UX 다듬기 (API 기반 데이터 표시) 기존 웹사이트 디자인에서 api 호출 기반의 데이터로 바뀐 모습입니다. 유저친화적으로 UI를 꾸며가면서 최종본까지 개선해줍니다. 여기까지 왔으면 사실상 90%는 끝났습니다. 그런데 사용