본문 바로가기

백엔드/Prisma + GraphQL

(19)
Prisma1 vs Prisma2 비교 Prisma1을 사용하려면 2개의 백앤드가 필요했습니다. GraphQL 서버 모듈인 Prisma 클라이언트가 데이터베이스와 직접 통신하는 것이 아니라 GraphQL 서버로 동작하는 Prisma 서버가 데이터베이스와 통신하며, Prisma 클라이언트는 GraphQL 서버와 Prisma 서버간의 중개 역할만 합니다. Prisma CLI를 사용하여 Prisma 서버를 Prisma 개발 서버에 생성할 수 있고, 이렇게 생성된 서버를 heroku에 쉽게 배포할 수 있지만, 번거로울 뿐만 아니라 서버 비용이 추가로 발생하는 문제가 있습니다. 또한 자바 환경에서 동작하기 때문에 메모리 문제가 있을 수도 있습니다. Prisma2는 Prisma 클라이언트에 Prisma 서버의 기능을 통합했습니다. 자바스크립트 모듈인 P..
Prisma2 설치 (CLI, 클라이언트) Prisma CLI(@prisma/cli)와 클라이언트(@prisma/client) 두 개의 모듈을 설치해 주어야 합니다. npm install @prisma/cli --save-dev npm install @prisma/client Prisma CLI는 개발할 때만 사용되기 때문에 --save-dev 옵션을 추가해 줍니다. schema.prisma 파일을 작성한 후에 Prisma CLI를 사용해서 데이터베이스 테이블을 생성하거나 Prisma 클라이언트를 생성할 수 있습니다. 참조: Prisma2 CLI를 사용하여 데이터베이스 테이블 생성 참조: Prisma2 클라이언트 생성 Prisma CLI(@prisma/cli)가 schema.prisma 파일로 부터 Prisma 클라이언트를 ./node_modul..
Prisma란? 데이터베이스 테이블과 쿼리를 만들어주는 도구입니다. User 테이블에서 id가 1인 사용자를 찾아서 반환하는 SQL 쿼리입니다. SELECT * FROM User WHERE id=1 Prisma를 사용하면 다음과 같이 표현할 수 있습니다. 하지만 더 직관적입니다. prisma.user.findOne( where: { id: 1 } ) 보시다시피 데이터베이스에 접근하는 방법은 ORM과 거의 비슷합니다. ORM(Object Relation Mapping)과 다른점은 무엇인가요? Prisma는 테이블에 대응하는 클래스를 직접 만들 필요가 없습니다. 데이터 모델링을 하고, Prisma 클라이언트를 생성하면, 위와 같이 prisma.user을 통해서 User 테이블에 접근할 수 있습니다. 단, Prisma는 항상..