카테고리 없음

캐시/캐싱이란?

유호야 2021. 7. 9. 13:48
반응형

캐시는 컴퓨터의 성능을 향상시기기 위해 사용되는 메모리를 말합니다.

주기억장치와 CPU사이에 위치하고, 자주 사용하는 데이터들을 기억합니다.

캐싱은 이 캐시 영역으로 데이터를 가져와서 접근하는 방식을 말합니다.

예를 들면 속도가 느린 디스크의 데이터를 속도가 빠른 메모리로 가져와서 메모리상에서 읽고 쓰는 작업을 수행합니다.

이것이 캐싱입니다.

다른 의미로는 메모리 상에 있는 데이터를 연산하는데, 이 연산을 더 빠른 CPU 메모리 영역으로 가져와서 처리를 수행하는 것도 캐싱한다고 표현합니다.

캐시는 지역성이라는 특성을 이용하여 성능 개선을 합니다.

지역성은 시간, 공간, 순차적 지역성으로 나눌수 있습니다.

시간 지역성은 for, while 등의 반복문에서 사용하는 조건 변수처럼 한번 참조된 데이터는 또 참조될 가능성이 높다는 것을 말합니다.

공간 지역성은 배역 A[0], A[1]과 같은 배열에 연속적으로 접근할 때, 참조된 데이터는 근처에 있는 데이터가 또 사용될 가능성이 높다는 것입니다.

순차적 지역성은 분기가 발생하는 비순차적인 실행이 아닌 이상, 명령어들이 메모리에 저장된 순서대로 실행된다는 특성을 이용하여 순차적일수록 데이터가 사용될 가능성이 높다는 것입니다.

캐시를 쉽게 말하면 지갑에 비유할 수 있습니다.

 

출처 : https://net-gate.tistory.com/11


캐시는 종종 듣게 된다. 캐시 된 거 아니야? 라는 말을 하기도 하고, 캐시 되어 

있어서 빠른거야 라는 말을 하기도 한다. 캐시는 잠시 저장해둔다는 의미이고 

기능이다.

캐시 메모리라고 하면 실제 메모리와 CPU 사이에서 빠르게 전달을 위해서 미리 데이터들을 저장해두는 좀더 빠른 메모리이다. 네트워크에서 캐시는 로컬에 

파일을 미리 받아놓고, 그 내용을 보거나 웹서버에서도 매번 로딩을 해야 하는 파일들을 미리 로딩해두고, 응답을 주기도 한다. 데이터 베이스를 매번 확인해야 하는것도 캐시서버를 이용한다면 빠른 응답을 해줄 수 있다.

캐시의 원리를 이용한 캐시 서버를 활용하여 CDN같은 서비스도 할 수 있다. CDN은 컨텐츠를 딜리버리 해주는 서버이다. 아주 먼곳에 있는 파일을 매번 가져와야 한다면 네트워크 구간이 멀어서 실패율도 있고, 전송 속도가 느리고, 오래 걸릴 수 있다. 이를 자주 쓰는 파일들을 가까운 지역의 서버에 올려 놓는다. 그렇게 되면 빠른 접근이 가능해진다. 캐시라는 개념은 동일하며, 그것을 컴퓨터 내부에서 쓰느냐 웹서버와 클라이언트 사이에서 쓰느냐, 네트워크에서 파일을 전송시도 다양하게 사용이 가능하다. 데이터를 고속으로 엑세스 할 수 있다는 장점이 있다. 치명적인 단점도 있다. 특성을 알고 사용하기 때문에 단점이라고 말할 수 없지만, 캐시 서버 또는 캐시 메모리 등 캐시가 붙은 기능에 저장된 데이터는 지워질 수 있다는 것을 전제로 한다. 영구적 메모리 공간이 아니다. 언제든 지워질 수 있고, 그것을 당연시 생각하고 프로그램 또는 서버를 개발해야 한다. 그리고 캐시는 되도록 빈도수가 높은 것들 위주로 데이터량이 많지 않은 것이 좋다. 캐시메모리 서버 등 캐시가 붙은 장치는 비싸다. 물론 상대적으로 말이다. 그래서 이곳에 모든 데이터를 넣고, 서비스를 할 생각은 말아야 한다.

 

출처https://letitkang.tistory.com/165


 

캐시란 잠시 저장해준다는 의미이고 기능이다.

캐시 메모리라고 하면 실제 메모리와 cpu 사이에서 빠르게 전달을 위해서 미리 데이터들을 저장해두는 좀더 빠른 메모리이다. 네트워크에서 캐시는 로컬에 파일을 미리 받아놓고, 그 내용을 보거나 웹서버에서도 매번 로딩을 해야하는 파일들을 미리 로등해두고, 응답을 주기도 한다.

단점은 캐시가 붙은 기능에 저장된 데이터는 지워질 수 있다는 것이다.

 

출처 : https://velog.io/@inyong/%EC%BA%90%EC%8B%B1%EC%9D%B4%EB%9E%80

 

반응형