Skip to content

BE:[성능최적화]발표용_정리 #381

@dyk000825

Description

@dyk000825

[이벤트 기능 성능 최적화: Redis TTL 기반 아키텍처]

기존 문제점

  • 매 요청마다 DB에서 좋아요 수 계산 → 성능 저하
  • 이벤트 랭킹 집계 시 다량의 집계 쿼리 발생 → 트래픽 증가

개선 방법

  • 좋아요 수를 Redis에 캐싱 (post:{postId}:likes)
  • 좋아요 수 갱신 시 Redis만 갱신하고, 일정 시간 뒤 MySQL로 flush
  • TTL을 활용해 이벤트 종료 시점 +10분에 자동 삭제 → KeyExpirationEventListener 활용
  • 종료 시 랭킹 데이터를 한번에 집계하여 DB에 반영

결과

  • 실시간 랭킹 응답 속도 % 이상 개선
  • 이벤트 종료 후 DB 집계 트랜잭션 수 대폭 감소
  • 트래픽 급증 상황에서도 서버 부하 최소화

[JPA 기반 쿼리 최적화 및 N+1 문제 해결]

기존 문제점

  • 게시글 리스트 조회 시 이미지, 좋아요, 댓글 수 등 관련된 서브 데이터 N+1 문제 발생

개선 방법

  • Querydsl 기반 복합 쿼리로 PostSummaryDto 직접 조회
  • JPAExpressions를 활용한 서브쿼리 최적화

결과

  • 쿼리 수 대폭 감소, N+1 문제 해결
  • 평균 응답 시간 % 개선

Metadata

Metadata

Assignees

Labels

BE백엔드 관련 이슈📝docs문서 작성 관련 이슈

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions