Notice
Recent Posts
Recent Comments
Link
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

che01 님의 블로그

Redis를 활용한 검색어 수집 시스템 구현 본문

카테고리 없음

Redis를 활용한 검색어 수집 시스템 구현

che01 2025. 7. 13. 20:38

개요

Spring Boot 애플리케이션에서 Redis Sorted Set을 활용하여 실시간 검색어 수집 및 인기 검색어 관리 시스템을 구현했다. 학습을 위해 AOP로 구현했지만 보통 검색어 수집은 이런 방식으로 구현하지 않는다 횡단 관심사가 일단 아니기 때문이고 요청을 가로체는 부분은 비동기 처리가 안돼기 때문에 검색 성능에 영향을 준다.

시스템 아키텍처

핵심 구성 요소

  • AOP 기반 검색어 수집: @CollectSearchKeyword 어노테이션으로 자동 수집
  • Redis Sorted Set: 실시간 검색어 카운팅 및 랭킹 관리
  • 비동기 처리: 사용자 응답 시간에 영향 없는 백그라운드 처리
  • 배치 동기화: 주기적으로 Redis 데이터를 DB에 영속화

프로세스 상세 흐름

기술적 특징

Redis Sorted Set 활용

  • ZINCRBY: 검색어별 카운트 자동 증가
  • ZREVRANGE: 점수(카운트) 기준 내림차순 정렬 조회
  • 메모리 기반 고성능 처리로 실시간 랭킹 관리 가능

비동기 처리

  • @Async 어노테이션으로 검색어 저장을 백그라운드에서 처리
  • CompletableFuture로 Redis 조회 결과를 비동기로 처리
  • 사용자 검색 응답 시간에 영향 없음

배치 동기화 전략

  • 주기적으로 Redis 데이터를 DB로 동기화
  • 메모리 사용량 최적화를 위한 동기화 후 캐시 클리어
  • 기존 키워드 일괄 조회로 DB 부하 최소화

성능 및 안정성

성능 최적화

  • Redis 메모리 기반 처리로 높은 TPS 확보
  • 배치 upsert로 DB 부하 분산
  • 비동기 처리로 사용자 경험 개선

학습 포인트

  • Redis Sorted Set을 활용한 실시간 랭킹 시스템 구현
  • AOP와 비동기 처리를 통한 성능 최적화
  • 캐시와 DB 간 데이터 일관성 유지 전략
  • 대용량 트래픽 환경에서의 검색어 수집 아키텍처 설계