# prisma

PlanetScale + Prisma에 Kysely를 이용한 기존 단점 극복하기
최근 가장 핫한 데이터베이스인 PlanetScale(플래닛 스케일)을 Prisma(프리즈마)와 Kysely(키슬리)를 이용해 각각의 장점을 살려 단점을 상쇄시키며 개발하는 방법에 대하여 알아봅니다.

Prisma에 대하여
코딩애플님께서 새로 올리신 유튜브 영상 중 Prisma에 대해 소개하는 영상을 보게 되었다. 나중에 한번 사용해볼 겸 아주 간략하게 개요 적어놓으려고 한다.ORM 라이브러리백엔드 개발 시, SQL을 쓰지 않고도 관계형 DB에 CRUD를 할 수 있음Typescript 사
[Prisma] `where` 절을 이용한 레코드 쿼리
Prisma Client에서 where 절을 사용해 데이터베이스에서 특정 조건을 가진 레코드를 쿼리할 수 있습니다.동등 비교 (equals):다른 값과의 비교 (not):범위 비교 (in, notIn, lt, lte, gt, gte):문자열 비교 (contains, s
CRUD (feat.Prisma)
create & createManyfindFirst & findUnique & findManyupdateManygte : x보다 크거나 같은 것을 가져옴gt : x보다 큰 것을 가져옴lte : x보다 작거나 같은 것을 가져옴lt : x보다 작은 것을 가져옴

PlanetScale을 Prisma로 더 잘 사용하기
최근 가장 핫한 데이터베이스인 PlanetScale(플래닛 스케일)을 잘나가는 ORM Prisma(프리즈마)와 함께 더 쉽고 편하게 사용해 보는 방법에 대하여 알아봅니다.

Transactions and batch queries[Prisma]
트랜젝션이란 전체가 실패하거나 성공한다는 보장이 있는 연속된 읽기, 쓰기 작업을 의미함쓰기 작업이 여러 필드에 걸쳐서 진행되는 작업이거나, updateMany와 같이 여러개의 데이터를 동시에 생성하는 경우, 또는 $transaction 명령어를 사용해 작업하는 경우 트

Aggregation, grouping, and summarizing[Prisma]
aggregate 메서드를 사용해 데이터 테이블 값의 합, 차, 평균, 최대, 최소를 구할 수 있음https://www.prisma.io/docs/concepts/components/prisma-client/aggregation-grouping-summariz

Pagination [Prisma]
타입스크립트를 사용시 모델을 바탕으로 한 타입을 생성할 수 있음기존의 모델 이름 뒤에 select, include를 사용해 타입을 생성할 수 있으며, 생성된 타입을 통해 Prisma 객체에서 점 표현법을 통해 자동으로 생성된 타입을 가져올 수 있음출처:https

Working with fields[Prisma]
소수를 입력하고 저장할 때는 Prisma.Decimal 자료형을 사용자바스크립트에 내장된 BigInt를 사용하면 됨만약 Prisma에서 받아온 객체에 BigInt가 포함된 경우, JSON.stringify를 다음과 같이 진행해야함출처:https://www.pr

Filtering and sorting[Prisma]
NOT, OR과 같은 연산자들을 조합해 쿼리에 제약조건을 걸어 결과를 필터링 할 수 있음null을 사용해 값이 비어있는 데이터를 필터링 할 수 있음{not : null}을 사용하면 null이 아닌 게시글을 반환하게도 할 수 있음관련 레코드의 데이터 값을 기준으로도 데이
[Prisma] Prisma Client의 주요 메서드
Prisma Client는 Prisma ORM의 일부로, 데이터베이스와 상호 작용하기 위한 JavaScript/TypeScript용 ORM입니다. Prisma Client를 사용하면 데이터베이스 스키마와 상호 작용하는 간편한 인터페이스를 제공받을 수 있습니다. Pris
[Prisma] schema.prisma 파일에서 model 작성하기
Prisma는 데이터베이스 스키마를 정의하고 관리하기 위한 도구입니다. schema.prisma 파일은 Prisma에서 사용되는 스키마 정의 파일입니다. 이 파일에서는 데이터베이스 테이블과 필드, 관계 등을 정의합니다. 아래는 Prisma schema 파일에서 mode

Relation queries[Prisma]
Prisma에서는 데이터베이스의 여러 테이블에서 관련된 정보를 한번에 가져오는 기능을 지원함include 옵션은 쿼리 응답에 join되는 테이블의 일부 필드를 포함해줄 수 있게 함select를 중첩해서 relation field의 특정 값을 가져올 수 있게 함가령 in

Select fields[Prisma]
아무런 옵션을 주지 않은 경우 기본적으로 모든 필드값을 반환함옵션으로 select를 주면 특정한 필드 값만을 가져올 수 있음select를 중첩으로 사용하거나, include 옵션 내부에 select를 사용하면 됨출처:https://www.prisma.io/do

CRUD[Prisma]
다음의 스키마가 이미 작성되었다는 가정하에 아래 문서가 진행된다.prisma에 정의된 스키마에 맞게 prisma.model.create를 사용해 레코드를 생성함객체를 전달하기만 하면 되기 때문에 상황에 따라 분기 처리를 해줄수도 있음prisma.model.createM

Working with Prisma Client[Prisma]
다음의 단계에 따라 Prisma Client 사용 가능컴퓨터에 Prisma CLI 설치Prisma schema에 다음과 같이 generator 생성npm install @prisma/client으로 Prisma Client 설치이후 prisma generate 커맨드
npx prisma migrate dev *P1001 에러 해결
Prisma는 Node.js, TypeScript 및 GraphQL을 사용하여 데이터베이스를 다루는 도구입니다.Prisma를 사용하면 데이터베이스의 스키마를 프로그래밍적으로 정의할 수 있습니다. Prisma는 이 스키마를 사용하여 데이터베이스에 대한 타입 안전한 쿼리를

[Nest.js] REST API 활용한 CRUD with REST API ( Prisma, JWT)
nestjs 프로젝트 폴더 생성 > nest new npm or yarn 중 하나의 패키지 선택하면 다음과 같은 설치 완료된 화면 볼 수 있다 VSCode에 설치된 폴더 목록들 Moudle 생성 > 모듈(Module) NestJS 애플리케이션은 모듈 단