Spring Boot로 서비스를 만들다 보면 자연스럽게 관계형 데이터베이스(RDBMS)를 먼저 배우게 된다. 데이터를 영속적으로 저장해야 하니까. 그런데 개발을 계속 하다 보면 문득 이런 상황이 생긴다."로그인 상태는 어디에 저장해야 하지? 장바구니 정보는? 조회수처럼
Redis를 공부하다 보면 설치부터 막히는 경우가 꽤 있다. "그냥 쓰면 되는 거 아닌가요?"라고 생각할 수 있지만, 설치 방식에 따라 개발 편의성이 꽤 달라진다. 이 글에서는 OS별 로컬 설치, 그리고 현재 가장 권장되는 Docker를 이용한 설치까지 단계적으로 정리
Redis를 처음 접할 때 "그냥 빠른 캐시 아닌가?" 라고 생각하기 쉽다. 실제로 그런 용도로 쓰이기도 하지만, Redis가 단순한 캐시 이상인 이유는 바로 다양한 자료형(Data Type) 을 지원하기 때문이다.Redis는 Key-Value 데이터베이스이다. 모든
Redis를 공부하다 보면 자연스럽게 이런 의문이 생긴다."이렇게 빠른데, 그냥 Redis만 쓰면 안 되나?"결론부터 말하면 — 둘은 경쟁 관계가 아니다. 역할 자체가 근본적으로 다르다. 본 포스팅에서는 왜 두 가지를 함께 쓰는지, 어떤 기준으로 역할을 나누는지를 정리
본 포스팅은 Spring Boot 3.x 환경을 기준으로 작성되었다. Spring Boot 2.x와 일부 설정 방식이 다르므로 주의가 필요하다.Redis를 설치하고 CLI에서 직접 명령어를 사용해보는 것까지는 실행해봤다.그런데 정작 중요한, "Spring Boot 프로
본 포스팅은 단순히 명령어를 나열하는 것을 넘어, "어떤 타입을 왜 선택했는가" 라는 설계 사고 과정을 함께 담아보려 한다.실습 문제를 처음 보면 꽤 단순해 보인다. 조회수니까 숫자를 세면 되지 않나? 맞다. 근데 막상 Redis 타입을 고르려고 하면 멈추게 된다. S
주문 ID : String판매 물품 : String갯수 : Integer총액 : Long주문 상태 : StringID를 제외한 나머지 속성값을 클라이언트에서 전달성공하면 저장된 ItemOrder를 응답
로그인 상태를 어떻게 유지할까? 이 단순해 보이는 질문이 생각보다 꽤 깊은 곳까지 이어진다. 웹의 근본적인 특성인 HTTP의 무상태성(Stateless) 에서 시작해서, 서버가 여러 대로 늘어날 때 발생하는 문제, 그리고 그것을 Redis로 해결하는 방법까지 알아보자.
게임 점수 랭킹, 이커머스 인기 상품, 포털 실시간 검색어.이런 기능을 구현해야 한다면 어떻게 접근할까? 관계형 데이터베이스(RDB)로도 물론 구현할 수 있다. 그런데 막상 짜보면, 꽤 불편하다는 걸 금방 느끼게 된다.이번 챕터에서는 Redis의 Sorted Set(Z

본 포스팅은 Redis를 활용한 캐싱의 핵심 개념과 주요 전략을 정리한 학습 노트다. 단순히 용어만 외우는 것이 아니라, "왜 이 전략이 필요한가"라는 맥락을 함께 짚어보는 방식으로 정리했다.Redis를 처음 배울 때는 그냥 "빠른 저장소"라고만 생각했다. 그런데 실제
Spring은 캐싱 로직을 비즈니스 코드에서 분리할 수 있도록 Cache Abstraction(캐시 추상화) 을 제공한다.핵심 아이디어는 간단하다 — 어노테이션을 지정해주면 메서드의 결과가 자동으로 캐시에 저장되고 꺼내진다.비즈니스 로직에 캐싱 코드가 섞이지 않는다 (