inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

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

해결된 질문

129

쭈도리

작성한 질문수 17

0

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

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

java mysql spring-boot kafka redis

답변 2

1

쿠케

쭈도리님, 안녕하세요!

 

강의에서는,

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

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

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

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

 

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

0

인프런 AI 인턴

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

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

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

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

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

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

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

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

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

@Version 어노테이션이 붙은 필드는 낙관적 락이든 비관적 락이든 업데이트가 됩니다.

0

32

1

consumer에서 에러가 발생할 경우 데이터 유실 문의

0

50

2

게시글 테스트 데이터 삽입

0

51

2

정렬, 필터, 검색 등의 조건이 붙을 경우 최적화할 수 있는 방법이 무엇이 있을까요?

0

104

2

좋아요 기능 정합성 보장 방법

0

98

2

좋아요 동시성처리 최적의 선택?

1

138

2

프론트엔드 msa 환경 api 주소 통합? 과 서버끼리 통신 방식에대해

0

92

2

안녕하세요 무한스크롤 강의듣다가 질문이 있습니다.

0

61

1

조회수 조회 로직 질문

1

67

2

비로그인 유저도 어뷰징 방지 정책

1

73

2

CommentServiceTest의 테스트 로직 질문

0

54

2

무한 스크롤 방식에서 페이지 번호 방식 쿼리의 문제점 의문

1

74

2

path 쿼리 관련 질문드립니다!

0

60

2

antigravity 에디터를 쓰신다면 종료해주세요

1

123

0

프로젝트 구조

0

88

2

article_like_count api test

0

79

2

이벤트 페이로드 객체의 생성 방식이 팩토리 메서드 패턴이 아닌 빌더 패턴인 이유가 궁금합니다!.

0

104

2

[33. 좋아요 수 구현] 에서 테스트 하는 화면 동시성 문제

0

92

2

findByPath에서 articleId로도 검색을 해야 할 것 같아요.

0

94

3

jpa ddl-auto none을 하는 이유와 join 방법

0

98

2

팩터리 메소드와 response 객체 사용 이유가 궁금합니다!

0

91

2

커서 기반 페이지네이션 과 무한 스크롤링

0

112

2

게시글 생성 로직에서 오류 발생시 redis 게시글 수 되돌리기

0

97

2

멀티 모듈이 아닌 MSA 환경에서 common

0

158

2