티스토리 뷰

컴퓨터 기초

캐싱에 대하여

cvcvcx9 2024. 9. 6. 09:26

캐싱

캐싱이란 데이터의 로드를 빠르게 하기위해 적용하는 것으로, 우리 주변에서 많이 쓰이고 있는 기술이다.

캐싱이 쓰이는 조건

  • 어떤 것이 자주 변하고, 어떤 것이 자주 변하지 않는지 알아두어야 한다.

캐싱을 사용하는 방법

  • 읽어들어는 것이 변하지 않는 경우에 메모리에 들어있는 것을 그대로 제공
  • 읽어들이는 것이 변할 때를 감지하여 메모리에 저장된(캐싱된) 항목을 변경 후 이후 변경된 항목으로 제공

실 서비스 구현 예제

지하철 현황 rest api의 경우

  • 지하철 현황 정보가 null 이거나, 유효시간이 경과했다면, open api를 호출한다.
  • 매번 openapi를 호출하는 것보다, 훨씬 더 효율적이고 병목현상이 적게 일어날만한 코드가 완성된다.

로컬 캐시 라이브러리

잘 만들어진 캐시 라이브러리는 없을까?

체크 항목

  • 캐시 항목 만료 정책
  • 캐시 제거 정책
  • 기타 클러스터 캐시 동기화 및 디스크 저장 기능 등

Java Ehcache

  • 어노테이션으로 함수에 표시하고, 설정만 해주면 캐싱을 적용할 수 있다.

과제

인기 상품 게시 기능 구현

  • 인기 상품을 선별하는 모듈은 연산 복잡도가 매우 높아 캐싱 대상으로 선정
  • 선별은 하루 2회
  • 긴급 인기 상품 리스트 수정 기능 제공
  • 소규모이기에 was 하나로 운영

문제 발생

WAS를 3대로 증설 후, 상품 리스트 수정 기능 비정상 작동

  • redis 등과 같은 서버 캐싱 라이브러리를 사용하여 해결
  • 상황에 맞는 캐싱을 실제 서비스에 활용하여 구축한다.
  • 로컬 캐시와 리모트 캐시에 대한 것을 구별하여 사용한다.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함