웹 서비스에서의 캐시

후후니·2021년 9월 10일
0
post-thumbnail

1. 캐시란 무엇인가?

많은 시간이나 연산이 필요한 작업의 결과를 저장해두는 것을 의미한다.
컴퓨팅에서 캐시는 일반적으로 일시적인 데이터를 저장하기 위한 목적으로 존재하는 고속의 데이터 저장공간이다.
첫 작업 이후에 이 데이터에 대한 요청이 있을 경우, 데이터의 기본 저장공간에 접근할 때보다 더 빠르게 요청을 처리할 수 있다.
캐싱을 사용하면 이전에 검색하거나 계산한 데이터를 효율적으로 재사용할 수 있다.

2. 캐시의 일반적인 작동원리

캐시의 데이터는 일반적으로 RAM(Random Access Memory)과 같이 빠르게 액세스할 수 있는 하드웨어에 저장되며, 소프트웨어 구성 요소와 함께 사용될 수도 있다.
캐시는 기본 스토리지 계층(SSD, HDD)에 액세스하여 데이터를 가져오는 더 느린 작업의 요구를 줄이고, 데이터 검색의 성능을 높인다.

속도를 위해 용량을 절충하는 캐시는 일반적으로 데이터의 하위 집합을 일시적으로 저장한다.
완전하고 영구적인 데이터가 있는 데이터베이스와는 대조적이다.

3. 캐시의 장점은 무엇인가?

  • 애플리케이션 성능 개선
  • 데이터베이스 비용 절감
  • 백엔드 부하 감소
  • 예측 가능한 성능
  • 데이터베이스 핫스팟 제거
  • 읽기 처리량 증가
    • 읽기 처리량: IOPS; Input/output operations per second,. HDD, SSD 등의 컴퓨터 저장 장치의 성능 측정 단위

4. 웹서비스에서 캐시가 적용되는 예제는?

  • 클라이언트 : HTTP캐시 헤더, 브라우저
  • 네트워크 : DNS서버, HTTP 캐시 헤더, CDN, 리버스 프록시
  • 서버 및 데이터베이스: 키-값 데이터 스토어(e.g. Redis), 로컬 캐시(인-메모리, 디스크)

5. 캐시의 필요성

위의 그래프는 Long Tail 법칙의 그래프이다. Long Tail법칙은 20%의 요구가 시스템 리소스의 대부분을 사용한다는 법칙이다.
그렇기 때문에 20%의 기능에 Cache를 이용함으로써 리소스 사용량은 대폭 줄이고, 성능은 대폭 향상시킬 수 있다.

profile
주니어 프론트엔드

0개의 댓글