프로젝트에서는 작성 내용이 실시간으로 DB에 반영될 수 있는 기능을 구현해야 한다. 그런데 이를 위해 클라이언트에서 내용을 수정할 때마다 서버에 요청을 보내어 DB에 업데이트를 하기에는 DB와 서버의 부담이 커진다고 판단했다.
그래서 nestjs의 캐시 기능과 schedulerRegistry를 사용하여 업데이트 요청이 들어오면 일단 캐시에 저장하고 일정 시간이 지난 뒤에 DB에 업데이트를 요청하도록 기능을 구현하였다.
이를 위해 nestjs의 캐시 모듈과 schedulerRegistry를 사용하였으며, 이해를 돕기 위한 코드는 다음과 같다.
이렇게 하면 60초 이내에 업데이트 요청이 수만건이 들어와도 실제로 DB에는 하나의 요청만 들어가서 서버와 DB 사이의 부담을 줄일 수 있다.
다만, 59초 마다 클라이언트에서 업데이트 요청이 들어온다면 평생 DB에는 해당 데이터가 수정되지 않을 것이다.