인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

쭈도리님의 프로필 이미지

작성한 질문수

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

게시글 목록 최적화 전략 설계

게시글목록 최적화 전략설계 질문

작성

·

61

·

수정됨

0

조회용 게시글 목록 캐시가 미리 있는 상태에서 게시글이 수정이 된다면 게시글 조회 서비스에서 구독을 통해서 캐시 수정이 이뤄져야 하는걸까요?

강의에서는 작성/삭제 두가지만 말해주시는거 같아서 수정인경우도 알고싶습니다~

답변 2

0

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

쭈도리님, 안녕하세요!

 

강의에서는,

“게시글 ID 목록 캐시”와 “게시글 캐시”가 분리되어 있습니다.

“게시글 ID 목록 캐시”는 게시글 ID만 저장하기 때문에, 생성/삭제 이벤트만 받아주면 됩니다.

게시글이 수정되더라도, 생성 시점에 발급 받은 게시글 ID는 변경되지 않기 때문입니다.

“게시글 캐시”는 말씀하신대로 수정 이벤트를 처리해줘야하고, 단건 최적화 전략 부분에서 구현을 진행한 상황입니다!

 

혹시 더 궁금한 점 있으시면 편히 말씀 주세요!

0

인프런 AI 인턴님의 프로필 이미지

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

게시글 목록 데이터를 캐시에 저장해놓고 사용하는 경우 수정 작업에 대한 캐시 관리 전략은 중요합니다. 질문하신 상황에 대해 설명드리겠습니다:

캐시와 데이터 수정 시나리오

  1. 게시글 수정 시 캐시 업데이트:

    • 캐시에서 이미 저장된 게시글이 수정되었다면, 수정된 데이터를 반영하기 위해 캐시를 업데이트해줘야 합니다.
    • 이 과정에서 변경된 게시글의 데이터를 갖고 있는 캐시 항목만 갱신하면 됩니다. 모든 항목을 다시 생성할 필요는 없습니다.
  2. 구독 패턴 사용:

    • 메시지 큐나 Event-Driven Architecture(EDA) 패턴을 사용하여 게시글 수정 이벤트를 구독하는 서비스가 캐시를 자동으로 갱신하도록 만들 수 있습니다.
    • 예를 들어 Kafka나 RabbitMQ 같은 메시징 시스템을 활용하여 게시글 수정 이벤트를 처리할 수 있습니다.
  3. 기타 고려사항:

    • 캐시 일관성을 유지하기 위해 TTL(Time To Live) 설정을 활용하거나, 특정 조건에서 전체 캐시를 무효화하고 새로 로드하는 전략을 사용할 수 있습니다.
    • 수정이 빈번히 일어나는 경우 캐시 사용으로 얻는 이점이 적어질 수 있으므로 캐시 전략을 신중하게 설계하는 것이 중요합니다.

더 많은 정보는 다음의 유사한 질문의 답변 링크를 참고하세요:

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