nestjs
-
aws sqs를 이용한 lambda로 fcm push 전송하기Backend/NestJS 2024. 1. 4. 18:37
현재 Cron으로 특정 시간대에 push 알림이 동작한다. 봇서버 하나에서 모든 처리를 다 해서, Message Queue를 이용해 lambda에서 푸시를 전송하기로 했다. 목차 1. AWS SQS 생성 2. NestJS SQS 처리 코드 작성(producer / customer) 3. AWS Lambda 코드 작성 4. AWS Lambda 생성 및 설정 1. AWS SQS 생성 푸시 알림의 경우 FIFO일 필요가 없어서, 스탠다드를 선택했다. 그리고 이름을 지정해준다. 따로 더 설정할게 없으면 스크롤을 내려서 생성 버튼을 누른다. 생성이 되었다면, Name, URL, Region을 복사해두자. 2. NestJS SQS 처리 코드 작성(producer / customer) 코드 작성에 앞서 아래 2개의 ..
-
[nestjs/react] nestia로 sdk package 생성 해서 리엑트에서 사용하기(feat. github npm registry)Backend/NestJS 2023. 12. 21. 19:45
기전 nestjs 프로젝트를 nestia 환경으로 마이그레이션 중이다. nestia는 참 편리한게 많은데. 그 중 대박적인게 명령어 하나로 sdk를 생성 할 수 있는 것이다. 그래서 기존 프로젝트에 nestia를 설치한 후 그 구조에 맞게 변경을 시켰다. 그런 뒤, 리엑트에서 sdk를 다운 받아서, 백엔드에 요청하는 것을 하고자 한다. 일단 nestia 코드를 작성하는 것은 생략한다. 아래 링크로 대체하겠다. 참고로 samchon 이분이 개발했다. https://github.com/samchon/nestia-template GitHub - samchon/nestia-template: Nestia template project installed by "npx nestia start" Nestia templ..
-
nestjs에서 alibaba cloud OSS sdk 사용하기 (ali-oss)Backend 2023. 6. 28. 17:43
AWS S3를 이용하다가, 중국 진출과 함께 Alibaba Cloud의 클라우드 데이터 스토리지 서비스인 OSS로 이전하게 되었다. 그래서 기존 S3와 연동된 소스코드도 수정을 해야 했다. 다행히 알리바바에서 SDK를 지원해주고, 기존 코드를 크게 고치지 않아도 연동이 된다. 목표는, OSS에 이미지 파일을 업로드 하는 것이다. 1. 모듈 설치 (https://www.npmjs.com/package//ali-oss?activeTab=readme) npm install ali-oss --save 2. 사전 인터페이스 및 OSS 서비스 작성 // IFile.ts export interface IFile { encoding: string; buffer: Buffer; fieldname: string; mime..
-
github actions을 사용해 ec2에 docker 서버 빌드배포하기(ci/cd)Infra/DevOps 2023. 6. 14. 19:12
프로젝트를 클라우드 환경에서 테스트를 하는데, 매번 파일을 업로드하고 빌드/실행 하는게 번거로워서 Github Actions를 이용해 간단한 CI/CD를 만들었다. 적용된 프로젝트는 nestjs로 만든 서버이다. 1. Dockerfile 생성 나의 경우 node 18.12.1 버전으로 개발했지만, 최신 버전을 사용하려면 lts를 붙이면 된다. (latest의 약자다.) FROM node:18.12.1 ARG PORT=9090 RUN mkdir -p /usr/src/app WORKDIR /usr/src/app COPY . ./ RUN yarn install RUN npx prisma generate RUN yarn build:prod EXPOSE $PORT CMD [ "yarn", "start:prod" ..
-
[prisma] 데이터 손실 없이 migrate 하기Backend 2023. 5. 24. 11:40
Object-Relational Mapping (ORM) framework인 prisma로 개발을 하고 있다. schema.prisma 파일에서 코드로 테이블 모델을 정의해서 너무 편하다. 변경된 사항이 있을 경우 $npx prisma migrate dev 명령어를 통해 한번에 변경할 수 있다. 그런데 단점이, 테이블에 큰 변화가 생길 경우 모든 데이터가 지워진다는 것이다. 개발 단계에서는 유용하나, 어느정도 진행이 되면 불편해진다. 다른 방법이 없을까 찾다가 한 가지 방법을 알게 되어 글로 남기고자 한다. 1. 직접 변경 - 콘솔 : cmd 창으로 직접 접속해 명령어로 DB 테이블을 수정한다. - 툴 사용 : pgadmin을 사용해 수정한다. 2. 스키마 검증 - 아래 명령어를 입력하면 DB 주소를 확..
-
[nestjs] TypeError: version.split is not a function (typeorm, mariaDB)Database/mysql 2023. 1. 9. 16:25
netjs 프레임워크에서 typeorm을 사용해서 mariaDB와 연동을 하려고 하는데, 아래와 같은 에러가 발생했다. query: SELECT VERSION() AS `version` [Nest] 48360 - 01/09/2023, 4:06:54 PM ERROR [TypeOrmModule] Unable to connect to the database. Retrying (2)... TypeError: version.split is not a function at parseVersion (.../src/util/VersionUtils.ts:19:13) typeorm에서 db에 연결할 때 버전을 확인하는 작업을 한다. 그 때 mysql과 mariaDB의 버전 저장 양식이 달라서, split 함수 사용 코드에..