2025-10-31

1일 1아티클

요즘IT

캐싱 전략

X의 기능 요구 사항

  1. 사용자 등록 및 인증
    • 필수 정보 입력 시에만 새 계정 생성
    • 로그인 시 입력하는 자격 증명은 안전하게 저장, 인증 절차의 정확한 처리
  2. 트윗 생성
    • 최대 글자 수(280자) 이내로 메시지 작성
    • 텍스트, 해시태그, 이미지, 동영상 등 미디어 첨부 가능
  3. 팔로우 / 언팔로우
    • 다른 사용자 팔로우 시 해당 사용자의 트윗을 타임라인에서 확인
  4. 타임라인
    • 사용자의 트윗 생성 시간 및 선호도 반영하여, 적합한 내용을 타임라인에 효율적으로 표시
  5. 검색
    • 키워드, 해시태그, 사용자 이름 기반 검색
  6. 리트윗, 좋아요
    • 다른 사용자의 트윗을 자신의 팔로워에게 공유하기
  7. 다이렉트 메시지
    • 공개 트윗 피드와는 별개의 다이렉트 메시지 송수신

서비스 아키텍처

  • 로드 밸런서 → API 게이트웨이 → 트윗 서비스 → 객체 저장소, 트윗 DB, 메시지 큐
  • 메시지 큐 → 타임라인 서비스, 검색 서비스

데이터 모델 및 저장소 구조

  1. DB (아파치 카산드라, 아마존 DynamoDB 등)
    • RDBMS 활용
    • 데이터가 각 노드에 골고루 분산되도록 파티션 키를 트윗ID로 설정
    • 시간 순서대로 트윗의 효율적 조회를 위해 클러스터링 키로 타임스탬프 사용
  2. 객체 저장소 (아마존 S3 등)
    • 미디어 파일은 객체 저장소에 개별 파일로 저장
    • DB 트윗 정보에는 해당 파일의 고유 식별자를 참조로 포함

캐싱 전략

  1. 시간 기반 슬라이딩 윈도우 캐싱
    • 최근 N시간 이내에 게시된 트윗은 캐시에 유지
    • 새로운 트윗 추가 시 캐시에 저장, 조건 시간 초과된 트윗은 삭제
  2. 인기도 기반 캐싱
    • 좋아요, 리트윗, 댓글 등의 사용자 반응 데이터 활용한 트윗 점수 계산
    • 점수가 일정 기준을 넘는 트윗만 캐시에 저장
    • 점수는 주기적으로 재계산하여 캐시 업데이트
  3. 하이브리드 캐싱
    • 시간 기반과 인기도 기반을 혼합 활용
    • 최근 N시간 이내 작성 트윗은 인기도와 관계 없이 캐시에 저장
    • 일정 시간이 지난 뒤에는, 인기도 기준 충족 시에만 캐시에 유지

오늘 배운 것

내일 할 일

참고자료

results matching ""

    No results matching ""