작은 도서관
article thumbnail
[nestjs] 프로젝트에 prisma 추가하기
코딩/백엔드 2023. 10. 20. 17:44

사용 라이브러리 "@prisma/client": "^5.4.1", "prisma": "^5.4.1", prisma란? prisma는 orm의 일종으로, 프로젝트 내의 schema를 하나의 파일에서 관리할 수 있도록 도와준다. prisma를 도입한 프로젝트의 파일 구조인데, prisma 디렉터리 안에 schema 파일에서 모든 스키마를 관리할 수 있게 된다. 프로젝트에 prisma 추가하기 yarn add prisma npx prisma init 위 두 가지 명령어를 입력하면 프로젝트에 prisma 폴더 및 schema 파일이 추가된다. 추가로 .env파일도 생성되는데, 이 파일에서 DATABASE_URL 환경변수를 본인의 DB와 연결해주면 된다. 새 스키마를 작성하기 위해 prisma/schema.pri..

article thumbnail
[nestjs] postgresql을 이용한 crud 구현
코딩/백엔드 2023. 8. 23. 15:52

사용 라이브러리 "@nestjs/typeorm": "^10.0.0", "typeorm": "^0.3.17", "bcrypt": "^5.1.1", "class-transformer": "^0.5.1", "class-validator": "^0.13.2", postgresql을 사용하는 이유 postgresql mysql 아키텍처 객체 관계형 단일 관계 지원하는 데이터 타입 숫자 날짜(시간) 문자열 JSON boolean 열거형 XML 기하형 배열 범위 네트워크 주소 숫자 날짜(시간) 문자열 JSON 공간(Spatial) 장점 복잡한 쿼리에 유용함 데이터베이스 크기에 제한이 없음 읽기-쓰기 속도가 빠름 확장에 유리함 광범위한 대중성 읽기 전용 명령을 사용할 수 있음 postgresql을 nestjs에 추가 ..

[nestjs] 로그인과 권한 부여
코딩/백엔드 2021. 12. 20. 22:59

사용 라이브러리 "@nestjs/common": "^8.0.0", "@nestjs/core": "^8.0.0", 개요 데코레이터 구현 유저에 rules 추가 로그인과 토큰 발급 처리 구현 데코레이터 구현 먼저, 컨트롤러에 사용할 데코레이터를 구현할 필요가 있다. 그 전에, 서버 내에서 사용할 역할을 나타내는 역할의 열거형을 만들어야한다. src/modules 아래에 /roles 폴더를 만들고 다음을 작성한다. // roles.enum.ts export enum Role { User = 'user', Admin = 'admin', } 필요한 대로 추가해도 되지만, 일단은 예시니까 user와 admin만 추가한다. // roles.decorator.ts import { SetMetadata } from '@..

article thumbnail
[nestjs] socket.io 사용과 테스트
코딩/백엔드 2021. 11. 1. 08:43

사용 라이브러리 "@nestjs/websockets": "^8.1.2", "socket.io": "^4.3.1" 소켓 개념의 이해 우리가 통신할때는 http라는 통신 방법을 사용한다. 이 방법은 클라이언트가 서버에 요청을 보내면 서버가 클라이언트에 응답을 보내주는 방식으로, 일련의 요청과 응답이 끝나면 서버는 더 이상 클라이언트에 정보를 보내지 못한다. 이 방식으로 채팅을 구현하기엔 한 가지 문제가 있다. 클라이언트에서 채팅이 왔는지 확인하는 요청을 1초에 한 번씩 보낼 순 없는 노릇이다. 그래서 등장한 통신 방식이 WebSocket이다. 이 방식은 http와 다르게 request와 response로 통신하는것이 아닌, open과 close의 여부로 통신한다. 클라이언트에서 서버에 Socket을 열어달라..

article thumbnail
[koa] mongoose 연결 / CRUD
코딩/백엔드 2021. 10. 7. 17:52

사용 라이브러리 "@koa/router": "^10.1.0", "@types/dotenv": "^8.2.0", "@types/mongoose": "^5.11.97", "koa": "^2.13.1", 개요 mongoose를 koa 프로젝트에서 사용하기 mongoose를 사용하여 User 모델 제작 restfulAPI로 라우터 구축 UserCRUD 제작 1. mongoose를 koa 프로젝트에서 사용하기 import mongoose from 'mongoose'; // 주로 사용하는 mongoose 연결 템플릿. mongoose.connect( process.env.DB_URI!, { user: process.env.DB_USER, pass: process.env.DB_PASSWORD, useNewUrlPar..