Spring Boot Starter Redis를 사용하는 경우, Redis를 핸들링 하기 위해 Redis Template과 JPA와 유사한 방식으로 객체를 통해 Redis를 제어할 수 있는 Redis Repository 두가지 방법을 제공한다.
두가지 방법 차이를 알아보고 적절한 선택을 하여 사용하려 한다.
Spring Boot Starter Redis를 사용할 때, RedisTemplate과 Redis Repository는 둘 다 Redis와 상호작용하는 데 사용되는 다른 방법이다.
어떤 방법이 더 나은지는 사용 사례와 요구 사항에 따라 달라진다.
개발자 스스로 각각의 장단점을 살펴보고 어떤 방법이 더 적합한지 판단해야 한다.
### RedisTemplate
RedisTemplate은 Spring Data Redis에서 제공하는 강력한 클래스로, Redis와 상호 작용하는 데 유연성을 제공한다.
Redis에 저장할 수 있는 모든 데이터 유형에 대한 CRUD(Create, Read, Update, Delete) 작업을 지원한다.
Redis의 low-level 기능에 접근할 수 있으며, 각 작업에 대해 특정 데이터 형식에 맞는 Serializer 및 Deserializer를 구성할 수 있다.
#### 장점
- 더 세밀한 제어가 필요한 경우에 유용하다.
- Redis의 모든 데이터 유형에 접근할 수 있다.
- Serializer 및 Deserializer를 사용하여 데이터 형식을 커스터마이즈할 수 있다.
#### 단점
- 개발자가 직접 Redis와 상호 작용하는 코드를 작성해야 하므로 조금 더 복잡할 수 있다.
### Redis Repository
Redis Repository는 Spring Data Redis에서 지원하는 기능 중 하나로, 간단하게 Redis 데이터에 접근하는 방법을 제공한다.
인터페이스 기반 프로그래밍을 통해 개발자가 직접 Redis에 대한 구체적인 구현을 작성하지 않아도 된다.
JpaRepository와 유사한 방식으로 Redis 데이터를 조작할 수 있다.
#### 장점
- 간단하고 쉽게 사용할 수 있다.
- JpaRepository와 비슷한 방식으로 작업할 수 있어 기존에 JPA를 사용해 본 개발자라면 쉽게 접근할 수 있다.
#### 단점
- Redis의 모든 데이터 유형을 지원하지 않는다. 일부 복잡한 데이터 유형이나 RedisTemplate을 사용해야 하는 특별한 경우가 있을 수 있다.
### 결론
어떤 방법이 더 나은지 선택하는 것은 사용 사례와 개발자의 선호도에 따라 다르다.
간단한 기능이 필요하고 복잡한 데이터 유형을 다루지 않는다면 Redis Repository가 편리할 수 있다. 그러나 더 많은 제어와 유연성이 필요하거나 특정 데이터 유형을 다뤄야 하는 경우에는 RedisTemplate을 사용하는 것이 더 적합할 수 있다. **또는 두 가지 방법을 혼합하여 사용하기도 한다.**
'Spring' 카테고리의 다른 글
[JPA]연관관계 - 일대일 관계 (0) | 2023.07.27 |
---|---|
[JPA] 연관관계 조회 방식별(Fetch, Lazy) 성능 차이 테스트 (0) | 2023.07.25 |
[Spring] MapStruct 사용 주의 사항 (0) | 2023.07.25 |
[Spring] Http Status Code 제어 (0) | 2020.10.26 |
[JPA]Spring Data JPA 시작 (0) | 2020.09.16 |