티스토리 뷰

반응형

 

✅ Prisma Client 설치 및 사용법 – TypeScript + PostgreSQL 실습 가이드

"Prisma Client를 설치하고 PostgreSQL과 상호작용하는 방법, 정말 쉽고 빠르게 이해해보자."


Prisma Client는 자동 생성되는 타입 안전한 ORM 라이브러리입니다.
DB 모델을 정의하면, 그에 따라 자동으로 타입이 보장되는 코드가 만들어지며,
VSCode의 자동완성 및 정적 분석을 통해 더욱 강력한 개발 경험을 제공합니다.


🧩 Prisma Client 설치

npm install @prisma/client

이전 글에서 사용했던 Prisma 초기화 명령어가 필요합니다:

npx prisma init

그리고 DB 모델을 작성한 후에는 반드시 다음 명령어를 실행해야 Prisma Client가 생성됩니다:

npx prisma generate

일반적으로 migrate dev, db pull을 수행하면 자동으로 generate도 함께 실행됩니다.
하지만 직접 schema만 수정했다면 generate를 수동으로 실행해야 합니다!


📐 Prisma Client 구조

반응형

설치 후 생성되는 구조:

node_modules/@prisma/client/
└── index.d.ts  ← 자동 생성된 타입 정의

프로젝트 내부에 다음과 같이 임포트하여 사용합니다:

import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()

✅ Prisma Client 사용 예시

schema.prisma 예시 모델:

model User {
  id    Int     @id @default(autoincrement())
  name  String
  email String  @unique
}

▶️ 유저 생성

const user = await prisma.user.create({
  data: {
    name: '훈창',
    email: 'hoon@example.com',
  },
})
console.log('생성된 유저:', user)

📋 유저 목록 조회

const users = await prisma.user.findMany()
console.log('전체 유저:', users)

🔍 조건 조회 (where)

const oneUser = await prisma.user.findUnique({
  where: { email: 'hoon@example.com' },
})

✏️ 유저 수정

await prisma.user.update({
  where: { id: 1 },
  data: { name: '훈창 수정' },
})

🗑 유저 삭제

await prisma.user.delete({
  where: { id: 1 },
})

🛠 Prisma Client 사용 시 팁

항목 내용

PrismaClient 생성 서버 전체에서 단 1개만 생성 (싱글턴 패턴)
자동완성 지원 .user. 입력 시 모든 메서드 자동 완성
타입 안전성 모델 변경 시 타입도 자동 반영
로그 확인 생성 시 log 옵션 추가 가능

예시:

const prisma = new PrismaClient({
  log: ['query', 'info', 'warn', 'error']
})

⚠️ PrismaClient 최적 사용법 (NestJS 또는 서버 프로젝트)

PrismaClient를 매 요청마다 새로 만들면 DB 연결 누수가 발생할 수 있습니다.

✅ 싱글톤 패턴으로 관리 (예: lib/prisma.ts)

import { PrismaClient } from '@prisma/client'

const globalForPrisma = globalThis as unknown as {
  prisma: PrismaClient | undefined
}

export const prisma =
  globalForPrisma.prisma ??
  new PrismaClient({
    log: ['query'],
  })

if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma

🧪 실제 실행 예제

npx ts-node src/index.ts

이 명령어로 prisma.user.create() 또는 findMany() 등의 메서드가 정상 동작하는지 확인할 수 있습니다.


✅ 요약 정리

항목 설명

설치 npm install @prisma/client
자동 생성 npx prisma generate (또는 migrate/pull 시 자동 실행)
사용 new PrismaClient() 인스턴스 생성
활용 CRUD, 조건 검색, 관계형 조인 등 모두 지원
최적화 싱글톤 패턴으로 메모리 관리 필요

 

Prisma Client,PostgreSQL ORM,TypeScript Prisma,Prisma 시작하기,Prisma 설치법,Node.js PostgreSQL 연동,PrismaClient 사용법,타입 안전한 ORM,DB 자동완성 지원,Prisma Client 최적화

 

※ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함
반응형