[Redis] @Cacheable의 작동 원리
·
Redis
프록시를 통한 작동Cacheable 어노테이션 또한 CachingConfigurationSelector 클래스를 통해 Configuration이 등록된다. 이 때 @EnableCaching에서 설정한 AdviceMode에 따라 Proxy, AspectJ 중 하나로 동작하기 위해 각각의 Configuration 목록이 제공된다. 내부 메서드 호출 해결 방법기본적으로 Spring AOP에서 사용하는 Proxy 기반으로 작동하지만 특수한 상황에서는 AspectJ를 사용하거나 다른 방식으로 사용할 필요가 있다.예를 들어, Spring AOP는 프록시 클래스를 기반으로 작동하는데 같은 클래스의 메서드를 내부적으로 호출하는 경우 프록시 클래스를 거치지 않기 때문에 AOP 로직이 적용되지 않는다. 이때 AspectJ..
[Redis/ Caching ] Spring에서 Cache를 구현하는 방식
·
Redis
Redis 특징Key-Value 방식으로 저장된다.컬렉션을 지원해서 다양한 타입으로 저장 가능하다.Pub/Sub 기능을 지원한다. 이 방식은 채팅이나 이벤트 소싱 방식에서 사용할 수 있다.디스크 저장이 가능하다. 메모리에 데이터를 저장하여 휘발성메모리라고 하지만 AOF/RDB 방식을 사용해서 영구적인 저장이 가능하다. 하지만 성능적인 측면에서 저하된다거나 중간에 데이터가 유실될 수도 있다는 단점이 있다.복제가 가능하다. Master/Slave 구조를 지원한다. 또한 샤딩을 사용해서 수평적인 확장이 가능하다.메모리를 통해 데이터를 조회하기 때문에 빠른 속도로 데이터를 처리한다.Redis의 타입 정리Redis 기본 개념, 자료구조Redis는 가장 자주 기본적으로 사용하는 구조는 다음과 같다. 각 타입의 특성..
[TIL] Redis 종류 및 전략 및 문서 정리
·
Redis
오늘 한 일과외 준비Redis 완강ElasticSearch 문서 정리작업 내용과외 준비오랜만에 숨고에서 요청 받은 과외를 진행한다. 내용은 스프링에 대한 기본 과외였다. 내가 정리한 항목은 스프링이 어떻게 작동하는지, 디스패처 서블릿의 작동 원리, 스프링의 3대 특징 DI/IoC, AOP, PSA, 그리고 스프링에서 사용할 수 있는 다양한 프레임워크들이다.그에 대한 내용 정리는 아래 노션 페이지에 정리 해뒀다!스프링 기본 과외 Redis 완강레디스는 이전이 정리를 한 번 해뒀기에 다시 정리하기보다 기존의 내용들을 수정하는 것이 더 좋다고 판단했다. 아래 기록들을 차례대로 훑어보면서 하나씩 틀린내용이나 추가해야 할 기록들을 확인하려고 한다.레디스 기본 개념 및 자료 구조레디스 문서 정리 Search Wit..
Redis Pub/Sub을 활용한 채팅 구현의 여정 - Service 레이어
·
Redis/Redis 채팅
서비스단 코드를 먼저 보여주고 각 메서드에 대해 설명하겠다.@Service@RequiredArgsConstructor@Slf4jpublic class ChatServiceImpl implements ChatService { private final ChatRoomRepository chatRoomRepository; private final RedisTemplate redisTemplate; private final RedisTemplate redisTemplateForSave; private final RedisTemplate redisTopicTemplate; private final UserRepository userRepository; private final No..
Trie와 Redis ZSET 비교: 키워드 자동완성 기능에 가장 효율적인 방법은?
·
Redis/Redis 개념
Redis를 사용해서 검색어 자동 기능검색을 구현하려고 할때 두 가지 방법으로 구현이 가능하다. 단, 조건은 중간 단어 검색이 아닌 첫 글자를 기준으로 검색했을때를 기준으로 선정한 방법이다.검색 엔진, 추천 시스템, 그리고 실시간 키워드 자동완성 기능은 사용자 경험(UX)을 크게 향상시킨다. 이러한 기능을 구현하기 위해 주로 사용되는 두 가지 접근법은 Trie 알고리즘과 Redis ZSET이다.이 글에서는 Trie와 Redis ZSET을 비교하고, 키워드 자동완성 기능에 어떤 방법이 더 효율적인지 살펴본다.1. Trie 알고리즘이란?Trie는 접두사 트리(Prefix Tree)라고 불리며, 문자열의 공통 접두사를 공유하는 자료구조다.Trie의 주요 특징접두사 검색에 최적화: 입력된 문자열의 접두사를 기준..
Redis Pub/Sub을 활용한 채팅 구현의 여정 - Chat Domain(Entity ~ Controller)
·
Redis/Redis 채팅
[이전글]이전 글에는 Redis와 채팅을 사용하기 위한 Config파일들을 알아보았다.https://sunro1994.tistory.com/254 Redis Pub/Sub을 활용한 채팅 구현의 여정 - 환경설정https://sunro1994.tistory.com/253 Redis Pub/Sub을 활용한 채팅 구현의 여정 - 개념편수많은 우여곡절 끝에 배포된 서버에 채팅 기능을 적용하게 되었다!간단히 말하자면 원래 담당했던 백엔드 팀원이 던져sunro1994.tistory.com [소개]이전 글에서는 Config파일을 사용해서 어떻게 Redis의 Pub/Sub 그리고 Websocket설정을 하는지 알아보았다.이번에는 Chat 도메인을 어떻게 설계했는지 Entity부터 Service까지 하나한 알아보려고 한..