글

라벨이 backend인 게시물 표시

NestJS Backend Firebase Push HTTP v1 - 2 Development Backend Server

이미지
이전글 :  NestJS Backend Firebase Push HTTP v1 - 1 Setting 이전 글에서 해당 json파일을 다운 받으면 이제는 서버를 개발해야 합니다. 해당 gitHub에서 코드를 clone 합니다. gitHub 링크 :  https://github.com/Alex-Choi0/firebase_push_server_nestjs 해당 json파일을 루트 프로젝트 경로로 옮깁니다. 해당 json파일은 firebase.json으로 변경합니다. "npm install" 이후에 "npm run start:dev"를 실행합니다. 그러면 3000 port에서 아래와 같은 Swagger 페이지가 나타납니다. 해당 API를 이용하여 푸시를 보낼수 있습니다. 궁금하신 사항은 댓글로 알려주시기 바랍니다.

NestJS Backend Firebase Push HTTP v1 - 1 Setting

이미지
2024년 6월 20일에 regacy push messaging은 사용이 불가능하다. 따라서 향후에는 오직 V1만 지원이 된다. 따라서 기존 및 향후에 개발되는 모든 코드는 firebase를 사용하면 코드를 수정해야 한다. Firebase의 새 API(V1)를 적용하기 위해서는 몇가지 필요한 사항이 있다. 1. Firebase에 프로젝트가 생성되 있어야 한다. 만약 HTTP 푸시를 사용하고 있다면 이미 해당 프로젝트는 존재할 것이다. 사진1) Firebase 프로젝트 2. GCP에 접속해서 "Firebase Cloud Messaging API"를 활성화 한다. 사진1에서 "서비스 계정 관리"에 들어가면 GCP에 접속하게 된다. 이때 오른쪽 위에 "탐색메뉴"에서 "API 및 서비스"를 선택한다. "사용 설정된 API 및 서비스"메뉴에 들어가면 아래쪽에 여러개의 API 서비스들이 나온다. 이때 "Firebase Cloud Messaging API"를 선택한다. 사진2) 서비스 API 선택 사진3) 서비스 상태 사진3에서 "상태"가 "사용 설정됨"이 되어 있어야 한다. 만약 안되어 있다면 활성화를 하면 된다. 3. 서비스 계정 추가 사진1에서 "서비스 계정 관리"에 들어가면 아래와 같은 사진이 나온다. 사진4) 서비스 계정 관리 사진4에서 "서비스 계정 만들기"를 클릭한다. 사진5) 계정생성 1단계 사진6) 역할 부여 사진7) 계정 생성 사진8) 계정 세부정보 사진9) 키 추가(새 키 만들기) 해당 파일 내용. {   "type": "",   "project_id": "",   "private_key_id": "",   "pri...

NestJS MongoDB 사용하기4- DB Update Delete

 안녕하세요. 알렉스입니다. 저번 포스팅에 이어 이번에는 MongoDB에 CRUD기능중 Update, Delete을 넣도록 하겠습니다. 처음 들어오셨다면 이전글을 참고해 주시기 바랍니다. 이전글 : NestJS MongoDB 사용하기3 - DB Create Read // src/users/dto/update-user.dto.ts import { ApiProperty , PartialType } from '@nestjs/swagger' ; import { IsEmpty , IsString } from 'class-validator' ; import { CreateUserDto } from './create-user.dto' ; export class UpdateUserDto extends PartialType ( CreateUserDto ) { @ IsString () @ IsEmpty () @ ApiProperty ({ readOnly : true , }) id : string ; } 코드1) UpdateUserDto 작성 코드1에서 id를 다시 정의한 이유는 'extends PartialType'이 CreateUserDto이기 때문입니다. id는 필수값으로 넣어야 하는에 업데이트 할때는 파라메터로 넣기 때문에 필수가 아닙니다. 따라서 재 설정을 하여 id는 비어도 class-validator에서 걸리지 않도록 수정한 것입니다. // src/users/users.service.ts import { Injectable , NotFoundException } from '@nestjs/common' ; import { InjectModel } from '@nestjs/mongoose' ; import mongoose from 'mongoose' ; import { CreateUserDto ...

NestJS MongoDB 사용하기3- DB Create Read

이미지
 안녕하세요. 알렉스입니다. 저번 포스팅에 이어 이번에는 MongoDB에 CRUD기능을 넣도록 하겠습니다. 처음 들어오셨다면 이전글을 참고해 주시기 바랍니다. 이전글 : NestJS MongoDB 사용하기2 - DB 스키마 생성 // src/users/dto/create-user.dto.ts import { ApiProperty } from '@nestjs/swagger' ; import { IsInt , IsNotEmpty , IsObject , IsOptional , IsString , Max , Min , } from 'class-validator' ; export class CreateUserDto { @ IsString () @ IsNotEmpty () @ ApiProperty ({ description : '유저 고유ID' , type : String , example : 'abc123' , }) id : string ; @ IsString () @ IsNotEmpty () @ ApiProperty ({ description : '유저 이름' , type : String , example : 'alex' , }) name : string ; @ IsString () @ IsNotEmpty () @ ApiProperty ({ description : '유저 전화번호' , type : String , example : '01035451268' , }) mobile : string ; @ IsInt () @ Min ( 20 ) @ Max ( 99 ) @ IsNotEmpty () @ ApiProperty ({ description : ...

NestJS MongoDB 사용하기2 - DB 스키마 생성

이미지
 안녕하세요. 알렉스입니다. 이번에는 NestJS을 이용하여 MongoDB의 스키마를 작성해서 collection을 만드는 글을 작성할려고 합니다.  mongodb셋팅은 이전글을 참고해 주시기 바랍니다. 이전글 : NestJS MongoDB 사용하기1 - DB 접속 이제 NestJS안에 users resource를 생성하도록 하겠습니다. NestJS resource 패키지 생성 NestJS CLI를 이용하여 controller, service, dto, entity를 자동으로 생성 $ nest g res copy 사진1) 생성할 resource 명칭 입력(users입력) 사진2) layer선택(REST API) 사진3) CRUD자동 생성 유무(Y) 사진1 ~ 3까지 진행하면 src폴더 안에 users이 생성된 것을 확인할수 있습니다. 먼저 /src/users/entities 폴더를 삭제하고 대신 schemas폴더를 생성합니다. 그리고 그안에 user.schema.ts 파일을 생성하고 아래와 같이 코드를 작성합니다. // src/users/schemas/user.schema.ts import { Prop , Schema , SchemaFactory } from '@nestjs/mongoose' ; @ Schema ({ timestamps : true , // document 작성시 시간 기록 }) export class Users { @ Prop () // 유저 id id : string ; @ Prop () // 유저 이름 name : string ; @ Prop () // 유저 전화번호 mobile : string ; @ Prop () // 유저 나이 age : number ; @ Prop ({ type : 'Array' }) // 유저 취미 hobby : string []; @ Prop ({ type : 'Object' })...

