카테고리 없음
TIL (2023/09/21) Thursday
by 0to1ton
2023. 9. 21.
npm install --save @nestjs/passport passport @nestjs/jwt passport-jwt
npm install --save-dev @types/passport-jwt
- jwt strategy
- guards
- swagger - ApiBearerAuth()
- hashing passwords
npm install bcrypt
npm install --save-dev @types/bcrypt
- DB Cach 서버 : redisDB 캐시 서버란?
DB에 데이터를 저장하거니 읽어오는 것에는 비용이 따른다. 시간 자원이든 리소스 자원이든 소모가 된다. DB에 읽기나 쓰기 작업이 매우 빈번하게 발생이 되면 DB에 부하가 가게 되고, 이는 곧 DB의 성능 저하로 이어지게 된다. 이것을 덜어 주기 위해 DB 캐시를 사용하기로 했다.하지만 단점도 존재한다. 바로 싱글스레드 이기 때문에 O(N)의 속도를 가지는 명령어를 사용하는 것을 지양하게 된다. 또한 메모리에 데이터를 저장하기 때문에 전원이 꺼지면 캐시 데이터는 모두 사라지게 된다. (전원이 꺼져도 캐시 데이터를 사용할 수 있게 하는 방법이 있기는 하다.)
- DB 캐시 서버는 Redis, MemCached 등의 제품들이 있다. 나는 보편적으로 쓰이는 Redis를 사용하기로 했다.
- DB 캐시는 key와 value로 이루어진 해시 테이블 구조로 이루어져 있다. 즉 key를 입력하면 value가 O(1)의 속도로 응답되는 구조이다. 이와 같은 구조의 장점은 속도가 매우 빠르다는 점이다. DB 캐시는 대부분 메모리에서 구동되므로, 보조 저장 장치에서 작동되는 DB에 비해서 I/O 속도가 빠른 편이다. 또한 이를 통해 트래픽 감소, 부하 감소를 얻을 수 있다.
- npm install nestjs-redis --save npm install --save-dev @types/ioredis
- troubleshooting
- 이미 로그인 되어있으면 에러 처리할 수 있는 방법 → redis를 통해서 해결
- 고민사항