강의

멘토링

커뮤니티

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

happyrichman님의 프로필 이미지
happyrichman

작성한 질문수

6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법

6-4. 캐싱(Caching)의 개념 3

[수업 자료 질문] Cache Aside의 특징 문의

작성

·

23

0

1. 현재 학습 진도

  • 몇 챕터/몇 강을 수강 중이신가요?

    6-4. 캐싱의 개념 3

     

2. 어려움을 겪는 부분

  • 어떤 개념이 헷갈리시나요?

수업 자료를 보면 "Cache Aside는 구현이 간단하고 캐시 효율이 뛰어납니다. 하지만 데이터가 변경되었을 때 실시간으로 반영되지 않아 데이터 불일치 가능성이 있습니다."고 하는데,

왜 Cache Aside가 구현이 간단하고 캐시 효율이 뛰어난지 잘 이해가 가지 않습니다. Cache Aside에서는 애플리케이션 단에서 컨트롤을 다 해야 해서 구현이 길어지지 않나요? Cache Aside가 다른 전략과 비교했을 때 캐시 효율이 뛰어난 이유가 있을까요?

 

image.png

 

3. 시도해보신 내용

  • 문제 해결을 위해 어떤 시도를 해보셨나요?

데이터 변경시 데이터 불일치에 대한 설명이 있는 것을 보면 혹시 해당 부분 설명은 Cache Aside보다는 Write Around Aside 에 대한 설명에 더 가깝지 않을까하는 생각도 해보았습니다.

 

답변 1

0

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

캐싱 전략에 대한 개념 중에서 Cache Aside 패턴과 관련하여 혼란스러워하시는 것 같습니다. Cache Aside 전략은 직접 애플리케이션에서 캐시를 제어하는 방식으로, 비교적 원리 자체는 간단하게 구현할 수 있는 구조입니다. 하지만 이 전략의 특성과 작동 방식을 명확히 이해하는 데 도움이 되도록 아래에 추가 설명을 드리겠습니다.

Cache Aside의 특징 및 장점

  1. 구현의 간단함:

    • Cache Aside는 애플리케이션에서 데이터베이스와 캐시를 직접 갱신합니다. 이 과정은 애플리케이션 로직에 따라 제어되므로 다른 전략에 비해 처음부터 복잡한 설계가 필요하지 않습니다. 예를 들어, 읽기 요청이 오면 우선 캐시를 확인하고 데이터가 없으면 데이터베이스에 접근하여 데이터를 가져온 후, 이 데이터를 캐시에 저장합니다.
  2. 캐시 효율성:

    • 필요할 때만 데이터를 캐시에 가져와 쓴다는 점에서 캐시의 활용도를 증가시킵니다. 즉, 자주 접근하는 데이터만 캐시에 저장되며 불필요한 데이터까지 캐시에 저장하여 메모리를 낭비하지 않습니다. 이러한 세부적인 제어가 가능해 효율적이라 평가받습니다.

데이터 불일치 문제 및 해결

  • 데이터 불일치 가능성:
    • Cache Aside는 데이터베이스에 직접 변경이 발생한 경우, 변경된 데이터를 캐시에 반영하는 별도의 작업이 필요합니다. 예를 들어, 데이터베이스의 정보가 업데이트되었을 때 캐시에 남아있는 오래된 정보가 문제가 될 수 있습니다. 이를 방지하려면 데이터베이스에 변경이 있을 때 캐시를 직접 비우거나 일관되게 갱신해야 합니다.

기타 캐싱 전략과의 비교 내용은 그림에서 확인하실 수 있습니다. 각 전략의 장점과 단점을 고려하여 상황에 맞는 캐싱 전략을 사용하시면 좋을 것 같습니다.

이미지에서 설명된 각 전략의 특징을 자세히 살펴보세요:
- 캐싱 전략의 다양한 비교와 상황별 활용

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

happyrichman님의 프로필 이미지
happyrichman

작성한 질문수

질문하기