NestJS MongoDB 사용하기1 - DB 접속

이미지
 안녕하세요. 알렉스입니다. 이번에는 NestJS을 이용하여 MongoDB에 연결할려고 합니다. 향후 포스팅하는 글은 MongoDB의 CRUD가 가능하도록 API를 만들 예정입니다.  사용할 mongoDB에 대한 셋팅은 아래 링크를 참고해 주시기 바랍니다. 위 포스트는 mongoDB Atlas를 사용할 것입니다. 링크1 : 몽고DB사용하기 by Web(Atlas) 링크2 : NestJS 공식 사이트(mongodb 사용법) 사진1) NestJS Project생성 npm 설치 mongoose npm을 설치합니다. $ npm i @nestjs/mongoose mongoose copy 이후 app.module.ts에서 아래코드와 같이 수정을 합니다. // src/app.module.ts import { Module } from '@nestjs/common' ; import * as Joi from '@hapi/joi' ; import { ConfigModule } from '@nestjs/config' ; import { AppController } from './app.controller' ; import { AppService } from './app.service' ; import { MongooseModule } from '@nestjs/mongoose' ; @ Module ({ imports : [ ConfigModule . forRoot ({ isGlobal : true , envFilePath : `. ${ process . env . NODE_ENV } .env` , // env파일 스키마 점검 validationSchema : Joi . object ({ MONGODB_CONNECTION : Joi . required (), // e...