728x90

2024/07 2

[회고] 1.4TB로 커져 버린 DB 테이블 교체하기

0. Intro재직 중인 회사에서 담당한 서비스의 숙원사업이었던 포인트 테이블 개선 작업을 18주 동안 진행하여 RDS 사용량을 크게 줄인 후 남기는 회고입니다.1. 문제의 시작 - 포인트 로그 테이블담당 서비스 DB에 포인트 획득/사용의 기반이 되는 테이블이 있었습니다. 일명 포인트 디테일 로그 테이블은 모든 포인특 획득/사용 기록을 건당 저장합니다. 현재 유저가 보유한 포인트 계산은 포인트 디테일 로그 테이블을 기반으로 획득 내역은 더하고, 사용 내역은 감하여 계산됩니다.서비스 초기에는 이 포인트 기록, 조회 방식이 문제가 되지 않았습니다. 그러나 시간이 지날수록 쌓이는 데이터가 너무 많아졌고, 현재 포인트 디테일 로그 테이블의 크기는 1.4TB로 성장했으며, 레코드 개수는 96억개를 넘었습니다.(과..

소감 & 회고록 2024.07.21

NestJS 전역 CacheManager로 Redis 사용하기

1. CacheManager 사용 이유NestJS에서 캐싱을 위해 redis를 사용할 때직접 RedisModule과 RedisService를 정의하여 사용할 수도 있지만,@nestjs/cache-manager 와 cache-manager 라이브러리를 사용하면 훨씬 간단하다. service를 정의해서 사용할 때는redis 서버에 command를 보내는 메서드를 모두 직접 구현해 사용해야 한다. 라이브러리를 사용하면get, set, reset, del 등 흔히 사용하는 커맨드들이 제공되어바로 사용할 수 있다. 2. CacheManager 사용 방법캐시 매니저 라이브러리 사용에 대해서는NestJS 공식문서에서도 안내하고 있다. [공식 문서]$ npm install @nestjs/cache-manager cac..

Node.js/NestJS 2024.07.06
728x90