본문 바로가기
반응형

nestjs20

[Prisma] Promise.all과 transaction 동시 사용 시 Transaction API error: Unable to start a transaction in the given time. 에러 발생. 외주 작업을 하면서 추가 의뢰를 받은 기능을 개발하던 중이였다. 해당 기능은 주문이 들어온지 두 달이 지났는데 아직 연결이 안된 접수 건을 조회 해서 취소된 항목 변경해달라는 것. 나는 cron으로 이미 스케줄링 작업을 돌리고 있었기 때문에 cron을 사용하기로 했고 매일 정해진 시간에 조회를 해 업데이트를 하면 된다고 생각했다. 또 이미 주문 취소 함수가 구현이 되어 있었기 때문에 해당 함수를 사용하면 된다고 생각했다. 그리고 문제의 그 코드...  @Cron('0 50 23 * * * ', { timeZone: 'Asia/Seoul' }) async deleteOldOrder() { //예전 데이터 삭제 // 기준 날짜: 현재 날짜에서 2개월 전 const .. 2024. 12. 8.
[NestJS] EC2 배포 시 secretOrPrivateKey must have a value 해결 현재 개발 중이던 프로젝트를 ec2에 올려 테스트 배포를 시도 했다. ec2 인스턴스를 열고 nodejs를 설치하고 깃헙에서 코드를 받아 배포를 했는데... 이런 에러가 떴다. 쉽게 말하면 .env에 있는 jwtConstant라는 환경 변수를 읽는 과정에서 발생한 에러로 JWT 토큰 발행 시 있어야 하는 secret key를 읽지 못해 발생하는 에러이다. 로컬에서는 잘 되었는데... 아마 환경변수를 읽어 오기 전 시크릿 키가 먼저 register 되는 것 같았다. //기존 코드 @Module({ imports:[ JwtModule.register({ global: true, secret: jwtConstants.secret, signOptions: { expiresIn: '1d' }, }), ], con.. 2024. 4. 23.
[Project] 영어 단어 테스트 앱 현재 나는 지인 동생인 한 남중생에게 공부를 가르치고 있다. 처음에 영단어를 외우게 시키고 매일 수업 때마다 시험을 봤는데 문제가 두 가지가 있었다. 첫째, 수업 시간에 시험을 보면 일주일에 두 번만 시험을 보는거라 외우는 단어의 수가 적다 둘째, 그렇다고 시험 보는 단원의 수를 늘리면 단어 시험 만드는 내가 힘들다... 그래서 이걸 코딩으로 해결해보자 라고 마음 먹은게 이 프로젝트의 시작.. 처음엔 자바 스프링으로 웹을 구현해서 학생에게 줬다. 그랬더니 아무래도 웹은 상대적으로 접근성이 떨어졌기 때문에 모바일의 필요성을 느꼈다. 그래서 먼저 웹으로 만들고, 현재 공부하는 플러터로 웹 뷰를 만들어서 띄우자! 라는 결론에 이르렀다. 사실 프론트,백엔드 코드는 작년 여름 즈음에 이미 완성을 했지만, 학생의 .. 2024. 1. 19.
[NestJS] NestJS Docker 이미지 빌드 기존 진행하던 프로젝트를 도커로 빌드하기 위한 시도. 간단하게 이미지를 만드는거라 어렵진 않다. 먼저 프로젝트 루트 디렉토리에 도커파일을 만들어준다. D는 대문자여야 한다. 그리고 다음과 같이 입력 FROM node:20 WORKDIR /usr/src/app COPY package.json ./ RUN npm install --legacy-peer-deps COPY ./ ./ CMD ["npm","run","start:dev"] 라인 하나하나 설명하자면 제일 첫번째 줄은 베이스 이름을 명시해준다. 도커 이미지를 만들 때는 아예 아무것도 없는 상태에서 만드는게 아니라 어느 정도 기본적인 구성 요소들이 갖추어진 상태의 이미지를 토대로 만들게 되며 이를 베이스 이미지라고 한다. FROM에서 베이스 이미지를 지.. 2023. 12. 19.
반응형