이번에는 검색 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) 작업이 미친
✅ MSA(Microservice Architecture)란? MSA의 의미를 검색해보면 아래와 같이 나온다. 하나의 큰 애플리케이션을 여러 개의 작고 독립적인 서비스로 나누어 개발하고 배포하는 소프트웨어 개발 아키텍처를 의미한다. 아래 그림을 보면서
리눅스 컴퓨터에서 실행시키는 프로그램들은 로그가 파일에 쌓이는 경우가 대부분이다. 이 로그들이 어떻게 찍히는 지 실시간으로 확인하고 싶을 때가 있다. 그럴 때 어떻게 하는 지 배워보자. ✅ 로그 실시간으로 확인하는 법 (tail -f) AWS EC2에