redis 공식 문서를 살펴보다, cache와 session store의 개념에 대해 비교하는 글을 보게 되었습니다.
제가 기존에 생각하던 session store와 조금은 차이가 있었기에 해당 글에 대해 정리해보고자 합니다.
Cache
Cache란 일반적으로 memory에 존재하는 데이터를 저장하는 장소를 의미합니다.
데이터를 가져 온다고 했을 때, 실제 DataSource(e.g. DB)에 접근하기 이전에, Cache를 먼저 확인하여, 찾고 있는 데이터가 있다면 해당 데이터를 리턴하는 방식으로 작동하며, 실제 DataSource에 접근하는 것에 비해 매우 빠른 속도를 자랑합니다.
이러한 Cache에 있어서 조금은 주의해서 기억해야 할 점은,
Cache는 User Level 에서 데이터를 저장하는 것이 아니라, Application Level 에서 데이터를 저장한다는 점입니다.
여기서 User Level에서 데이터를 저장한다고 하는 것은 각각의 user들마다 각각의 데이터를 저장하는 것을 의미하고,
Application Level에서 저장된다 라고 하는 것은, 말 그대로 Application 단에서 데이터를 Cache에 저장하기에 User들간에 데이터가 공유된다는 것을 의미합니다.
Cache는 Application 레벨에서 데이터를 저장하므로, 여기에 저장되는 데이터들은 해당 Application에 접근하는 User들간에 공유되는 데이터이게 됩니다.
즉, Cache가 가장 유용하게 사용될 수 있는 시나리오는 여러명의 유저가 같은 데이터에 대한 요청을 많이 보내는 상황입니다.
그리고 이러한 Cache가 사용되는 대표적인 예로, HTML 파일, Image, Video, JavaScript libraries 등이 있습니다.
Session Store
그럼 Session Store라는 개념은 무엇일까요?
SessionStorage라는 것은 프론트개발을 하면서 꽤나 많이 접해서 익숙한 개념이었지만, Session Store라는 개념은 많이 낯설었습니다.
제가 기존에 아는 Session Store라는 것은 서버에서 Session관련된 데이터들은 DB에 저장하는 Table을 의미했거든요.
결론적으로,
서버단에서 Session에 관한 데이터들을 관리하게 되는데, 이를 저장하는 방법은 여러가지가 있습니다.
파일에 저장하거나, DB에 저장하거나, 서버의 memeory에 저장할 수도 있습니다.
이렇게 여러가지 방법들로 다른 장소에 저장 되어 지지만, session과 관련된 데이터들을 저장하는 각각의 장소를 모두 session store라고 부릅니다.
Cache vs Session Store
두가지 개념의 가장 큰 차이점은 저장되는 데이터가 user간에 공유가 되는지 여부입니다.
앞서 설명한 것처럼 Cache의 경우, user들간 공유되는 데이터들이 저장되는 반면,
Session Store에 저장되는 데이터들의 예로는 user 정보, session Id등이 있으며, 이러한 정보는 User간 공유되면 안됩니다.
'JavaScript' 카테고리의 다른 글
Content-Type vs Accept vs responseType(feat. XHR, ajax) (0) | 2024.01.09 |
---|---|
원 그리기(각도로 원 좌표(x, y) 구하기) (0) | 2022.11.14 |
[Solved] 쿠키 삭제가 안되는 문제 (cookies.remove doesn't work) (0) | 2022.10.14 |
[JS] 깊은 복사, 얕은 복사 (깊은 복사 하는 방법) (0) | 2022.08.26 |
Cookie 옵션 설정하기 (feat. iframe cookie 문제 해결) (0) | 2022.07.12 |