[Server] Cache(캐시)란?

티스토리 메뉴 펼치기 댓글수0

Server

[Server] Cache(캐시)란?

망나니개발자
댓글수0

1. 캐시(Cache)란?


[ Cache ]

Cache란 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 아래와 같은 저장공간 계층 구조에서 확인할 수 있듯이, 캐시는 저장 공간이 작고 비용이 비싼 대신 빠른 성능을 제공한다. 

 

Cache는 아래와 같은 경우에 사용을 고려하면 좋다.

  • 접근 시간에 비히 원래 데이터를 접근하는 시간이 오래 걸리는 경우(서버의 균일한 API 데이터)

  • 반복적으로 동일한 결과를 돌려주는 경우(이미지나 썸네일 등)

Cache에 데이터를 미리 복사해 놓으면 계산이나 접근 시간 없이 더 빠른 속도로 데이터에 접근할 수 있다. 결국 Cache란 반복적으로 데이터를 불러오는 경우에, 지속적으로 DBMS 혹은 서버에 요청하는 것이 아니라 Memory에 데이터를 저장하였다가 불러다 쓰는 것을 의미한다. Enterprise급 Application에서는 DBMS의 부하를 줄이고, 성능을 높이기 위해 캐시(Cache)를 사용한다. 원하는 데이터가 캐시에 존재할 경우 해당 데이터를 반환하며, 이러한 상황을 Cache Hit라고 한다. 하지만 원하는 데이터가 캐시에 존재하지 않을 경우 DBMS 또는 서버에 요청을 해야하며 이를 Cache Miss라고 한다. 캐시는 저장공간이 작기 때문에, 지속적으로 Cache Miss가 발생하는 데이터의 경우 캐시 전략에 따라서 저장중인 데이터를 변경해야 한다.

 

 

[ 캐시의 필요성 ]

 

 

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

 

2. Local Cache vs Global Cache


[ Local Cache ]

  • Local 장비 내에서만 사용되는 캐시로, Local 장비의 Resource를 이용한다.

  • Local에서만 작동하기 때문에 속도가 빠르다.

  • Local에서만 작동하기 때문에 다른 서버와 데이터 공유가 어렵다.

[ Global Cache ]

  • 여러 서버에서 Cache Server에 접근하여 사용하는 캐시로 분산된 서버에서 데이터를 저장하고 조회할 수 있다.

  • 네트워크를 통해 데이터를 가져오므로, Local Cache에 비해 상대적으로 느리다.

  • 별도의 Cache서버를 이용하기 때문에 서버 간의 데이터 공유가 쉽다.

 

 

 

 

참고 자료

맨위로

https://mangkyu.tistory.com/69

신고하기