
레지스터
CPU 안에 있는 작은 메모리, 휘발성, 속도 가장 빠름, 기억 용량이 가장 적음
캐시
L1, L2 캐시를 지칭
휘발성, 속도 바름, 기억 용량이 적음
주기억장치
RAM을 가리킴
휘발성, 속도 보통, 기억 용량 보통
보조기억장치
HDD, SDD
비휘발성, 속도 낮음, 기억 용량이 많음
계층 위로 올라갈수록 가격은 비싸기조 용량은 작아지고 속도는 빨라짐
-> 경제성과 캐시
캐시
데이터를 미리 복사해 놓은 임시 저장소
빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상 줄이기 위한 메모리
캐싱계층 = 메모리와 CPU 사이의 속도 차이가 너무 커서 중간에 레지스터 계층을 둬 속도 차이를 해결
지역성의 원리
자주 사용하는 데이터를 기반으로 설정 -> 지역성
시간 지역성, 공간 지역성
시간 지역성최근 사용한 데이터에 다시 접근하려는 특성
공간 지역성최근 접근한 데이터를 이루고 있는 공간이나 그 가까운 공간에 접근하는 특성
캐시히트와 캐시미스
캐시히트 - 캐시에서 원하는 데이터를 찾은 것
캐치미스 - 해당 데이터가 캐시에 없다면 주메모리로 가서 데이터를 찾아오는 것

캐시매핑 - 캐시가 히트되기 위해 매핑하는 방법
CPU의 레지스터와 주 메모리 간에 데이터를 주고받을 때를 기반으로 설명
레지스터: 주 메모리에 비하면 굉장히 작고 주 메모리는 굉장히 큼
작은 레지스터가 캐시 계층으로써 역할을 잘 해주려면 매핑을 어떻게 하느냐가 중요
직접 매핑, 연관 매핑, 집합 연관 매핑
웹 브라우저의 캐시
소프트웨어적인 대표적인 캐시
- 웹 브라우저의 작은 저장소 쿠키, 로컬 스토리지, 세션 스토리지사용자의 커스텀 정보, 인증 모듈 관련 사항들을 웹 브라우저에 저장해서 추후 서버에 요청할 때 자신을 나타내는 아이덴티티나 중복 요청 방지를 위해 쓰이며 오리진에 종속됨
쿠키
만료 기한이 있는 키-값 저장소
설정할 때는 document.cookie로 쿠키를 볼 수 없게 httponly 옵션을 거는 것이 중요
클라이언트/서버에서 만료 기한 등을 정할 수 있는데 보통 서버에서 기한을 정함
로컬 스토리지
만료기한이 없는 키-값 저장소
5MB까지 저장 가능
웹 브라우저를 닫아도 유지됨
HTML5를 지원하지 않는 웹 브라우저에서는 사용할 수 없음, 클라이언트에서만 수정 가능
세션 스토리지
만료기한이 없는 키-값 저장소
탭 단위로 세션 스토리지를 생성
탭을 닫을 때 해당 데이터가 삭제 됨
5MB까지 저장 가능
HTML5를 지원하지 않는 웹 브라우저에서는 사용할 수 없음, 클라이언트에서만 수정 가능
데이터베이스의 캐싱 계층
데이터베이스 시스템을 구축할 때도 메인 데이터베이스 위에 레디스 데이터베이스 계층을 캐싱계층으로 둬서 성능을 향상시킴

▲ 레디스 캐싱 계층 아키텍처