1. 캐시(Cache)란 ?
[ Cache ]
Cache란 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 아래와 같은 저장공간 계층 구조에서 확인할 수 있듯이. 캐시는 저장 공간이 작고 비용이 비싼 대시 빠른 성능을 제공한다.
Cache는 아래와 같은 경우 사용을 고려하면 좋다.
- 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우(서버의 균일한 API 데이터)
- 반복적으로 동일한 결과를 돌려주는 경우(이미지나 썸네일 등)
Cache에 데이터를 미리 복사해 놓으면 계산이나 접근 시간 없이 더 빠른 속도로 데이터에 접근이 가능하다. 결국
Cache란 반복적으로 데이터를 불러오는 경우에, 지속적으로 DBMS 혹은 서버에 요청하는 것이 아닌 Memory에
데이터를 저장하였다가 불러다 쓰는 것을 의미한다. Enterprise급 Application에서는 DBSM에 부하를 줄이고, 성능을
높이기 위해 캐시(Cache)를 사용한다. 원하는 데이터가 캐시에 존재할 경우 해당 데이터를 반환한다. 이러한 상황을
Cache Hit라고 한다. 하지만 원하는 데이터가 캐시에 존재하지 않을 경우 DBSM 또는 서버에 요청을 해야되며 이를
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서버를 이용하기 때문에 서버 간의 데이터 공유가 쉽다.
참고 자료
'웹개념' 카테고리의 다른 글
동기와 비동기 개념과 차이 (1) | 2021.10.09 |
---|---|
SSR과 CSR (0) | 2021.10.09 |
[GraphQL] GraphQL과 REST API의 차이점 (0) | 2021.10.09 |