[Nest.js] 왜.. 호출 한 번에 로그 두 번이 찍힐까요? - 2 (과정)

초이지수·2023년 8월 3일
0

Nest.js

목록 보기
9/14
post-thumbnail

세 번째 글을 확인하면 레디스를 사용할 필요가 없다는 것을 알 수 있다...
하지만,, 에러를 잡아가는 과정으로 작성했던 글이라 삭제하지 않고 두려고 한다...


첫 번째 글에 이어서...

메모리에 저장되는 데이터는 앱이 실행되는 동안에만 유지되고, 앱을 재시작하면 데이터가 사라집니다.

그래서 변수가 아닌, Redis를 사용해보기로 했다!

그런데.. 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를 연결해보자!

🖇 app.module

🖇 cache.module.ts

redis-config.service.ts
이 코드는 아직 비밀번호도 없고 공부용 프로젝트니까 올린다!


📌 JwtStrategy 코드를 Redis에 맞게 수정해보자!

JwtStrategy 코드를 수정하기 전에

🖇 cache.service.ts 코드를 작성해 주었다.

🖇 jwt.strategy.ts 수정 코드


👍 짠! 완료!

캐시 만료 시간을 한 시간으로 설정해놓아서, 앱을 재시작해도 getUserInfo가 하나씩 잘 찍힌다!

profile
닫혀 있어서 벽인 줄 알고 있지만, 사실은 문이다.

0개의 댓글