Prisma, 넌 누구니?

윤익후·2020년 11월 27일
8

Prisma 부시기

목록 보기
1/3
post-thumbnail

안녕하세요. 개발자 윤익후 입니다! 🚀
prisma에 대해 한국어로 된 정보들이 많이 없고, 있다 하더라도 prisma v1 이
대부분인 것 같아 한국어로 꾸준히 포스팅을 해 보려고 합니다.

ORM 이란 ?

prisma를 알기 전에 ORM에 대해서 먼저 알아보도록 합시다 !
ORM(Object-relational mapping) 은 DB데이터(schema)를 객체(Object)로 매핑해 주는 역할을 하는 것입니다. 모델링 된 객체와 관계를 바탕으로 SQL을 자동으로 생성해 주는 도구입니다.

Node진영에서는 대표적으로 Sequelize를 많이 사용합니다.

Prisma란 ?

Prisma는 기존 ORM과 근본적으로 다른 ORM 이고,
기존 ORM이 격는 많은 문제들을 겪지 않는다. - prisma docs

프리즈마 공식 문서에 보면, Prisma는 기존 ORM의 문제를 해결해준다고 설명하고 있습니다.

Prisma의 구성

Prisma는 Prisma는 Schema Prisma introspect Prisma migration Prisma client Prisma studio로 구성되어 있습니다.
각 항목의 상세한 내용들은 다음번 게시물에서 살펴보도록 하고, 오늘은 간략한 구성에 대해서 알아보도록 하겠습니다!

Prisma Schema

Prisma v1 에서는 graphQL (추후에 별도로 설명 할 예정입니다.)을 통해
model을 정의하였다면, Prisma v2에 와서는 PSL(Prisma Schema Language)을 통해 model을 정의합니다.

Prisma introspect

Prisma에서는 기존의 DataBase를 수작업으로 ORM에 매핑해줄 필요가 없습니다 !
Database URL을 설정하고, npx prisma introspect 한번이면
기존의 Database의 구조를 자동으로 Prisma schema 로 불러올 수 있습니다.
기존에 있던 Database 에 Prisma를 사용하시려는 분들에게 유용한 기능입니다.

Prisma Migrate

Prisma Migrate를 이용하면 새로운 테이블을 생성하거나, 기존 테이블에 열을 추가하는등
Database를 변경하는 기능(도구)입니다.
Prisma schema를 직접 변경하여 Database를 변경함으로써, 복잡한 SQL문을 사용하지 않아도 됩니다 !
Prisma CLI 상에서 사용할 수 있습니다.
아직은 Experimental 상태여서 production 환경에서는 사용하지 않는 것이 좋다고 합니다.

아래의 코드로 schema를 DB에 반영하고, schema를 기반으로 Prisma Client를 업데이트 할 수 있습니다.

npx prisma migrate save --experimental
npx prisma migrate up --experimental
npx prisma generate

Prisma Client

prisma Client는 데이터에 맞춰 자동 생성되는 쿼리생성기 입니다.
위에서 정의한 prisma schema를 기반으로 DB에 요청을 보낼 수 있습니다.

prisma Client 는 꼭 graphQL과 같이 사용하지 않아도 됩니다!
종종 기존의 REST API에 prisma를 도입하시려는 분들이 질문을 주시곤 합니다.

prisma를 사용하면, API Endpoint를 다시 만들어야 하는거 아니야?

Prisma Client는 데이터베이스로 쿼리를 보내는 것만 책임지고 있기 때문에, 어떤 HTTP 서버 라이브러리
웹 프레임워크와도 결합 될 수 있습니다. -Prisma Docs

아래는 Prisma와 같이 사용할 수 있는 라이브러리 및 프레임워크입니다.

Express koa hapi Fastify Sails AdonisJs NestJS Next.js
Foal TS Polka Micro Feathers

Prisma Studio

Prisma Studio는 GUI로 지원하는 Database 편집기입니다.
SQL이나 Prisma 쿼리 없이, DB를 수정, 편집 할 수 있습니다.
비 개발자가 사용하기에도 직관적인 도구라서, 협업을 하시는 분들이라면 한번쯤 사용해 볼 만한 기능입니다.
아래의 명령어로 Prisma studio를 실행 시킬 수 있습니다.

npx prisma studio

마무리하며

오늘은 간략하게 Prisma의 구성과, ORM에 대하여 알아봤습니다.
다음 포스트에서는 Prisma를 사용하기 위해 알아야 할 PSL(Prisma Schema Language)에 대하여 알아보도록 하겠습니다!

2개의 댓글

comment-user-thumbnail
2020년 11월 27일

ㅎㅇ

답글 달기
comment-user-thumbnail
2020년 11월 27일

prisma2를 이제 배워서 사용하려는데 기대가 되네요 ㅎㅇㅌ

답글 달기