-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
Description
[이벤트 기능 성능 최적화: 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 문제 해결
- 평균 응답 시간 % 개선
Reactions are currently unavailable