인프런 커뮤니티 질문&답변

김학준님의 프로필 이미지
김학준

작성한 질문수

Node.js 교과서 - 기본부터 프로젝트 실습까지

passport serializeUser/deserializeUser

캐싱에 관하여

작성

·

163

0

질문 있습니다!!,

1. 세션자체에 유저정보를 전체를 저장하는것이 서버 메모리에 부담이기 때문에 user.id 만 저장한다고 하셨는데 결국 캐싱하게 되면 서버 메모리를 사용하는 것이니까? 처음 부터 세션에 유저전체 정보를 저장하는것과 비슷한거 아닌가요?? 

2. 그리고 캐싱을 구현하게 된다면 LRU 구현해서 최근에 자주 요청을 보낸 사용자들 위주로 캐싱을 진행하는 것도 좋은 방법일까요?  

3. 만약 LRU 캐시를 구현한다면 캐시 사이즈 는 어느 정도로 잡으면 좋을까요? 

답변 3

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

아, 제가 예시로 들었던 const user = {} 말씀하시는거군요. 이렇게 하면 다 메모리에 저장하는 거라 의미가 크게 없습니다. 실서비스에서는 그래서 redis나 memcached에 따로 저장합니다.

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

1. user.id를 저장하는 것과 user를 저장하는 것은 용량이 완전 다르죠.

2, 3 유저정보 저장 용으로 LRU를 써본 적이 없어서 모르겠습니다. 사용자 정보를 LRU로 저장해서 이점이 있을 것 같지 않네요. 보통 레디스나 멤캐시드를 많이 씁니다.

0

김학준님의 프로필 이미지
김학준
질문자

질문다시드립니다 ㅠ!!

const user = {} 로 사용자 전체 정보를  캐싱해서 저장하는 것과 seesion 에 사용자 전체 정보를 저장하는 것의 차이가 있을까요? 

세션에 user.id 만 저장하고 const user = {} 에 전체정보를 저장하는 것(이것도 결국 서버에 사용자 전체 정보를 저장하는 것이니까 그만 큼 용량을 차지하는 것 아닌가요?)과 처음부터 session 에 사용자 전체정보를 두는것의 차이가 잘 이해가 가지 않습니다...!

김학준님의 프로필 이미지
김학준

작성한 질문수

질문하기