cache(3)
-
Redis로 분산 캐시 사용해보기
Distributed Cache 이전 글들(간단히 캐시 사용해보기, Caffeine으로 로컬 캐시 탐험하기)에서 설명했던 로컬 캐시는서버 내부에서 관리하는 인메모리 방식이기에 매우 빠르지만,다중 서버 환경에서는 공유를 못하기에 태생적으로 miss가 많을 수 밖에 없습니다.또한 캐시 공간을 확장하거나 관리하려면 서버를 재실행하거나 직접 기능 구현을 해야하는 등 불편함이 있죠. 분산 캐시는, 중앙에 캐시 서버를 두고 여러 개의 서버가 이를 방문해서 캐싱하는 전략을 말합니다.네트워크 I/O 비용이 발생한다는 치명적인 단점이 있지만,서버가 분리된 만큼 관리 포인트나 확장성, 편리성 등에 이점이 있죠. 그리고 그 중심에서는 Redis가 있습니다. Redis ServerRedis를 사용하기 위해서는 먼저 서..
2025.11.09 -
Caffeine으로 로컬 캐시 탐험하기
Local Cache 캐시에 대한 기본 개념은 간단히 캐시 사용해보기 글을 참고하시면 좋습니다. 로컬 캐시는 단일 서버 전용으로 동작합니다.일전에 다루었던 SimpleMapCache 처럼, 해당 웹서버가 고유의 캐시 공간을 가지고 진행하는 것이죠.Spring에서 다루는 주요 로컬 캐시들은, 이미 오래전부터 통합 지원되어 왔기 때문에 쉽게 사용할 수 있는 장점이 있습니다. 당장에 SimpleMapCache를 보더라도 사실 별도로 설정할 것도 없었습니다.그리고 원리 자체가 간단하고 파워풀 했기 때문에 꽤 좋은 캐시 방법으로 보입니다.그러나 아쉬웠던 점은, 무효화 전략이 부족한 것 처럼 편의 기능이 빠졌다는 것입니다. 이 글에서 다룰 캐시 방법은 Caffeine 입니다.어떻게 SimpleMapCache를 넘어..
2025.11.09 -
간단히 캐시 사용해보기
Highest Cost 우리는 간혹 어떤 사이트를 방문할 때 별거 없어도 어지간히 페이지가 안나오는 경우를 볼 수 있을 것입니다.가정용 인터넷 속도가 이미 수십에서 수백 Mbps에 달하는 요즘, 문제는 대부분 서버가 데이터를 늦게 보내기 때문입니다.그러나 웹서버 내부의 라우팅, 직렬화, 로깅, 객체 생성 등은 대부분 수십 밀리초 이내에 처리됩니다.전송 데이터도 수십 KB라면 200ms 안에 끝날 수 있죠. 따라서 대부분의 원인은 트랜잭션(transaction)에 있습니다.그러나 우리는 트랜잭션을 탓할 수 없습니다. 그 자체가 이미 최고의 기술을 가졌기 때문이죠.예를 들어 수 백만 개의 사용자 데이터에서 아이디를 통해 특정 사용자 데이터를 알고 싶다고 해봅니다.가장 빠른 방법은 메모리에 수 백만 개의 전체..
2025.11.08