Cache란 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 아래와 같은 저장공간 계층 구조에서 확인할 수 있듯이, 캐시는 저장 공간이 작고 비용이 비싼 대신 빠른 성능을 제공한다.
Cache는 아래와 같은 경우에 사용을 고려하면 좋다.
- 접근 시간에 비히 원래 데이터를 접근하는 시간이 오래 걸리는 경우(서버의 균일한 API 데이터)
- 반복적으로 동일한 결과를 돌려주는 경우(이미지나 썸네일 등)
Cache에 데이터를 미리 복사해 놓으면 계산이나 접근 시간 없이 더 빠른 속도로 데이터에 접근할 수 있다. 결국 Cache란 반복적으로 데이터를 불러오는 경우에, 지속적으로 DBMS 혹은 서버에 요청하는 것이 아니라 Memory에 데이터를 저장하였다가 불러다 쓰는 것을 의미한다.
Enterprise급 Application에서는 DBMS의 부하를 줄이고, 성능을 높이기 위해 캐시(Cache)를 사용한다. 원하는 데이터가 캐시에 존재할 경우 해당 데이터를 반환하며, 이러한 상황을 Cache Hit라고 한다. 하지만 원하는 데이터가 캐시에 존재하지 않을 경우 DBMS 또는 서버에 요청을 해야하며 이를 Cache Miss라고 한다. 캐시는 저장공간이 작기 때문에, 지속적으로 Cache Miss가 발생하는 데이터의 경우 캐시 전략에 따라서 저장중인 데이터를 변경해야 한다.
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 [MangKyu's Diary]
1.2.2. 캐시 메모리 (Cache Memory) 개념, 기법
Cache Memory는 메인 메모리와 CPU간의 데이터 속도 향상을 위한 중간 버퍼 역할을 하는 CPU내 또는 외에 존재하는 메모리이다. 전체 시스템의 성능의 개선을 시킬 ...
wikidocs.net
Cache Memory는 메인 메모리와 CPU간의 데이터 속도 향상을 위한 중간 버퍼 역할을 하는 CPU내 또는 외에 존재하는 메모리이다. 전체 시스템의 성능의 개선을 시킬 수 있는 메모리이다.
캐시는 종종 듣게 된다. 캐시 된 거 아니야? 라는 말을 하기도 하고, 캐시 되어 있어서 빠른거야 라는 말을 하기도 한다. 캐시는 잠시 저장해둔다는 의미이고 기능이다.
캐시 메모리라고 하면 실제 메모리와 CPU 사이에서 빠르게 전달을 위해서 미리 데이터들을 저장해두는 좀더 빠른 메모리이다.
네트워크에서 캐시는 로컬에 파일을 미리 받아놓고, 그 내용을 보거나 웹서버에서도 매번 로딩을 해야 하는 파일들을 미리 로딩해두고, 응답을 주기도 한다.
데이터 베이스를 매번 확인해야 하는 것도 캐시 서버를 이용한다면 빠른 응답을 해줄 수 있다.
캐시의 원리를 이용한 캐시 서버를 활용하여 CDN같은 서비스도 할 수 있다. CDN은 컨텐츠를 딜리버리 해주는 서버이다.
아주 먼곳에 있는 파일을 매번 가져와야 한다면 네트워크 구간이 멀어서 실패율도 있고, 전송 속도가 느리고, 오래 걸릴 수 있다. 이를 자주 쓰는 파일들을 가까운 지역의 서버에 올려 놓는다. 그렇게 되면 빠른 접근이 가능해진다.
캐시라는 개념은 동일하며, 그것을 컴퓨터 내부에서 쓰느냐 웹서버와 클라이언트 사이에서 쓰느냐, 네트워크에서 파일을 전송시도 다양하게 사용이 가능하다.
데이터를 고속으로 엑세스 할 수 있다는 장점이 있다.
치명적인 단점도 있다.
특성을 알고 사용하기 때문에 단점이라고 말할 수 없지만, 캐시 서버 또는 캐시 메모리 등 캐시가 붙은 기능에 저장된 데이터는 지워질 수 있다는 것을 전제로 한다.
영구적 메모리 공간이 아니다.
언제든 지워질 수 있고, 그것을 당연시 생각하고 프로그램 또는 서버를 개발해야 한다.
그리고 캐시는 되도록 빈도수가 높은 것들 위주로 데이터량이 많지 않은 것이 좋다.
캐시메모리 서버 등 캐시가 붙은 장치는 비싸다.
물론 상대적으로 말이다. 그래서 이곳에 모든 데이터를 넣고, 서비스를 할 생각은 말아야 한다.
데이터의 임시 보관소 Cache Memory ‘Cache’라는 의미는 보관이나 저장의 의미이다. Cache Memory라 하면 이러한 역할을 하는 물리적 장치 즉 메모리를 말한다.
CPU와 메인 메모리 사이에 존재한다고 말할 수 있는데, CPU내에 존재할 수도 있고 역할이나 성능에 따라서는 CPU밖에 존재할 수도 있다.
빠른 CPU의 처리속도와 상대적으로 느린 메인 메모리에서의 속도의 차이를 극복하는 중간 버퍼 역할을 한다.
쉽게 표현하면 CPU는 빠르게 일을 진행하고 있는데, 메모리에서 데이터를 가져오고 가져가는데 느려서 중간에 미리 CPU에 전달될 데이터를 들고 서 있는 형태라고 말할 수 있다.
'coding > CS' 카테고리의 다른 글
컴퓨터 내부 구조 (1) | 2022.09.26 |
---|---|
메모리 조직과 주소 지정 (2) | 2022.09.21 |
비트를 처리하기 위한 하드웨어 (1), 릴레이 설명 (0) | 2022.09.17 |
하드웨어에서 크기가 중요한 이유 (0) | 2022.09.16 |
전기 스위치, 단극과 쌍극, 단투와 쌍투 (0) | 2022.09.16 |