강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của nippyclouding
nippyclouding

câu hỏi đã được viết

Nhập môn/Thực hành Redis dành cho cả người không chuyên (Phần tối ưu hóa hiệu suất truy vấn)

Thiết lập dự án Spring Boot cơ bản

스프링 부트에 Redis 적용하기 질문

Viết

·

86

0

안녕하세요 항상 강의 잘 수강하고 있습니다 !

강의를 수강하다 질문이 생겨 여쭤보게 되었습니다.

강의 진행 시에는 Service 계층에서 Redis 설정을 적용시켰는데, Redis 설정은 Service 계층에서 적용하는 것이 일반적일까요 ? Repository나 Controller 계층에서도 걸어줘도 차이가 있는지 궁금해서 여쭤봅니다 !

redisnosqlquery-tuningperformance-tuning

Câu trả lời 2

0

jscode님의 프로필 이미지
jscode
Người chia sẻ kiến thức

안녕하세요 ! 질문 너무 잘 해주셨어요 ~

질문해 주신 내용에 대해 답변드려볼게요 !

 

"강의 진행 시에는 Service 계층에서 Redis 설정을 적용시켰는데, Redis 설정은 Service 계층에서 적용하는 것이 일반적일까요 ?"

->네 ! Redis 캐싱 설정은 Service 계층에 적용하는 것이 일반적이고 권장돼요 !

Service 계층에서 비즈니스 로직이 처리된 후의 최종 결과를 캐싱하기 때문에 가장 효율적이기 때문이에요 !

또한 여러 Controller에서 같은 Service를 호출할 때 캐시를 재사용할 수 있어서 효율성이 높고,

캐시 키 관리도 깔끔하게 비즈니스 로직 단위로 할 수 있어요 !

Controller 계층에 적용하면 HTTP 요청 파라미터나 헤더 등까지 고려해야 해서

캐시 키가 복잡해질 수 있고, Controller는 HTTP 계층의 역할에 집중하는 게 좋기 때문에

캐싱 로직이 섞이면 관심사 분리 측면에서도 좋지 않아요 !

Repository 계층에 적용하는 경우에는 DB 쿼리 결과를 바로 캐싱하게 되는데,

이렇게 되면 비즈니스 로직 처리 전의 원본 데이터만 캐싱되고 페이징이나 정렬 등

다양한 조건마다 별도의 캐시가 생성되어 비효율적일 수 있어요 !

결론적으로 Service 계층에서 비즈니스 로직이 완료된 최종 결과물을 캐싱하는 것이

가장 효율적이고 관리하기도 좋죠 :)

 

추가로 궁금하신 점 있으시면 언제든 편하게 질문 남겨주세요~~

wonderwall09in님의 프로필 이미지
wonderwall09in
Người đặt câu hỏi

헉 상세한답변 너무 감사드립니다 새해복많이받으세요 ~~

0

안녕하세요, 인프런 AI 인턴입니다. wonderwall09in님, 질문 주셔서 감사합니다.

Spring Boot 애플리케이션에서 Redis를 사용하는 방법에 대해 궁금해 하시는 것 같습니다. 보통 Redis를 통해 처리하는 작업은 캐싱과 관련이 많이 있습니다. 이에 따라, 캐시는 일반적으로 서비스 계층에서 설정하고 사용되는 경우가 많습니다. 이는 비즈니스 로직에 맞춘 캐시 정책을 적용할 수 있기 때문입니다.

Redis 설정의 계층별 적용:

  1. Service 계층:

    • 서비스 계층은 비즈니스 로직을 다루는 공간으로, Redis 캐시는 이 계층에서 주로 관리됩니다. 이는 캐싱하는 데이터와 정책을 비즈니스 로직에 맞게 제어할 수 있기 때문입니다.
  2. Repository 계층:

    • Repository는 데이터베이스와 직접 상호작용하는 계층입니다. 이 계층에서는 캐싱보다는 데이터를 저장하고 조회하는데 최적화되어 있습니다. 따라서, Redis 설정을 직접적으로 사용하는 경우는 드뭅니다.
  3. Controller 계층:

    • Controller는 주로 요청을 처리하고 응답을 반환하는 역할을 합니다. Redis 설정을 이 계층에 직접 적용하는 것은 흔하지 않으며, 서비스 계층을 통해 간접적으로 Redis를 활용합니다.

Redis 설정을 어느 계층에서 적용할지는 애플리케이션의 요구 사항 및 구조에 따라 달라질 수 있습니다. 그러나 대부분의 경우, 효율적인 캐싱을 위해 서비스 계층에 설정하고 활용하는 것이 일반적입니다.

이와 관련된 유사 질문과 답변을 확인해보시면 좋은 참고가 될 것 같습니다:
- Redis 설정의 최적화 전략

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Hình ảnh hồ sơ của nippyclouding
nippyclouding

câu hỏi đã được viết

Đặt câu hỏi