cache

Spring

[Spring/Redis] Spring @Cacheable과 Redis를 이용한 메서드 레벨 캐싱

Spring의 Cache 추상화개발을 하다 보면, 동적으로 변하진 않는데, 자주 필요한 데이터들을 조회하는 API를 호출할 일이 종종 있다. 간단한 예시로 아래와 같은 상황이 있을 수 있다.Frontend에서 select-box의 값을 채우기 위한 data List 조회외부 API에서 특정 데이터를 조회하는데, 외부 API에서 제공하는 데이터의 갱신 주기가 길 때자주 호출되는 데이터이지만, 실시간으로 변하는 값이 아닐 때Spring은 자주 호출되는 메서드의 실행 결과를 캐시에 저장하고, 이후 동일한 요청이 들어오면 캐시 된 값을 반환하여 응답 속도를 높이고 시스템 부하를 줄일 수 있도록 캐싱 기능을 추상화하여 제공한다.캐시 구현체와 무관하게 사용할 수 있도록 @Cacheable, @CacheEvict, ..

[ Computer Science ]

[CS] 메모리 계층과 저장 장치(RAM, Register,Cache, HDD)

메모리 계층 아래 그림에서 볼 수 있는 여러 가지 기억장치들을 통해 CPU가 데이터를 읽고 쓰는 일을 한다. 이때, 접근 속도가 빠른 순서대로 메모리에 접근하여 데이터를 읽고 쓰는 등의 일을 처리하는데, 이를 메모리 계층이라고 한다. RAM (Random Access Memory) RAM은 Random Access가 가능한 메모리이다. 즉, '임의 접근'을 할 수 있는 메모리이다. 따라서 원하는 위치에 순차적으로 접근하지 않고 바로 접근하여 데이터를 읽고 쓰고 지울 수 있다. 이 Random Access라는 용어는 어느 위치든지 똑같은 속도로 접근하여 읽고 쓸 수 있다는 뜻이다. RAM은 컴퓨터가 켜지는 순간부터 꺼지기 전까지 CPU가 연산을 하고 동작을 하는데에 필요한 모든 내용이 저장되는 공간이다. ..