[Basic] Cache
2020. 6. 20. 13:27ㆍ개발/[Basic]
Cache를 왜 사용하는가?
- 한번 읽은 데이터를 임시로 저장하고 필요에 따라 전송,갱신,삭제하는 기술
- 보통은 데이터의 보관장소로 서버의 메모리를 사용하는 경우가 많다
- 그렇기 때문에 디스크에서 정보를 얻어오는 것보다 훨씬 빠른 입출력 성능을 얻을 수 있지만
- 서버가 다운되거나 재부팅되는 경우 사라지는 성격의 휘발성을 가진다.
- 임시적으로 보관하고 빠르게 그 정보에 접근하기 위한 용도로 사용해야 한다.
- 정보의 성격에 따라 설정으로 영구보관이나 오랜기간 유지가 가능하다. 단 이런 설정들이 꼭 필요하다면 Cache를 적용하는게 맞는지 한 번 타당성을 검토해 보는게 좋겠다.
쉽게 말한 Cache를 쓰는 목적
- 서버간 불필요한 트래픽을 줄여서 어플리케이션 서버의 부하 감소시킨다
- 어플리케이션의 빠른 처리성능(조회)을 확보해서 궁극적으로 어플리케이션을 사용하는 고객에게 쾌적한 서비스 경험을 제공한는 것
어떤 정보들을 Cache로 사용하나?
- 포탈의 검색어
- 쇼핑몰의 핫딜상품, 베스트셀러, 추천상품등
- 상품의 카테고리와 카테고리별 등록상품 수
- 방문자수, 조회수, 추천수
- 1회성 인증정보 (SMS 본인인증정보, IP정보등)
- 공지사항, Q&A
스프링부트's API를 제공하는 Cache 라이브러리
- Redis
- Caffeine
- EhCache
- Hazelcast
- Infinispan
정리
다음시간에는 Cache란 것을 살펴보았으니 Springboot에서 쓰는 Redis에 대해 알아보고 구현까지 해보자.
게시판 CRUD를 만드는 중인데 현재 Login 구현을 JTW로 구성해 토큰을 발행했는데
인터넷을 뒤적거리니..
Logout을 할 때에는 Token이 지워지지 않으므로 보통
Redis를 이용해서 BlackList를 저장한다고 한다.
'개발 > [Basic]' 카테고리의 다른 글
[Spring] 어플리케이션 컨텍스트에서 빈 생성 방법 (0) | 2020.06.29 |
---|---|
[Basic] SRP 단일 책임 원칙 (0) | 2020.06.29 |
[Basic] 객체지향 설계 원칙 (SOLID) (0) | 2020.06.29 |
[Basic] Filter & Interceptor (0) | 2020.06.14 |
[Basic] 객체 지향 특성 (0) | 2020.06.10 |