Prisma
Prisma
Prisma๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ GraphQL API๋ก ๋ฐ๊พธ๊ณ GraphQL์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฒ์ฉ ์ฟผ๋ฆฌ ์ธ์ด๋ก ์ฌ์ฉํ ์ ์๋๋ก ํฉ๋๋ค. SQL์ ์์ฑํ๊ฑฐ๋ NoSQL API๋ฅผ ์ฌ์ฉํ๋ ๋์ GraphQL์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฟผ๋ฆฌ ํ ์ ์์ต๋๋ค. ์ด ์ฅ์์๋ Prisma์ ๋ํด ์์ธํ ๋ค๋ฃจ์ง ์์ผ๋ฏ๋ก ์น ์ฌ์ดํธ๋ฅผ ๋ฐฉ๋ฌธํ์ฌ features๊ฐ ๋ฌด์์ธ์ง ์ดํด๋ณด์ญ์์ค.
warning ์๋ฆผ ์ด ๊ธฐ์ฌ์์๋
Prisma
๋ฅผ Nest ํ๋ ์ ์ํฌ์ ํตํฉํ๋ ๋ฐฉ๋ฒ์ ํ์ตํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฏธ GraphQL ๊ฐ๋ ๊ณผ@nestjs/graphql
๋ชจ๋์ ์ต์ํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค..
Dependencies
๋จผ์ ํ์ํ ํจํค์ง๋ฅผ ์ค์นํด์ผํฉ๋๋ค.
Setup Prisma
Prisma๋ก ์์ ํ๋ ๋์ ์์ ์ ์ธ์คํด์ค๋ฅผ ํธ์คํ ํ๊ฑฐ๋ Prisma Cloud๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด ์๊ฐ์์๋ Prisma๊ฐ ์ ๊ณตํ๋ ๋ฐ๋ชจ ์๋ฒ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
Prisma CLI ์ค์น
npm install -g prisma
์๋ก์ด ์๋น์ค
prisma init
๋ฅผ ๋ง๋ค๊ณ ๋ฐ๋ชจ ์๋ฒ๋ฅผ ์ ํํ ๋ค์ ์ง์๋ฅผ ๋ฐ๋ฅด์ญ์์ค์๋น์ค
prisma deploy
๋ฐฐํฌ
๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด Quick Start ์น์
์ผ๋ก ์ด๋ํ์ฌ ์์ธํ ๋ด์ฉ์ ํ์ธํ์ญ์์ค. ๊ฒฐ๊ตญ ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ์prisma.yaml
์ค์ ํ์ผ์ด๋ผ๋ ๋ ๊ฐ์ ์๋ก์ด ํ์ผ์ด ๋ํ๋ฉ๋๋ค.
์๋์ผ๋ก ์์ฑ๋ ๋ฐ์ดํฐ ๋ชจ๋ธ datamodel.graphql
.
warning ์๋ฆผ ์ค์ ์์ฉ ํ๋ก๊ทธ๋จ์์๋ ๋ ๋ณต์กํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ง๋ญ๋๋ค. Prisma์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ณด๋ ค๋ฉด ์ฌ๊ธฐ๋ฅผ ํด๋ฆญํ์ญ์์ค.
prisma playground
๋ฅผ ์
๋ ฅํ๋ฉด Prisma GraphQL ๋์ดํฐ๋ฅผ ์ด ์ ์์ต๋๋ค.
Create the client
GraphQL API๋ฅผ ํตํฉํ๋ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์ผ๋ฐ์ ์ธ GraphQL ๊ฐ๋ฐ ์ํฌ ํ๋ก์ฐ๋ฅผ ์ํ ๋ช ๋ น ์ค ๋๊ตฌ ์ธ GraphQL CLI๋ฅผ ์ฌ์ฉํฉ๋๋ค. GraphQL CLI๋ฅผ ์ค์นํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํ์ญ์์ค.
๊ทธ๋ฐ ๋ค์ Nest ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฃจํธ ๋๋ ํ ๋ฆฌ์ .graphqlconfig
๋ฅผ ์์ฑํ์ญ์์ค.
๋ค์ ๋ด์ฉ์ ๋ฃ์ผ์ญ์์ค.
Prisma GraphQL ์คํค๋ง๋ฅผ prisma/prisma-types.graphql
๋ก ๋ค์ด๋ก๋ํ๊ณ prisma/prisma.binding.graphql
์์ Prisma ํด๋ผ์ด์ธํธ๋ฅผ ์์ฑํ๋ ค๋ฉด ํฐ๋ฏธ๋์์ ๋ค์ ๋ช
๋ น์ ์คํํ์ญ์์ค.
Integration
๊ฑฐ์ ๋ค๋์ต๋๋ค. ์ด์ Prisma ํตํฉ์ ์ํ ๋ชจ๋์ ๋ง๋ค์ด ๋ด ์๋ค.
PrismaService
๊ฐ ์ค๋น๋๋ฉด ํด๋น ๋ชจ๋์ ๋ง๋ค์ด์ผํฉ๋๋ค.
info ํํธ ์๋ก์ด ๋ชจ๋๊ณผ ์๋น์ค๋ฅผ ์ฆ์ ์์ฑํ๊ธฐ ์ํด Nest CLI๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
PrismaModule
ํ์์ ๋ง๋ค๊ธฐ ์ํด์๋nest g module prisma
๊ทธ๋ฆฌ๊ณ ์๋น์ค๋ฅผ ์ํด์nest g service prisma
Usage
์ ์๋น์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด PrismaModule
์ ๊ฐ์ ธ์ค๊ณ PrismaService
๋ฅผ UsersResolver
์ ์ฃผ์
ํฉ๋๋ค.
PrismaModule
์ ๊ฐ์ ธ ์ค๋ฉด UsersModule
์ปจํ
์คํธ์์ ๋ด ๋ณด๋ธ PrismaService
๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Example
์ฝ๊ฐ ์์ ๋ ์์ ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค ์ฌ๊ธฐ.
Last updated
Was this helpful?