인프런 커뮤니티 질문&답변
스프링 부트에 Redis 적용하기 질문
작성
·
28
0
안녕하세요 항상 강의 잘 수강하고 있습니다 !
강의를 수강하다 질문이 생겨 여쭤보게 되었습니다.
강의 진행 시에는 Service 계층에서 Redis 설정을 적용시켰는데, Redis 설정은 Service 계층에서 적용하는 것이 일반적일까요 ? Repository나 Controller 계층에서도 걸어줘도 차이가 있는지 궁금해서 여쭤봅니다 !
답변 2
0
안녕하세요 ! 질문 너무 잘 해주셨어요 ~
질문해 주신 내용에 대해 답변드려볼게요 !
"강의 진행 시에는 Service 계층에서 Redis 설정을 적용시켰는데, Redis 설정은 Service 계층에서 적용하는 것이 일반적일까요 ?"
->네 ! Redis 캐싱 설정은 Service 계층에 적용하는 것이 일반적이고 권장돼요 !
Service 계층에서 비즈니스 로직이 처리된 후의 최종 결과를 캐싱하기 때문에 가장 효율적이기 때문이에요 !
또한 여러 Controller에서 같은 Service를 호출할 때 캐시를 재사용할 수 있어서 효율성이 높고,
캐시 키 관리도 깔끔하게 비즈니스 로직 단위로 할 수 있어요 !
Controller 계층에 적용하면 HTTP 요청 파라미터나 헤더 등까지 고려해야 해서
캐시 키가 복잡해질 수 있고, Controller는 HTTP 계층의 역할에 집중하는 게 좋기 때문에
캐싱 로직이 섞이면 관심사 분리 측면에서도 좋지 않아요 !
Repository 계층에 적용하는 경우에는 DB 쿼리 결과를 바로 캐싱하게 되는데,
이렇게 되면 비즈니스 로직 처리 전의 원본 데이터만 캐싱되고 페이징이나 정렬 등
다양한 조건마다 별도의 캐시가 생성되어 비효율적일 수 있어요 !
결론적으로 Service 계층에서 비즈니스 로직이 완료된 최종 결과물을 캐싱하는 것이
가장 효율적이고 관리하기도 좋죠 :)
추가로 궁금하신 점 있으시면 언제든 편하게 질문 남겨주세요~~
0
안녕하세요, 인프런 AI 인턴입니다. wonderwall09in님, 질문 주셔서 감사합니다.
Spring Boot 애플리케이션에서 Redis를 사용하는 방법에 대해 궁금해 하시는 것 같습니다. 보통 Redis를 통해 처리하는 작업은 캐싱과 관련이 많이 있습니다. 이에 따라, 캐시는 일반적으로 서비스 계층에서 설정하고 사용되는 경우가 많습니다. 이는 비즈니스 로직에 맞춘 캐시 정책을 적용할 수 있기 때문입니다.
Redis 설정의 계층별 적용:
Service 계층:
- 서비스 계층은 비즈니스 로직을 다루는 공간으로, Redis 캐시는 이 계층에서 주로 관리됩니다. 이는 캐싱하는 데이터와 정책을 비즈니스 로직에 맞게 제어할 수 있기 때문입니다.
- 서비스 계층은 비즈니스 로직을 다루는 공간으로, Redis 캐시는 이 계층에서 주로 관리됩니다. 이는 캐싱하는 데이터와 정책을 비즈니스 로직에 맞게 제어할 수 있기 때문입니다.
Repository 계층:
- Repository는 데이터베이스와 직접 상호작용하는 계층입니다. 이 계층에서는 캐싱보다는 데이터를 저장하고 조회하는데 최적화되어 있습니다. 따라서, Redis 설정을 직접적으로 사용하는 경우는 드뭅니다.
- Repository는 데이터베이스와 직접 상호작용하는 계층입니다. 이 계층에서는 캐싱보다는 데이터를 저장하고 조회하는데 최적화되어 있습니다. 따라서, Redis 설정을 직접적으로 사용하는 경우는 드뭅니다.
Controller 계층:
- Controller는 주로 요청을 처리하고 응답을 반환하는 역할을 합니다. Redis 설정을 이 계층에 직접 적용하는 것은 흔하지 않으며, 서비스 계층을 통해 간접적으로 Redis를 활용합니다.
- Controller는 주로 요청을 처리하고 응답을 반환하는 역할을 합니다. Redis 설정을 이 계층에 직접 적용하는 것은 흔하지 않으며, 서비스 계층을 통해 간접적으로 Redis를 활용합니다.
Redis 설정을 어느 계층에서 적용할지는 애플리케이션의 요구 사항 및 구조에 따라 달라질 수 있습니다. 그러나 대부분의 경우, 효율적인 캐싱을 위해 서비스 계층에 설정하고 활용하는 것이 일반적입니다.
이와 관련된 유사 질문과 답변을 확인해보시면 좋은 참고가 될 것 같습니다:
- Redis 설정의 최적화 전략
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.




