프로젝트에 데이터를 캐시로 관리하던 중 Redis 캐시에 대해 글을 작성하기 전 캐시와 캐싱에 대해 한번 정리하면 좋을 것 같아 빠르게 정리하고 넘어가려고 합니다 !
❓ 캐시와 캐싱이란 ?
먼저 캐시와 캐싱에 대해 알아봅시다 !
캐시
동일한 데이터에 반복해서 접근해야 하거나 많은 연산이 필요할 때, 결과를 빠르게 이용하고자 성능이 좋은 혹은 가까운 곳에 저장하는 것입니다. 즉, 캐시는 컴퓨터의 성능을 향상 시키기 위해 사용되는 메모리를 말합니다. 주기억장치와 CPU 사이에 위치하고, 자주 사용하는 데이터를 기억합니다.
캐싱
이 캐시 영역으로 데이터를 가져와서 접근하는 방식이며, 해당 영역을 사용하는 것을 캐싱이라고 합니다.
서버의 관점에서 봤을 때 캐싱은 DB로 접근하여 가져오는 자주 사용하는 데이터를 캐시 저장소에 임시로 저장을 해두고, 다음에 동일한 데이터 요청이 왔을 때 DB에 접근하지 않고 캐시 저장소에서 데이터를 주는 방식입니다.
⛅️ 캐시 도입 효과
캐싱의 의미를 이해하셨다면 캐싱을 사용했을 때 조회 성능이 왜 향상되는지 이해할 수 있을 것입니다 !
캐싱을 하면 DB 부하 감소, 응답 시간 향상의 효과를 얻을 수 있습니다.
🤔 캐시 사용 시 고려할 점
제가 생각했을 때 캐싱을 사용할 때 고려할 점을 정리해보겠습니다. (제가 생각하지 못한 점이 분명 더 있을겁니다 !)
변동성이 적은 데이터를 캐싱하자 !
캐싱된 데이터가 변경되었을 때 다시 DB에 조회가 이루어져야합니다 ! 만약 매 요청마다 새로운 데이터를 요청하게 된다면 캐싱하는 의미가 사라집니다. 이를 방지하기 위해 데이터가 변경되는 경우 캐시의 데이터를 지우는 '캐시 무효화'를 수행해야합니다.
캐시 저장소로 무엇을 사용할까 ?
캐싱을 사용하면 DB에 접근하지 않고 캐시 저장소에서 데이터를 가져오는 것을 확인했습니다. 이때 캐시 저장소로 어떤 저장소를 사용하는게 좋을까요 ?
일반적인 DB의 데이터 조회와 비교했을 때 훨씬 더 빠르게 데이터를 가져올 수 있는 저장소를 선택하는 것이 캐싱의 효과를 극대화할 것입니다. 이러한 이유로 보통 캐시 저장소로 In-Memory DB인 Redis와 Memcached를 대부분 캐시 저장소로 선택합니다.
다음은 Spring Boot에서 Redis cache 사용하는 방법을 알아보겠습니다 !
☀️ 다들 새해 복 많이 받으세요 ☀️
'IT이론 > 네트워크' 카테고리의 다른 글
[CS] Thread(스레드), Process(프로세스)란 ? (2) | 2024.08.06 |
---|---|
[CS] OSI 7 계층이란 ? (0) | 2024.06.27 |
[CS] CORS(Cross-origin Resource Sharing)란 ? (0) | 2024.04.26 |
[CS] SSR과 CSR이란 ? (0) | 2024.04.11 |
[CS/Network] Http 프로그래밍과 Socket프로그래밍이란? (0) | 2024.03.15 |
개발의 모든 것 !
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!