본문 바로가기
728x90
반응형

Back Side/Module3

[node-cron] 메모리에 저장되는 스케줄러를 Redis에 저장해서 영구보관하자 문제 발생 수강생이 강의 신청을 하면 강의일로부터 하루 전에 예약 메시지를 보내야 한다. 수강생이 많을수록 예약 메시지도 많아진다. node-cron으로 스케줄러를 통해 강의일로부터 하루 전에 예약 메시지를 보내고 있었는데 애플리케이션 단에서 수정을 하게 됐다. 서버에서 도커로 돌아가던 애플리케이션을 다운시키고 이미지를 풀 받은 다음 다시 올렸다. 그러자 예약 메시지들이 오지 않는다. 왜일까? 그건 제목에도 적었듯이 node-cron이 메모리에 스케줄러를 저장시키기 때문이다. 즉, 도커를 다시 시작하자 메모리가 리셋되면서 스케줄러가 없어진거다 🤯🤯🤯 해결법으로 Redis에 저장하자 꼭 Redis가 아니어도 된다. 다른 데이터베이스를 사용해도 되는데 난 Redis를 사용했다. 그렇다면 Redis에 무엇을 .. 2024. 2. 2.
[dayjs] JavaScript Date 객체는 불변성을 지켜주기 않는다 + dayjs의 필요성 JavaScript는 날짜 표현을 해줄 수 있는 Date 객체를 제공해준다. 따로 라이브러리를 사용하지 않더라도 손 쉽게 날짜을 얻을 수 있기 때문에 사용을 자주해줬다. 불변성 문제 발생 하지만 불편한 점이 발견됐다. 바로 불변성이다. const date = new Date(); // 2023-11-01T02:06:14.974Z date.setFullYear(2002); console.log(date); set 함수를 쓴 date를 콘솔로 찍으면 어떻게 될까? 당연히 2002-11-01T02:06:14.974Z로 바뀐다. 인제 date는 원래 값인 2023-11-01T02:06:14.974Z을 잃게 된다. 예를들어 우리가 date와 set 함수를 사용해 나온 date를 비교해주고 싶다면? 당연히 둘 다 .. 2023. 11. 1.
[Date] UTC to KST - 우당탕탕 요란스러운 여정기 문제의 시작 현재 우리 회사에서는 하나 이상의 노드들을 이용해서 서버를 손 쉽게 만들어주는 솔루션을 개발 중이다. 나는 모듈을 전반적으로 담당하고 있는데 현재 JavaScript의 Date들을 모듈로 하나씩 개발하고 있다. 그런데! getHours() 모듈을 만들 중 이상한 점을 발견했다. 위 캡쳐처럼 호출 일시에 나온 14시라는 시간과 아래 getHours를 이용해 출력한 05시라는 시간이다. 둘 다 같이 14시가 나와야 하는것이 맞는데 어째서 getHours는 새벽 5시가 나왔을까? UTC라고 들어봤니? 이유는 바로 newDate 모듈이 한국 표준시간이 아닌 UTC 표준으로 나왔기 때문이다. Date를 생성해주는 모듈을 new Date()가 아닌 Date()로 생성하여 출력해보았다. 그랬더니 맨 뒤에.. 2022. 12. 7.
728x90
반응형