카테고리 없음

🔥 검색 API에 Cache를 적용한 이유

creator7087 2025. 5. 19. 19:38

✅ 1. 빠른 검색 속도 (Search Speed Up)

  • 같은 조건으로 반복되는 검색 요청은 매번 DB에서 데이터를 조회하지 않아도 됩니다.
  • @Cacheable을 통해 동일 요청에 대해 Cache에서 즉시 응답 가능!
  • 👉 사용자에게 빠르고 즉각적인 검색 경험을 제공할 수 있습니다.

✅ 2. DB 부하 감소 (Reduce Database Load)

  • LIKE 조건을 포함한 검색 쿼리는 DB 인덱스를 잘 활용하지 못해 비용이 큽니다.
  • 동일한 쿼리를 캐시하면, DB 호출 자체를 피할 수 있습니다.
  • 👉 DB는 더 중요한 작업(쓰기/트랜잭션)에 집중할 수 있어 서비스 전체 성능 향상!

✅ 3. 트래픽 급증에도 안정성 유지 (Scalability & Resilience)

  • 인기 검색어나 이슈 키워드 검색 시, 트래픽 폭증이 발생할 수 있습니다.
  • Cache는 이런 상황에서 DB를 보호하는 방패막이 역할을 합니다.
  • 👉 트래픽이 늘어나도 서비스가 느려지거나 다운되지 않도록 방어할 수 있습니다.

✅ 4. 클라우드 비용 최적화 (Cost Efficiency)

  • 클라우드 환경에서는 DB 쿼리나 트래픽량에 따라 요금이 발생합니다.
  • 캐시를 활용하면 불필요한 DB 사용을 줄여 비용 절감이 가능합니다.

✅ 5. 일관된 응답 제공 (Consistent Response)

  • 실시간으로 DB에서 데이터를 조회할 경우, 결과가 순간적으로 달라질 수 있습니다.
  • Cache는 일정 시간 동안 동일 요청에 대해 동일한 결과를 제공해줍니다.
  • 👉 사용자 입장에선 안정적이고 예측 가능한 검색 경험을 제공합니다.

✅ 6. 내부 처리 효율화 (Backend Load Distribution)

  • Cache를 통해 일부 요청은 Service 계층에서 바로 처리되므로,
  • Repository → DB 로직까지 가지 않아도 되어 전체 백엔드 부하도 분산됩니다.

✨ 결론

검색 API에 Cache를 적용하면 단순한 속도 개선을 넘어서,
시스템 전체의 안정성과 효율성, 그리고 사용자 경험까지 향상시킬 수 있습니다.

 

단 5번같은 경우는 불일치성에 의한 단점이라고 볼 수 있습니다

하지만 배달 앱이라는 특정상 인기검색어에 정확성보단 일관된 응답이 중요하다고 판단되어 5번을 작성했습니다.

 

더보기

1) Remote Cache 를 위한 다양한 라이브러리(Memcached 등) 들이 있을텐데 그 중에서 Redis 를 선택한 이유가 무엇일까?
https://baebalja.tistory.com/602


그렇다면 RDBMS(SQL) 와 NoSQL 의 차이점은 무엇일까?- velog가 읽기가 편함,151은 표

https://velog.io/@wnguswn7/Database-RDBMS%EC%99%80-NoSQL%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0

https://khj93.tistory.com/entry/Database-RBMS%EC%99%80-NOSQL-%EC%B0%A8%EC%9D%B4%EC%A0%90

https://veganwithbacon.tistory.com/151

둘 다 "같은 개념의 캐시(훔치다라는 의미) 다른 장소에서 사용 - 비교하면서 보면 좋을것 같아서 추천드려요

애플리케이션 캐시
https://velog.io/@xogml951/%EC%BA%90%EC%8B%9C-%EC%A0%84%EB%9E%B5%EA%B3%BC-%EA%B0%9C%EB%85%90

https://suzzeong.tistory.com/124


웹 브라우저/시스템 캐시
https://www.indeed.com/career-advice/career-development/cache-pros-and-cons