Inflearn brand logo image

인프런 커뮤니티 질문&답변

100and님의 프로필 이미지
100and

작성한 질문수

대기업 근무하며 경험한 Redis를 야무지게 사용하는 방법 [이론편]

Look Aside와 그에따른 Thundering Herd

Cache-Aside 패턴에서 Cache Miss 시

해결된 질문

작성

·

54

0

안녕하세요 강사님!

Look-Aside 패턴과 Thundering Herd 관련 강의(3:37~) 내용을 듣다가 궁금한 점이 있어 질문드립니다.

 

캐시-어사이드 패턴에서 캐시 미스가 발생했을 때, 강의 중 보여주신 그림에서는 캐시가 직접 DB를 조회하고 데이터를 업데이트한 뒤 서버에 응답까지 전달하는 구조처럼 표현해주셔서 다소 혼란스럽습니다.

 

제가 알고 있기로는 캐시-어사이드 패턴은 캐시 미스 발생 시 애플리케이션(서버)이 직접 DB를 조회하고, 조회한 데이터를 캐시에 갱신(PUT)한 뒤 클라이언트에 응답하는 방식으로 동작하는 것으로 알고 있습니다.

 

만약 MSA 환경에서 캐시 서버가 별도로 구성되어 있고, 데이터를 API 통신 형태로 제공하는 구조라면 그림으로 그리시면서 설명해주신 부분이 어느 정도 이해가 되지만, 해당 파트가 MSA 를 전제하고 설명하는 맥락은 아닌 것 같아서요.

 

혹시 이 부분에 대해 제가 잘못 이해한 부분이 있다면 피드백 주시면 감사하겠습니다!

답변 2

1

Hong님의 프로필 이미지
Hong
지식공유자

안녕하세요 100and님 질문 남겨주셔서 감사합니다. 당연하게도 말씀해 주신 부분이 맞습니다. 제가 전달하는 과정에서 혼동이 있었던거 같네요.

MSA를 구축한다고 해도 이런 캐시 서버가 별도로 있어서 동작하며 캐시를 갱신해주는 경우는 없습니다. 굉장히 비효율적이죠 왜냐하면 이런 캐시서버는 어떤 데이터가 어떻게 자주 활용이 되는지 알 수가 없는데 해당 데이터를 갱신해주며 API를 위해 DB와의 일관성을 지켜준다는 것이 기본적으로 통용되지가 않습니다.

  • 물론 대용량의 데이터를 제공해주기 위해서 주기적으로 크론작업을 수행하며 갱신해주는 경우는 있습니다.

 

그래서 제대로 이해하신것이 맞습니다.

혼동을 드려서 죄송하며 이렇게 시간 내주셔서 질문 남겨주셔서 너무나도 감사드립니다.

좋은 하루 보내세요!

0

안녕하세요, 인프런 AI 인턴입니다. 100and님.

캐시-어사이드 패턴에서 캐시 미스가 발생했을 때의 동작 방식에 대해 질문해 주셨군요. 이 패턴에 대한 올바른 이해는 성능 최적화와 시스템 아키텍처 설계에 매우 중요합니다. 말씀하신 대로 일반적인 Cache-Aside 패턴에서는 애플리케이션이 직접 DB 조회를 하며, 그 결과를 캐시에 업데이트하여 응답을 제공하는 방식입니다.

다만, 강의에서 언급하신 그림의 맥락이나 예시는 MSA 환경을 고려한 특정 시나리오일 수 있습니다. MSA에서는 각 서비스가 독립적으로 동작하면서 API 통신을 통해 데이터를 주고받을 수 있어, 캐시 서버가 DB와 직접 통신하는 것으로 오해할 수 있는 그림이 있을 수 있습니다.

관련 질문을 다루는 기존의 유사한 논의를 통해 이 주제에 대해 더 살펴보실 수 있습니다:

위 링크에서는 Cache-Aside 패턴과 MSA에 적용 시 어떻게 설계할 수 있는지 더 자세히 설명하고 있으며, 그림에서의 혼동이 어떤 부분에서 오는 것인지에 대한 설명도 포함되어 있을 수 있습니다.

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

100and님의 프로필 이미지
100and

작성한 질문수

질문하기