세 번째 글을 확인하면 레디스를 사용할 필요가 없다는 것을 알 수 있다...
하지만,, 에러를 잡아가는 과정으로 작성했던 글이라 삭제하지 않고 두려고 한다...
첫 번째 글에 이어서...
메모리에 저장되는 데이터는 앱이 실행되는 동안에만 유지되고, 앱을 재시작하면 데이터가 사라집니다.
그래서 변수가 아닌, Redis를 사용해보기로 했다!
그런데.. Redis 왜이렇게 패키지가 많아요🥲 패키지 찾아보고... 패키지 에러 잡는 시간이 코드 작성하는 시간보다 길었다
결론적으로 나는 이 패키지들을 사용했다!
$ npm install @liaoliaots/nestjs-redis ioredis
ioredis는 공식문서에 있길래 바로 설치했고, 공식문서 매우 믿는 편
처음에는 패키지 다운로드 수가 제일 많은 nestjs-redis 패키지를 설치했었는데, Nest.js 9.0.0이상 버전과는 패키지 충돌이 일어나면서 Nest can't resolve dependencies of the RedisCoreModule (Symbol(REDIS_MODULE_OPTIONS), ?). Please make sure that the argument ModuleRef at index [1] is available in the RedisCoreModule context. 라는 에러가 계속 발생했다.
코드를 잘 못 작성한게 아니라 패키지의 오류였기 때문에, @liaoliaots/nestjs-redis 패키지를 설치하니 바로 해결이 되었다!
redis-config.service.ts
이 코드는 아직 비밀번호도 없고 공부용 프로젝트니까 올린다!
JwtStrategy 코드를 수정하기 전에
캐시 만료 시간을 한 시간으로 설정해놓아서, 앱을 재시작해도 getUserInfo가 하나씩 잘 찍힌다!